summaryrefslogtreecommitdiff
path: root/misc/openoffice
diff options
context:
space:
mode:
authormrauch <mrauch>2002-02-13 18:09:21 +0000
committermrauch <mrauch>2002-02-13 18:09:21 +0000
commit2a3277cf06aac7403ead9cdba6f0002a85bfdca3 (patch)
tree1f84976a53f0c282f3e229c1bbf8b36fe42c629a /misc/openoffice
parent19588482e7fee2771a3720458b674a234c3b88c2 (diff)
downloadpkgsrc-2a3277cf06aac7403ead9cdba6f0002a85bfdca3.tar.gz
OpenOffice.org is an Open Source, community-developed, multi-platform office
productivity suite. It includes the key desktop applications, such as a word processor, spreadsheet, presentation manager, and drawing program, with a user interface and feature set similar to other office suites.
Diffstat (limited to 'misc/openoffice')
-rw-r--r--misc/openoffice/DESCR14
-rw-r--r--misc/openoffice/MESSAGE14
-rw-r--r--misc/openoffice/Makefile99
-rw-r--r--misc/openoffice/PLIST1677
-rw-r--r--misc/openoffice/distinfo90
-rw-r--r--misc/openoffice/files/NETBSDGCCIinc.zipbin0 -> 3210532 bytes
-rw-r--r--misc/openoffice/files/NETBSDGCCIlib.zipbin0 -> 529663 bytes
-rw-r--r--misc/openoffice/files/NETBSDGCCIruntime.zipbin0 -> 2792104 bytes
-rw-r--r--misc/openoffice/files/oo_setup.resp8
-rwxr-xr-xmisc/openoffice/files/soffice37
-rw-r--r--misc/openoffice/patches/patch-aa44
-rw-r--r--misc/openoffice/patches/patch-ab13
-rw-r--r--misc/openoffice/patches/patch-ac558
-rw-r--r--misc/openoffice/patches/patch-ad310
-rw-r--r--misc/openoffice/patches/patch-ae97
-rw-r--r--misc/openoffice/patches/patch-af52
-rw-r--r--misc/openoffice/patches/patch-ag408
-rw-r--r--misc/openoffice/patches/patch-ah773
-rw-r--r--misc/openoffice/patches/patch-ai305
-rw-r--r--misc/openoffice/patches/patch-aj100
-rw-r--r--misc/openoffice/patches/patch-ak53
-rw-r--r--misc/openoffice/patches/patch-al620
-rw-r--r--misc/openoffice/patches/patch-am15
-rw-r--r--misc/openoffice/patches/patch-an17
-rw-r--r--misc/openoffice/patches/patch-ao63
-rw-r--r--misc/openoffice/patches/patch-ap1287
-rw-r--r--misc/openoffice/patches/patch-aq12
-rw-r--r--misc/openoffice/patches/patch-ar33
-rw-r--r--misc/openoffice/patches/patch-as117
-rw-r--r--misc/openoffice/patches/patch-at97
-rw-r--r--misc/openoffice/patches/patch-au17
-rw-r--r--misc/openoffice/patches/patch-av18
-rw-r--r--misc/openoffice/patches/patch-aw15
-rw-r--r--misc/openoffice/patches/patch-ax26
-rw-r--r--misc/openoffice/patches/patch-ay17
-rw-r--r--misc/openoffice/patches/patch-az13
-rw-r--r--misc/openoffice/patches/patch-ba13
-rw-r--r--misc/openoffice/patches/patch-bb16
-rw-r--r--misc/openoffice/patches/patch-bc13
-rw-r--r--misc/openoffice/patches/patch-bd32
-rw-r--r--misc/openoffice/patches/patch-be20
-rw-r--r--misc/openoffice/patches/patch-bf20
-rw-r--r--misc/openoffice/patches/patch-bg16
-rw-r--r--misc/openoffice/patches/patch-bh27
-rw-r--r--misc/openoffice/patches/patch-bi75
-rw-r--r--misc/openoffice/patches/patch-bj105
-rw-r--r--misc/openoffice/patches/patch-bk16
-rw-r--r--misc/openoffice/patches/patch-bl13
-rw-r--r--misc/openoffice/patches/patch-bm129
-rw-r--r--misc/openoffice/patches/patch-bn21
-rw-r--r--misc/openoffice/patches/patch-bo20
-rw-r--r--misc/openoffice/patches/patch-bp39
-rw-r--r--misc/openoffice/patches/patch-bq12
-rw-r--r--misc/openoffice/patches/patch-br13
-rw-r--r--misc/openoffice/patches/patch-bs12
-rw-r--r--misc/openoffice/patches/patch-bt16
-rw-r--r--misc/openoffice/patches/patch-bu18
-rw-r--r--misc/openoffice/patches/patch-bv18
-rw-r--r--misc/openoffice/patches/patch-bw18
-rw-r--r--misc/openoffice/patches/patch-bx22
-rw-r--r--misc/openoffice/patches/patch-by16
-rw-r--r--misc/openoffice/patches/patch-bz207
-rw-r--r--misc/openoffice/patches/patch-ca150
-rw-r--r--misc/openoffice/patches/patch-cb42
-rw-r--r--misc/openoffice/patches/patch-cc24
-rw-r--r--misc/openoffice/patches/patch-cd13
-rw-r--r--misc/openoffice/patches/patch-ce16
-rw-r--r--misc/openoffice/patches/patch-cf16
-rw-r--r--misc/openoffice/patches/patch-cg16
-rw-r--r--misc/openoffice/patches/patch-ch16
-rw-r--r--misc/openoffice/patches/patch-ci16
-rw-r--r--misc/openoffice/patches/patch-cj16
-rw-r--r--misc/openoffice/patches/patch-ck17
-rw-r--r--misc/openoffice/patches/patch-cl17
-rw-r--r--misc/openoffice/patches/patch-cm16
-rw-r--r--misc/openoffice/patches/patch-cn16
-rw-r--r--misc/openoffice/patches/patch-co16
-rw-r--r--misc/openoffice/patches/patch-cp17
-rw-r--r--misc/openoffice/patches/patch-cq16
-rw-r--r--misc/openoffice/patches/patch-cr17
-rw-r--r--misc/openoffice/patches/patch-cs16
-rw-r--r--misc/openoffice/patches/patch-ct15
-rw-r--r--misc/openoffice/patches/patch-cu12
-rw-r--r--misc/openoffice/patches/patch-cv25
-rw-r--r--misc/openoffice/patches/patch-cw14
-rw-r--r--misc/openoffice/patches/patch-cx75
-rw-r--r--misc/openoffice/patches/patch-cy13
-rw-r--r--misc/openoffice/patches/patch-cz13
-rw-r--r--misc/openoffice/patches/patch-da13
-rw-r--r--misc/openoffice/patches/patch-db13
-rw-r--r--misc/openoffice/patches/patch-dc30
-rw-r--r--misc/openoffice/patches/patch-dd12
-rw-r--r--misc/openoffice/patches/patch-de101
-rw-r--r--misc/openoffice/patches/patch-df116
94 files changed, 8871 insertions, 0 deletions
diff --git a/misc/openoffice/DESCR b/misc/openoffice/DESCR
new file mode 100644
index 00000000000..894ad281b5c
--- /dev/null
+++ b/misc/openoffice/DESCR
@@ -0,0 +1,14 @@
+OpenOffice.org is an Open Source, community-developed, multi-platform office
+productivity suite. It includes the key desktop applications, such as a
+word processor, spreadsheet, presentation manager, and drawing program,
+with a user interface and feature set similar to other office suites.
+
+Components include:
+ * A universal word processing application for creating business
+ letters, extensive text documents, professional layouts, and HTML
+ documents.
+ * A sophisticated application for performing advanced spreadsheet
+ functions, such as analyzing figures, creating lists, and viewing data.
+ * A tool for creating effective eye-catching presentations.
+ * A vector-oriented draw module that enables the creation of 3D
+ illustrations.
diff --git a/misc/openoffice/MESSAGE b/misc/openoffice/MESSAGE
new file mode 100644
index 00000000000..750d8e59d23
--- /dev/null
+++ b/misc/openoffice/MESSAGE
@@ -0,0 +1,14 @@
+==========================================================================
+$NetBSD: MESSAGE,v 1.1.1.1 2002/02/13 18:09:21 mrauch Exp $
+
+ OpenOffice has now been installed in ${PREFIX}/OpenOffice.org641.
+
+ Before using this package for the first time, each user has to run
+ a setup program, which is automatically invoked at the first start.
+ Thereafter, OpenOffice can be started using the
+ ${PREFIX}/bin/soffice command.
+
+ Please note that this software should be considered alpha quality
+ at the moment, i.e. take extra care when using it in production
+ environments.
+==========================================================================
diff --git a/misc/openoffice/Makefile b/misc/openoffice/Makefile
new file mode 100644
index 00000000000..6c8c4181baf
--- /dev/null
+++ b/misc/openoffice/Makefile
@@ -0,0 +1,99 @@
+# $NetBSD: Makefile,v 1.1.1.1 2002/02/13 18:09:21 mrauch Exp $
+
+DISTNAME= openoffice-0.0.0.641
+WRKSRC= ${WRKDIR}/oo_641_src/config_office
+CATEGORIES= misc
+MASTER_SITES= http://sf1.mirror.openoffice.org/641b/
+DISTFILES= oo_641_src.tar.bz2
+DISTFILES+= gpc231.tar.Z
+SITES_gpc231.tar.Z= ftp://ftp.cs.man.ac.uk/pub/toby/gpc/
+
+MAINTAINER= mrauch@netbsd.org
+HOMEPAGE= http://www.openoffice.org/
+COMMENT= Integrated office productivity suite
+
+# OpenOffice requires gcc 2.95.2 or better,
+# so for NetBSD<=1.5 we need the package lang/gcc.
+GCC_VERSION!= ${CC} --version
+.if ${GCC_VERSION}!="2.95.2" && ${GCC_VERSION}!="2.95.3"
+.include "../../lang/gcc/Makefile.gcc"
+.endif
+BUILD_DEPENDS+= bison-[0-9]*:../../devel/bison
+BUILD_DEPENDS+= gmake-[0-9]*:../../devel/gmake
+BUILD_DEPENDS+= tcsh-[0-9]*:../../shells/tcsh
+BUILD_DEPENDS+= zip-[0-9]*:../../archivers/zip
+BUILD_DEPENDS+= stlport>=4.0nb1:../../devel/stlport
+BUILD_DEPENDS+= sun-jdk>=1.3.0:../../lang/sun-jdk
+.include "../../lang/perl5/buildlink.mk"
+.include "../../devel/pth/buildlink.mk"
+BUILD_DEPENDS+= pth>=1.4.0nb1:../../devel/pth
+.include "../../mk/x11.buildlink.mk"
+
+CONFLICTS= staroffice-[0-9]*
+
+ONLY_FOR_PLATFORM= NetBSD-1.5.3*-i386 NetBSD-1.5Z?-i386 \
+ NetBSD-1.[6-9]*-i386 NetBSD-[2-9]*-i386
+
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS+= --with-stlport4-home=${PREFIX}
+CONFIGURE_ARGS+= --with-jdk-home=${PREFIX}/java
+
+TEMP?= ${WRKSRC}
+
+post-extract:
+# bring the two files from GPC into place
+ ${CP} ${WRKDIR}/gpc231/gpc.c ${WRKSRC}/../external/gpc/
+ ${CP} ${WRKDIR}/gpc231/gpc.h ${WRKSRC}/../external/gpc/
+# bring the NetBSD mozilla zip files into place
+ ${CP} ${FILESDIR}/*.zip ${WRKSRC}/../moz/zipped/
+# convert \r\n-lineends in sablot-patch into unix-style \n first
+ ${PERL5} -p -i.save -e 's/\r\n/\n/' \
+ ${WRKSRC}/../sablot/Sablot-0.52.patch
+# The tar process on nas exits with an error code, extraction however is
+# complete. Extract and repackage to make the build happy.
+ ${MV} ${WRKSRC}/../nas/download/nas-1.4.1.tar.gz \
+ ${WRKSRC}/../nas/download/nas-1.4.1.tar.gz.orig
+ tar -xzf ${WRKSRC}/../nas/download/nas-1.4.1.tar.gz.orig \
+ -C ${WRKDIR}
+ tar -czf ${WRKSRC}/../nas/download/nas-1.4.1.tar.gz \
+ -C ${WRKDIR} nas-1.4.1
+
+DISPLAY?= #empty, if unset
+checkforx:
+.if ${DISPLAY}==""
+.if exists(${X11BASE}/bin/Xvfb)
+ -${X11BASE}/bin/Xvfb :2 &
+DISPLAY= ':2'
+.else
+ @${ECHO} "Error: Environment variable DISPLAY must be set"
+ @${ECHO} " and point to a connectible X server."
+ @${FALSE}
+.endif #Xvfb
+.endif #DISPLAY
+
+pre-build: checkforx
+
+do-build:
+ tcsh -c "setenv DISPLAY ${DISPLAY}; cd ${WRKSRC}/..&& \
+ ./bootstrap&& source *.Set&& dmake"
+
+pre-install: checkforx
+ ${SH} -c "cd ${WRKSRC}/../instsetoo/*.pro/01/normal; \
+ ${SED} -e 's#@@PREFIX@@#${PREFIX}#g' \
+ <${FILESDIR}/oo_setup.resp \
+ >oo_setup.resp"
+
+do-install:
+ ${SH} -c "cd ${WRKSRC}/../instsetoo/*.pro/01/normal; \
+ TEMP=${WRKDIR}; export TEMP; \
+ DISPLAY=${DISPLAY}; export DISPLAY; \
+ ./setup -r:oo_setup.resp; \
+ if ${TEST} -e ${PREFIX}/OpenOffice.org641/setup; \
+ then ${TRUE}; \
+ else ${FALSE}; \
+ fi"
+ ${SED} -e 's#@@PREFIX@@#${PREFIX}#g' \
+ <${FILESDIR}/soffice >${PREFIX}/bin/soffice
+ ${CHMOD} +x ${PREFIX}/bin/soffice
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/misc/openoffice/PLIST b/misc/openoffice/PLIST
new file mode 100644
index 00000000000..8597c7b7ea1
--- /dev/null
+++ b/misc/openoffice/PLIST
@@ -0,0 +1,1677 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+bin/soffice
+OpenOffice.org641/setup
+OpenOffice.org641/spadmin
+OpenOffice.org641/LICENSE.html
+OpenOffice.org641/README.html
+OpenOffice.org641/README
+OpenOffice.org641/LICENSE
+OpenOffice.org641/program/setup.log
+OpenOffice.org641/program/filter/libicg641bi.so
+OpenOffice.org641/program/filter/libeme641bi.so
+OpenOffice.org641/program/filter/libemp641bi.so
+OpenOffice.org641/program/filter/libipd641bi.so
+OpenOffice.org641/program/filter/libitg641bi.so
+OpenOffice.org641/program/filter/libeps641bi.so
+OpenOffice.org641/program/filter/libips641bi.so
+OpenOffice.org641/program/filter/libexp641bi.so
+OpenOffice.org641/program/filter/libepb641bi.so
+OpenOffice.org641/program/filter/libepg641bi.so
+OpenOffice.org641/program/filter/libepp641bi.so
+OpenOffice.org641/program/filter/libipb641bi.so
+OpenOffice.org641/program/filter/libera641bi.so
+OpenOffice.org641/program/filter/libira641bi.so
+OpenOffice.org641/program/filter/libegi641bi.so
+OpenOffice.org641/program/filter/libidx641bi.so
+OpenOffice.org641/program/filter/libicd641bi.so
+OpenOffice.org641/program/filter/libept641bi.so
+OpenOffice.org641/program/filter/libipt641bi.so
+OpenOffice.org641/program/filter/libime641bi.so
+OpenOffice.org641/program/filter/libipx641bi.so
+OpenOffice.org641/program/filter/libepn641bi.so
+OpenOffice.org641/program/filter/libiti641bi.so
+OpenOffice.org641/program/filter/libeti641bi.so
+OpenOffice.org641/program/classes/sandbox.jar
+OpenOffice.org641/program/classes/jurt.jar
+OpenOffice.org641/program/classes/xt.jar
+OpenOffice.org641/program/classes/db.jar
+OpenOffice.org641/program/classes/juh.jar
+OpenOffice.org641/program/classes/unoil.jar
+OpenOffice.org641/program/classes/jut.jar
+OpenOffice.org641/program/classes/ridl.jar
+OpenOffice.org641/program/classes/jaxp.jar
+OpenOffice.org641/program/classes/java_uno.jar
+OpenOffice.org641/program/classes/parser.jar
+OpenOffice.org641/program/classes/classes.jar
+OpenOffice.org641/program/resource/cnt64101.res
+OpenOffice.org641/program/resource/wwz64101.res
+OpenOffice.org641/program/resource/pcr64101.res
+OpenOffice.org641/program/resource/bib64101.res
+OpenOffice.org641/program/resource/dkt64101.res
+OpenOffice.org641/program/resource/basctl64101.res
+OpenOffice.org641/program/resource/abp64101.res
+OpenOffice.org641/program/resource/lgd64101.res
+OpenOffice.org641/program/resource/eur64101.res
+OpenOffice.org641/program/resource/epb64101.res
+OpenOffice.org641/program/resource/epg64101.res
+OpenOffice.org641/program/resource/epp64101.res
+OpenOffice.org641/program/resource/imp64101.res
+OpenOffice.org641/program/resource/oic64101.res
+OpenOffice.org641/program/resource/ofa64101.res
+OpenOffice.org641/program/resource/vcl64101.res
+OpenOffice.org641/program/resource/fwk64101.res
+OpenOffice.org641/program/resource/set64101.res
+OpenOffice.org641/program/resource/frm64101.res
+OpenOffice.org641/program/resource/gal64101.res
+OpenOffice.org641/program/resource/svs64101.res
+OpenOffice.org641/program/resource/dba64101.res
+OpenOffice.org641/program/resource/dbi64101.res
+OpenOffice.org641/program/resource/dbp64101.res
+OpenOffice.org641/program/resource/dbu64101.res
+OpenOffice.org641/program/resource/dbw64101.res
+OpenOffice.org641/program/resource/ooo64101.res
+OpenOffice.org641/program/resource/svt64101.res
+OpenOffice.org641/program/resource/svx64101.res
+OpenOffice.org641/program/resource/spa64101.res
+OpenOffice.org641/program/resource/sd64101.res
+OpenOffice.org641/program/resource/tpl64101.res
+OpenOffice.org641/program/resource/sw64101.res
+OpenOffice.org641/program/resource/tplx64101.res
+OpenOffice.org641/program/resource/jvm64101.res
+OpenOffice.org641/program/resource/uui64101.res
+OpenOffice.org641/program/resource/cal64101.res
+OpenOffice.org641/program/resource/sfx64101.res
+OpenOffice.org641/program/resource/sch64101.res
+OpenOffice.org641/program/resource/san64101.res
+OpenOffice.org641/program/resource/sc64101.res
+OpenOffice.org641/program/resource/sm64101.res
+OpenOffice.org641/program/resource/date64101.res
+OpenOffice.org641/program/resource/analysis64101.res
+OpenOffice.org641/program/resource/eps64101.res
+OpenOffice.org641/program/resource/egi64101.res
+OpenOffice.org641/program/resource/ept64101.res
+OpenOffice.org641/program/resource/eme64101.res
+OpenOffice.org641/program/resource/epn64101.res
+OpenOffice.org641/program/resource/iso64101.res
+OpenOffice.org641/program/addin/source/xrot.c
+OpenOffice.org641/program/addin/source/xlang.h
+OpenOffice.org641/program/addin/source/rot13.hrc
+OpenOffice.org641/program/addin/source/addin.h
+OpenOffice.org641/program/addin/source/xdfa.c
+OpenOffice.org641/program/addin/source/dfa.hrc
+OpenOffice.org641/program/libctl641bi.so
+OpenOffice.org641/program/libimpreg.so
+OpenOffice.org641/program/libjava_uno.so
+OpenOffice.org641/program/libdbi641bi.so
+OpenOffice.org641/program/libdbp641bi.so
+OpenOffice.org641/program/libdbtools2.so
+OpenOffice.org641/program/libdbu641bi.so
+OpenOffice.org641/program/libvos2GCC.so
+OpenOffice.org641/program/libproxyset.so
+OpenOffice.org641/program/libsmgr.so
+OpenOffice.org641/program/libmozab2.so
+OpenOffice.org641/program/libtcv.so
+OpenOffice.org641/program/liburp_uno.so
+OpenOffice.org641/program/libstm.so
+OpenOffice.org641/program/libstore.so.3.0.0
+OpenOffice.org641/program/libstore.so.3
+OpenOffice.org641/program/libspa641bi.so
+OpenOffice.org641/program/libmcnttype.so
+OpenOffice.org641/program/spadmin.bin
+OpenOffice.org641/program/libabp641bi.so
+OpenOffice.org641/program/libinvadp.so
+OpenOffice.org641/program/libsvl641bi.so
+OpenOffice.org641/program/libsvx641bi.so
+OpenOffice.org641/program/libmig641bi.so
+OpenOffice.org641/program/jvmsetup.bin
+OpenOffice.org641/program/libtdmgr.so
+OpenOffice.org641/program/libnamingservice.so
+OpenOffice.org641/program/libacceptor.so
+OpenOffice.org641/program/open_office_ani.bmp
+OpenOffice.org641/program/libconnectr.so
+OpenOffice.org641/program/libsrtrs1.so
+OpenOffice.org641/program/sopatchlevel.sh
+OpenOffice.org641/program/libdb_cxx-3.2.so
+OpenOffice.org641/program/calc_o.bmp
+OpenOffice.org641/program/nswrapper
+OpenOffice.org641/program/libjen.so
+OpenOffice.org641/program/libdefreg.so
+OpenOffice.org641/program/librmcxt.so.3.0.0
+OpenOffice.org641/program/librmcxt.so.3
+OpenOffice.org641/program/setup.bin
+OpenOffice.org641/program/setup
+OpenOffice.org641/program/libdbase641bi.so
+OpenOffice.org641/program/libbib641bi.so
+OpenOffice.org641/program/liblng641bi.so
+OpenOffice.org641/program/libfileacc.so
+OpenOffice.org641/program/libucpchelp1.so
+OpenOffice.org641/program/libreg.so.3.0.0
+OpenOffice.org641/program/libreg.so.3
+OpenOffice.org641/program/libcfgmgr2.so
+OpenOffice.org641/program/libinsp.so
+OpenOffice.org641/program/libcnt641bi.so
+OpenOffice.org641/program/libres641bi.so
+OpenOffice.org641/program/setup_services.rdb
+OpenOffice.org641/program/libsalhelper3GCC.so
+OpenOffice.org641/program/libtl641bi.so
+OpenOffice.org641/program/libjvm641bi.so
+OpenOffice.org641/program/libcmdmail.so
+OpenOffice.org641/program/libgcc2_uno.so
+OpenOffice.org641/program/libi18npool641bi.so
+OpenOffice.org641/program/libevtatt.so
+OpenOffice.org641/program/libsimreg.so
+OpenOffice.org641/program/libfile641bi.so
+OpenOffice.org641/program/libucb1.so
+OpenOffice.org641/program/libucpfpx641bi.so
+OpenOffice.org641/program/libsax.so
+OpenOffice.org641/program/allgemein_o.bmp
+OpenOffice.org641/program/writer_o.bmp
+OpenOffice.org641/program/libsbl641bi.so
+OpenOffice.org641/program/draw_o.bmp
+OpenOffice.org641/program/ende_o.bmp
+OpenOffice.org641/program/libbrdgfctr.so
+OpenOffice.org641/program/libsch641bi.so
+OpenOffice.org641/program/libscn641bi.so
+OpenOffice.org641/program/libproxyfac.so
+OpenOffice.org641/program/liblocaledata_ascii.so
+OpenOffice.org641/program/libzip641bi.so
+OpenOffice.org641/program/libset641bi.so
+OpenOffice.org641/program/libsfx641bi.so
+OpenOffice.org641/program/libcached1.so
+OpenOffice.org641/program/liblocaledata_CJK.so
+OpenOffice.org641/program/libucphier1.so
+OpenOffice.org641/program/jvmsetup
+OpenOffice.org641/program/libinv.so
+OpenOffice.org641/program/libsal.so.3.0.0
+OpenOffice.org641/program/libsal.so.3
+OpenOffice.org641/program/libmozabdrv2.so
+OpenOffice.org641/program/libucpfile1.so
+OpenOffice.org641/program/libpk641bi.so
+OpenOffice.org641/program/libpl641bi.so
+OpenOffice.org641/program/soffice
+OpenOffice.org641/program/spadmin
+OpenOffice.org641/program/libsyssh.so
+OpenOffice.org641/program/libxcr641bi.so
+OpenOffice.org641/program/libbasctl641bi.so
+OpenOffice.org641/program/libsdbc2.so
+OpenOffice.org641/program/libucpdav1.so
+OpenOffice.org641/program/libwrp641bi.so
+OpenOffice.org641/program/libjavaloader.so
+OpenOffice.org641/program/libtplx641bi.so
+OpenOffice.org641/program/libadabas2.so
+OpenOffice.org641/program/libsot641bi.so
+OpenOffice.org641/program/libj641bi_g.so
+OpenOffice.org641/program/libsw641bi.so
+OpenOffice.org641/program/libtk641bi.so
+OpenOffice.org641/program/libcpld.so
+OpenOffice.org641/program/impress_o.bmp
+OpenOffice.org641/program/libsb641bi.so
+OpenOffice.org641/program/javaldx
+OpenOffice.org641/program/libsd641bi.so
+OpenOffice.org641/program/libsvt641bi.so
+OpenOffice.org641/program/libso641bi.so
+OpenOffice.org641/program/libcppu.so.3.0.0
+OpenOffice.org641/program/libcppu.so.3
+OpenOffice.org641/program/libi18n641bi.so
+OpenOffice.org641/program/libucbhelper1GCC.so
+OpenOffice.org641/program/libtinstrm.so
+OpenOffice.org641/program/libpsp641bi.so
+OpenOffice.org641/program/libdb_java-3.2.so
+OpenOffice.org641/program/libuuresolver.so
+OpenOffice.org641/program/libpcr641bi.so
+OpenOffice.org641/program/libcppuhelper3GCC.so
+OpenOffice.org641/program/libstlport_gcc.so.0
+OpenOffice.org641/program/libgo641bi.so
+OpenOffice.org641/program/libjdbc2.so
+OpenOffice.org641/program/libflat641bi.so
+OpenOffice.org641/program/setup_types.rdb
+OpenOffice.org641/program/libodbcbase2.so
+OpenOffice.org641/program/libcomphelp2.so
+OpenOffice.org641/program/libxo641bi.so
+OpenOffice.org641/program/libstlport2_gcc.so
+OpenOffice.org641/program/libtvhlp1.so
+OpenOffice.org641/program/libxmx641bi.so
+OpenOffice.org641/program/libni641bi.so
+OpenOffice.org641/program/libutl641bi.so
+OpenOffice.org641/program/libcorefl.so
+OpenOffice.org641/program/libuui641bi.so
+OpenOffice.org641/program/libodbc2.so
+OpenOffice.org641/program/libvcl641bi.so
+OpenOffice.org641/program/libtoutstrm.so
+OpenOffice.org641/program/libimr641bi.so
+OpenOffice.org641/program/libpackage2.so
+OpenOffice.org641/program/components/libabsyncsvc.so
+OpenOffice.org641/program/components/libaddrbook.so
+OpenOffice.org641/program/components/libmork.so
+OpenOffice.org641/program/components/libmozldap.so
+OpenOffice.org641/program/components/libnecko.so
+OpenOffice.org641/program/components/libprofile.so
+OpenOffice.org641/program/components/librdf.so
+OpenOffice.org641/program/components/libstrres.so
+OpenOffice.org641/program/components/libunicharutil.so
+OpenOffice.org641/program/components/libuconv.so
+OpenOffice.org641/program/components/libucvcn.so
+OpenOffice.org641/program/components/libucvibm.so
+OpenOffice.org641/program/components/libucvja.so
+OpenOffice.org641/program/components/libucvko.so
+OpenOffice.org641/program/components/libucvlatin.so
+OpenOffice.org641/program/components/libucvtw.so
+OpenOffice.org641/program/components/libucvtw2.so
+OpenOffice.org641/program/components/liburiloader.so
+OpenOffice.org641/program/components/libvcard.so
+OpenOffice.org641/program/components/libxpconnect.so
+OpenOffice.org641/program/components/libpref.so
+OpenOffice.org641/program/libmozjs.so
+OpenOffice.org641/program/libmsgbaseutil.so
+OpenOffice.org641/program/libldap40.so
+OpenOffice.org641/program/libnspr4.so
+OpenOffice.org641/program/liblber40.so
+OpenOffice.org641/program/libplc4.so
+OpenOffice.org641/program/libplds4.so
+OpenOffice.org641/program/libxpcom.so
+OpenOffice.org641/program/libdba641bi.so
+OpenOffice.org641/program/librdbtdp.so
+OpenOffice.org641/program/liboic641bi.so
+OpenOffice.org641/program/libofa641bi.so
+OpenOffice.org641/program/open_office_org_logo.bmp
+OpenOffice.org641/program/libfrm641bi.so
+OpenOffice.org641/program/libfwe641bi.so
+OpenOffice.org641/program/libdtransX11641bi.so
+OpenOffice.org641/program/libfwi641bi.so
+OpenOffice.org641/program/libfwk641bi.so
+OpenOffice.org641/program/libfwl641bi.so
+OpenOffice.org641/program/libdb-3.2.so
+OpenOffice.org641/program/soffice.bin
+OpenOffice.org641/program/libdbpool2.so
+OpenOffice.org641/program/applicat.rdb
+OpenOffice.org641/program/libremotebridge.so
+OpenOffice.org641/program/libucppkg1.so
+OpenOffice.org641/program/swriter
+OpenOffice.org641/program/smaster
+OpenOffice.org641/program/sweb
+OpenOffice.org641/program/libcalc641bi.so
+OpenOffice.org641/program/scalc
+OpenOffice.org641/program/simpress
+OpenOffice.org641/program/libsc641bi.so
+OpenOffice.org641/program/libdate641bi.so
+OpenOffice.org641/program/libanalysis641bi.so
+OpenOffice.org641/program/sdraw
+OpenOffice.org641/program/smath
+OpenOffice.org641/program/libsm641bi.so
+OpenOffice.org641/program/libsvg641bi.so
+OpenOffice.org641/program/liblth641bi.so
+OpenOffice.org641/program/libspell641bi.so
+OpenOffice.org641/program/bootstraprc
+OpenOffice.org641/program/jvmsetuprc
+OpenOffice.org641/program/setuprc
+OpenOffice.org641/program/sofficerc
+OpenOffice.org641/program/instdb.ins
+OpenOffice.org641/share/template/english/wizard/bitmap/Arrange_1.gif
+OpenOffice.org641/share/template/english/wizard/bitmap/Arrange_2.gif
+OpenOffice.org641/share/template/english/wizard/bitmap/Arrange_3.gif
+OpenOffice.org641/share/template/english/wizard/bitmap/Arrange_4.gif
+OpenOffice.org641/share/template/english/wizard/bitmap/Arrange_5.gif
+OpenOffice.org641/share/template/english/wizard/bitmap/FormWizard_1.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/FormWizard_2.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/Import_1.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/Import_3.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/Import_4.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/MS-Import_2-1.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/MS-Import_2-2.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/MS-Import_2-3.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/XML-Import_2-1.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/XML-Import_2-2.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/XML-Import_2-3.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/XML-Import_2-4.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/brd.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/cancel_down.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/cancel_up.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/denmark.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/down.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/end.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/euro_1.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/euro_2.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/euro_3.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/france.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/italia.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/nedland.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/okay_down.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/okay_up.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/polska.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/portugal.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/russia.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/spain.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/sweden.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/up.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/usa.bmp
+OpenOffice.org641/share/template/english/wizard/bitmap/webwizard.bmp
+OpenOffice.org641/share/template/english/wizard/styles/black_white.stc
+OpenOffice.org641/share/template/english/wizard/styles/blackberry.stc
+OpenOffice.org641/share/template/english/wizard/styles/default.stc
+OpenOffice.org641/share/template/english/wizard/styles/diner.stc
+OpenOffice.org641/share/template/english/wizard/styles/fall.stc
+OpenOffice.org641/share/template/english/wizard/styles/glacier.stc
+OpenOffice.org641/share/template/english/wizard/styles/green_grapes.stc
+OpenOffice.org641/share/template/english/wizard/styles/jeans.stc
+OpenOffice.org641/share/template/english/wizard/styles/marine.stc
+OpenOffice.org641/share/template/english/wizard/styles/millennium.stc
+OpenOffice.org641/share/template/english/wizard/styles/nature.stc
+OpenOffice.org641/share/template/english/wizard/styles/neon.stc
+OpenOffice.org641/share/template/english/wizard/styles/night.stc
+OpenOffice.org641/share/template/english/wizard/styles/nostalgic.stc
+OpenOffice.org641/share/template/english/wizard/styles/pastell.stc
+OpenOffice.org641/share/template/english/wizard/styles/pool.stc
+OpenOffice.org641/share/template/english/wizard/styles/pumpkin.stc
+OpenOffice.org641/share/template/english/wizard/styles/sunstyle.stc
+OpenOffice.org641/share/template/english/wizard/styles/xos.stc
+OpenOffice.org641/share/template/english/wizard/web/cnt-album.stw
+OpenOffice.org641/share/template/english/wizard/web/cnt-bilingual.stw
+OpenOffice.org641/share/template/english/wizard/web/cnt-chapters.stw
+OpenOffice.org641/share/template/english/wizard/web/cnt-empty.stw
+OpenOffice.org641/share/template/english/wizard/web/cnt-fixonecol.stw
+OpenOffice.org641/share/template/english/wizard/web/cnt-fixtwocol.stw
+OpenOffice.org641/share/template/english/wizard/web/cnt-formcontact.stw
+OpenOffice.org641/share/template/english/wizard/web/cnt-formcustomer.stw
+OpenOffice.org641/share/template/english/wizard/web/cnt-formfix.stw
+OpenOffice.org641/share/template/english/wizard/web/cnt-formvar.stw
+OpenOffice.org641/share/template/english/wizard/web/cnt-list.stw
+OpenOffice.org641/share/template/english/wizard/web/cnt-onepic.stw
+OpenOffice.org641/share/template/english/wizard/web/cnt-standard.stw
+OpenOffice.org641/share/template/english/wizard/web/cnt-twotitles.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-banana.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-blkjeans.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-blue.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-blueblock.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-bluejeans.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-fieryred.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-hightech.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-mint.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-music.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-nostalg.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-orange.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-petrol.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-seventies.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-standard.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-strwbryice.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-sun.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-tracks.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-turquoise.stw
+OpenOffice.org641/share/template/english/wizard/web/stl-wetblue.stw
+OpenOffice.org641/share/template/english/wizard/wizbrf1.stw
+OpenOffice.org641/share/template/english/wizard/wizbrf2.stw
+OpenOffice.org641/share/template/english/wizard/wizbrf3.stw
+OpenOffice.org641/share/template/english/wizard/wizfax1.stw
+OpenOffice.org641/share/template/english/wizard/wizfax2.stw
+OpenOffice.org641/share/template/english/wizard/wizfax3.stw
+OpenOffice.org641/share/template/english/wizard/wizmem1.stw
+OpenOffice.org641/share/template/english/wizard/wizmem2.stw
+OpenOffice.org641/share/template/english/wizard/wizmem3.stw
+OpenOffice.org641/share/template/english/wizard/wizagn1.stw
+OpenOffice.org641/share/template/english/wizard/wizagn2.stw
+OpenOffice.org641/share/template/english/wizard/wizagn3.stw
+OpenOffice.org641/share/template/english/internal/html.stw
+OpenOffice.org641/share/template/english/internal/idxexample.sxw
+OpenOffice.org641/share/template/english/internal/url_transfer.htm
+OpenOffice.org641/share/dtd/officedocument/1_0/Manifest.dtd
+OpenOffice.org641/share/dtd/officedocument/1_0/script.mod
+OpenOffice.org641/share/dtd/officedocument/1_0/statusbar.dtd
+OpenOffice.org641/share/dtd/officedocument/1_0/settings.mod
+OpenOffice.org641/share/dtd/officedocument/1_0/nmspace.mod
+OpenOffice.org641/share/dtd/officedocument/1_0/datastyl.mod
+OpenOffice.org641/share/dtd/officedocument/1_0/table.mod
+OpenOffice.org641/share/dtd/officedocument/1_0/drawing.mod
+OpenOffice.org641/share/dtd/officedocument/1_0/event.dtd
+OpenOffice.org641/share/dtd/officedocument/1_0/accelerator.dtd
+OpenOffice.org641/share/dtd/officedocument/1_0/office.dtd
+OpenOffice.org641/share/dtd/officedocument/1_0/office.mod
+OpenOffice.org641/share/dtd/officedocument/1_0/toolbar.dtd
+OpenOffice.org641/share/dtd/officedocument/1_0/style.mod
+OpenOffice.org641/share/dtd/officedocument/1_0/dtypes.mod
+OpenOffice.org641/share/dtd/officedocument/1_0/text.mod
+OpenOffice.org641/share/dtd/officedocument/1_0/module.dtd
+OpenOffice.org641/share/dtd/officedocument/1_0/meta.mod
+OpenOffice.org641/share/dtd/officedocument/1_0/dialog.dtd
+OpenOffice.org641/share/dtd/officedocument/1_0/chart.mod
+OpenOffice.org641/share/dtd/officedocument/1_0/libraries.dtd
+OpenOffice.org641/share/dtd/officedocument/1_0/form.mod
+OpenOffice.org641/share/dtd/officedocument/1_0/menubar.dtd
+OpenOffice.org641/share/dtd/math/1_01/w3c_ipr_software_notice.html
+OpenOffice.org641/share/dtd/math/1_01/math.dtd
+OpenOffice.org641/share/config/webcast/savepic.asp
+OpenOffice.org641/share/config/webcast/common.pl
+OpenOffice.org641/share/config/webcast/webcast.asp
+OpenOffice.org641/share/config/webcast/show.asp
+OpenOffice.org641/share/config/webcast/poll.pl
+OpenOffice.org641/share/config/webcast/webcast.pl
+OpenOffice.org641/share/config/webcast/common.inc
+OpenOffice.org641/share/config/webcast/editpic.asp
+OpenOffice.org641/share/config/webcast/poll.asp
+OpenOffice.org641/share/config/webcast/edit.asp
+OpenOffice.org641/share/config/webcast/editpic.pl
+OpenOffice.org641/share/config/webcast/edit.pl
+OpenOffice.org641/share/config/webcast/index.pl
+OpenOffice.org641/share/config/webcast/show.pl
+OpenOffice.org641/share/config/webcast/savepic.pl
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/SFX.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/Labels.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/Impress.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/Java.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/Chart.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/Draw.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/Calc.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/Linguistic.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/Writer.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/Common.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/TypeDetection.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/UI.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/DataAccess.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/Math.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/Views.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Office/WriterWeb.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/ucb/Configuration.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/ucb/Store.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/ucb/Hierarchy.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Inet.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/UserProfile.xml
+OpenOffice.org641/share/config/registry/instance/org/openoffice/Setup.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/Java.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/Views.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/TypeDetection.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/WriterWeb.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/Calc.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/Labels.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/Chart.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/Writer.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/UI.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/Linguistic.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/Common.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/Impress.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/Math.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/DataAccess.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Office/Draw.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/ucb/Configuration.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/ucb/Store.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/ucb/Hierarchy.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Setup.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/UserProfile.xml
+OpenOffice.org641/share/config/registry/template/org/openoffice/Inet.xml
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/SFX.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/Labels.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/Impress.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/Java.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/Chart.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/Draw.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/Calc.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/Linguistic.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/Writer.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/Common.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/TypeDetection.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/UI.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/DataAccess.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/Math.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/Views.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office/WriterWeb.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/ucb/Configuration.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/ucb/Store.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/ucb/Hierarchy.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Inet.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/UserProfile.dat
+OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Setup.dat
+OpenOffice.org641/share/config/symbol/sc00000.bmp
+OpenOffice.org641/share/config/symbol/sc05300.bmp
+OpenOffice.org641/share/config/symbol/sc05302.bmp
+OpenOffice.org641/share/config/symbol/sc05325.bmp
+OpenOffice.org641/share/config/symbol/sc05331.bmp
+OpenOffice.org641/share/config/symbol/sc05338.bmp
+OpenOffice.org641/share/config/symbol/sc05339.bmp
+OpenOffice.org641/share/config/symbol/sc05361.bmp
+OpenOffice.org641/share/config/symbol/sc05362.bmp
+OpenOffice.org641/share/config/symbol/sc05363.bmp
+OpenOffice.org641/share/config/symbol/sc05364.bmp
+OpenOffice.org641/share/config/symbol/sc05365.bmp
+OpenOffice.org641/share/config/symbol/sc05366.bmp
+OpenOffice.org641/share/config/symbol/sc05367.bmp
+OpenOffice.org641/share/config/symbol/sc05368.bmp
+OpenOffice.org641/share/config/symbol/sc05369.bmp
+OpenOffice.org641/share/config/symbol/sc05370.bmp
+OpenOffice.org641/share/config/symbol/sc05371.bmp
+OpenOffice.org641/share/config/symbol/sc05373.bmp
+OpenOffice.org641/share/config/symbol/sc05374.bmp
+OpenOffice.org641/share/config/symbol/sc05375.bmp
+OpenOffice.org641/share/config/symbol/sc05377.bmp
+OpenOffice.org641/share/config/symbol/sc05381.bmp
+OpenOffice.org641/share/config/symbol/sc05382.bmp
+OpenOffice.org641/share/config/symbol/sc05383.bmp
+OpenOffice.org641/share/config/symbol/sc05384.bmp
+OpenOffice.org641/share/config/symbol/sc05386.bmp
+OpenOffice.org641/share/config/symbol/sc05387.bmp
+OpenOffice.org641/share/config/symbol/sc05401.bmp
+OpenOffice.org641/share/config/symbol/sc05402.bmp
+OpenOffice.org641/share/config/symbol/sc05410.bmp
+OpenOffice.org641/share/config/symbol/sc05411.bmp
+OpenOffice.org641/share/config/symbol/sc05412.bmp
+OpenOffice.org641/share/config/symbol/sc05413.bmp
+OpenOffice.org641/share/config/symbol/sc05414.bmp
+OpenOffice.org641/share/config/symbol/sc05415.bmp
+OpenOffice.org641/share/config/symbol/sc05500.bmp
+OpenOffice.org641/share/config/symbol/sc05501.bmp
+OpenOffice.org641/share/config/symbol/sc05502.bmp
+OpenOffice.org641/share/config/symbol/sc05503.bmp
+OpenOffice.org641/share/config/symbol/sc05504.bmp
+OpenOffice.org641/share/config/symbol/sc05505.bmp
+OpenOffice.org641/share/config/symbol/sc05508.bmp
+OpenOffice.org641/share/config/symbol/sc05509.bmp
+OpenOffice.org641/share/config/symbol/sc05532.bmp
+OpenOffice.org641/share/config/symbol/sc05533.bmp
+OpenOffice.org641/share/config/symbol/sc05535.bmp
+OpenOffice.org641/share/config/symbol/sc05537.bmp
+OpenOffice.org641/share/config/symbol/sc05538.bmp
+OpenOffice.org641/share/config/symbol/sc05539.bmp
+OpenOffice.org641/share/config/symbol/sc05552.bmp
+OpenOffice.org641/share/config/symbol/sc05555.bmp
+OpenOffice.org641/share/config/symbol/sc05556.bmp
+OpenOffice.org641/share/config/symbol/sc05561.bmp
+OpenOffice.org641/share/config/symbol/sc05563.bmp
+OpenOffice.org641/share/config/symbol/sc05595.bmp
+OpenOffice.org641/share/config/symbol/sc05596.bmp
+OpenOffice.org641/share/config/symbol/sc05624.bmp
+OpenOffice.org641/share/config/symbol/sc05646.bmp
+OpenOffice.org641/share/config/symbol/sc05647.bmp
+OpenOffice.org641/share/config/symbol/sc05648.bmp
+OpenOffice.org641/share/config/symbol/sc05649.bmp
+OpenOffice.org641/share/config/symbol/sc05650.bmp
+OpenOffice.org641/share/config/symbol/sc05651.bmp
+OpenOffice.org641/share/config/symbol/sc05672.bmp
+OpenOffice.org641/share/config/symbol/sc05673.bmp
+OpenOffice.org641/share/config/symbol/sc05675.bmp
+OpenOffice.org641/share/config/symbol/sc05694.bmp
+OpenOffice.org641/share/config/symbol/sc05700.bmp
+OpenOffice.org641/share/config/symbol/sc05701.bmp
+OpenOffice.org641/share/config/symbol/sc05702.bmp
+OpenOffice.org641/share/config/symbol/sc05710.bmp
+OpenOffice.org641/share/config/symbol/sc05711.bmp
+OpenOffice.org641/share/config/symbol/sc05712.bmp
+OpenOffice.org641/share/config/symbol/sc05713.bmp
+OpenOffice.org641/share/config/symbol/sc05723.bmp
+OpenOffice.org641/share/config/symbol/sc05800.bmp
+OpenOffice.org641/share/config/symbol/sc05801.bmp
+OpenOffice.org641/share/config/symbol/sc05802.bmp
+OpenOffice.org641/share/config/symbol/sc05904.bmp
+OpenOffice.org641/share/config/symbol/sc05905.bmp
+OpenOffice.org641/share/config/symbol/sc05906.bmp
+OpenOffice.org641/share/config/symbol/sc05951.bmp
+OpenOffice.org641/share/config/symbol/sc05952.bmp
+OpenOffice.org641/share/config/symbol/sc05953.bmp
+OpenOffice.org641/share/config/symbol/sc05954.bmp
+OpenOffice.org641/share/config/symbol/sc05955.bmp
+OpenOffice.org641/share/config/symbol/sc05956.bmp
+OpenOffice.org641/share/config/symbol/sc05957.bmp
+OpenOffice.org641/share/config/symbol/sc05958.bmp
+OpenOffice.org641/share/config/symbol/sc05959.bmp
+OpenOffice.org641/share/config/symbol/sc05960.bmp
+OpenOffice.org641/share/config/symbol/sc05961.bmp
+OpenOffice.org641/share/config/symbol/sc05962.bmp
+OpenOffice.org641/share/config/symbol/sc05963.bmp
+OpenOffice.org641/share/config/symbol/sc06300.bmp
+OpenOffice.org641/share/config/symbol/sc06301.bmp
+OpenOffice.org641/share/config/symbol/sc06302.bmp
+OpenOffice.org641/share/config/symbol/sc06303.bmp
+OpenOffice.org641/share/config/symbol/sc06304.bmp
+OpenOffice.org641/share/config/symbol/sc06305.bmp
+OpenOffice.org641/share/config/symbol/sc06306.bmp
+OpenOffice.org641/share/config/symbol/sc06308.bmp
+OpenOffice.org641/share/config/symbol/sc06309.bmp
+OpenOffice.org641/share/config/symbol/sc06312.bmp
+OpenOffice.org641/share/config/symbol/sc06313.bmp
+OpenOffice.org641/share/config/symbol/sc06314.bmp
+OpenOffice.org641/share/config/symbol/sc06315.bmp
+OpenOffice.org641/share/config/symbol/sc06318.bmp
+OpenOffice.org641/share/config/symbol/sc06330.bmp
+OpenOffice.org641/share/config/symbol/sc06331.bmp
+OpenOffice.org641/share/config/symbol/sc06332.bmp
+OpenOffice.org641/share/config/symbol/sc06333.bmp
+OpenOffice.org641/share/config/symbol/sc06334.bmp
+OpenOffice.org641/share/config/symbol/sc06335.bmp
+OpenOffice.org641/share/config/symbol/sc06336.bmp
+OpenOffice.org641/share/config/symbol/sc06337.bmp
+OpenOffice.org641/share/config/symbol/sc06338.bmp
+OpenOffice.org641/share/config/symbol/sc06339.bmp
+OpenOffice.org641/share/config/symbol/sc06350.bmp
+OpenOffice.org641/share/config/symbol/sc06351.bmp
+OpenOffice.org641/share/config/symbol/sc06352.bmp
+OpenOffice.org641/share/config/symbol/sc06353.bmp
+OpenOffice.org641/share/config/symbol/sc06354.bmp
+OpenOffice.org641/share/config/symbol/sc06355.bmp
+OpenOffice.org641/share/config/symbol/sc06356.bmp
+OpenOffice.org641/share/config/symbol/sc06357.bmp
+OpenOffice.org641/share/config/symbol/sc06362.bmp
+OpenOffice.org641/share/config/symbol/sc06363.bmp
+OpenOffice.org641/share/config/symbol/sc06364.bmp
+OpenOffice.org641/share/config/symbol/sc06370.bmp
+OpenOffice.org641/share/config/symbol/sc06377.bmp
+OpenOffice.org641/share/config/symbol/sc06379.bmp
+OpenOffice.org641/share/config/symbol/sc06384.bmp
+OpenOffice.org641/share/config/symbol/sc06522.bmp
+OpenOffice.org641/share/config/symbol/sc10000.bmp
+OpenOffice.org641/share/config/symbol/sc10006.bmp
+OpenOffice.org641/share/config/symbol/sc10007.bmp
+OpenOffice.org641/share/config/symbol/sc10008.bmp
+OpenOffice.org641/share/config/symbol/sc10009.bmp
+OpenOffice.org641/share/config/symbol/sc10010.bmp
+OpenOffice.org641/share/config/symbol/sc10012.bmp
+OpenOffice.org641/share/config/symbol/sc10013.bmp
+OpenOffice.org641/share/config/symbol/sc10014.bmp
+OpenOffice.org641/share/config/symbol/sc10015.bmp
+OpenOffice.org641/share/config/symbol/sc10016.bmp
+OpenOffice.org641/share/config/symbol/sc10017.bmp
+OpenOffice.org641/share/config/symbol/sc10028.bmp
+OpenOffice.org641/share/config/symbol/sc10029.bmp
+OpenOffice.org641/share/config/symbol/sc10030.bmp
+OpenOffice.org641/share/config/symbol/sc10031.bmp
+OpenOffice.org641/share/config/symbol/sc10035.bmp
+OpenOffice.org641/share/config/symbol/sc10036.bmp
+OpenOffice.org641/share/config/symbol/sc10045.bmp
+OpenOffice.org641/share/config/symbol/sc10050.bmp
+OpenOffice.org641/share/config/symbol/sc10055.bmp
+OpenOffice.org641/share/config/symbol/sc10087.bmp
+OpenOffice.org641/share/config/symbol/sc10096.bmp
+OpenOffice.org641/share/config/symbol/sc10097.bmp
+OpenOffice.org641/share/config/symbol/sc10098.bmp
+OpenOffice.org641/share/config/symbol/sc10099.bmp
+OpenOffice.org641/share/config/symbol/sc10100.bmp
+OpenOffice.org641/share/config/symbol/sc10101.bmp
+OpenOffice.org641/share/config/symbol/sc10102.bmp
+OpenOffice.org641/share/config/symbol/sc10103.bmp
+OpenOffice.org641/share/config/symbol/sc10104.bmp
+OpenOffice.org641/share/config/symbol/sc10105.bmp
+OpenOffice.org641/share/config/symbol/sc10106.bmp
+OpenOffice.org641/share/config/symbol/sc10109.bmp
+OpenOffice.org641/share/config/symbol/sc10110.bmp
+OpenOffice.org641/share/config/symbol/sc10112.bmp
+OpenOffice.org641/share/config/symbol/sc10114.bmp
+OpenOffice.org641/share/config/symbol/sc10115.bmp
+OpenOffice.org641/share/config/symbol/sc10116.bmp
+OpenOffice.org641/share/config/symbol/sc10117.bmp
+OpenOffice.org641/share/config/symbol/sc10118.bmp
+OpenOffice.org641/share/config/symbol/sc10119.bmp
+OpenOffice.org641/share/config/symbol/sc10120.bmp
+OpenOffice.org641/share/config/symbol/sc10121.bmp
+OpenOffice.org641/share/config/symbol/sc10122.bmp
+OpenOffice.org641/share/config/symbol/sc10123.bmp
+OpenOffice.org641/share/config/symbol/sc10124.bmp
+OpenOffice.org641/share/config/symbol/sc10125.bmp
+OpenOffice.org641/share/config/symbol/sc10126.bmp
+OpenOffice.org641/share/config/symbol/sc10127.bmp
+OpenOffice.org641/share/config/symbol/sc10128.bmp
+OpenOffice.org641/share/config/symbol/sc10129.bmp
+OpenOffice.org641/share/config/symbol/sc10130.bmp
+OpenOffice.org641/share/config/symbol/sc10131.bmp
+OpenOffice.org641/share/config/symbol/sc10132.bmp
+OpenOffice.org641/share/config/symbol/sc10133.bmp
+OpenOffice.org641/share/config/symbol/sc10134.bmp
+OpenOffice.org641/share/config/symbol/sc10135.bmp
+OpenOffice.org641/share/config/symbol/sc10136.bmp
+OpenOffice.org641/share/config/symbol/sc10137.bmp
+OpenOffice.org641/share/config/symbol/sc10138.bmp
+OpenOffice.org641/share/config/symbol/sc10139.bmp
+OpenOffice.org641/share/config/symbol/sc10140.bmp
+OpenOffice.org641/share/config/symbol/sc10141.bmp
+OpenOffice.org641/share/config/symbol/sc10142.bmp
+OpenOffice.org641/share/config/symbol/sc10143.bmp
+OpenOffice.org641/share/config/symbol/sc10144.bmp
+OpenOffice.org641/share/config/symbol/sc10145.bmp
+OpenOffice.org641/share/config/symbol/sc10146.bmp
+OpenOffice.org641/share/config/symbol/sc10147.bmp
+OpenOffice.org641/share/config/symbol/sc10148.bmp
+OpenOffice.org641/share/config/symbol/sc10150.bmp
+OpenOffice.org641/share/config/symbol/sc10151.bmp
+OpenOffice.org641/share/config/symbol/sc10152.bmp
+OpenOffice.org641/share/config/symbol/sc10153.bmp
+OpenOffice.org641/share/config/symbol/sc10154.bmp
+OpenOffice.org641/share/config/symbol/sc10155.bmp
+OpenOffice.org641/share/config/symbol/sc10156.bmp
+OpenOffice.org641/share/config/symbol/sc10157.bmp
+OpenOffice.org641/share/config/symbol/sc10158.bmp
+OpenOffice.org641/share/config/symbol/sc10159.bmp
+OpenOffice.org641/share/config/symbol/sc10160.bmp
+OpenOffice.org641/share/config/symbol/sc10161.bmp
+OpenOffice.org641/share/config/symbol/sc10162.bmp
+OpenOffice.org641/share/config/symbol/sc10163.bmp
+OpenOffice.org641/share/config/symbol/sc10164.bmp
+OpenOffice.org641/share/config/symbol/sc10185.bmp
+OpenOffice.org641/share/config/symbol/sc10186.bmp
+OpenOffice.org641/share/config/symbol/sc10187.bmp
+OpenOffice.org641/share/config/symbol/sc10188.bmp
+OpenOffice.org641/share/config/symbol/sc10189.bmp
+OpenOffice.org641/share/config/symbol/sc10190.bmp
+OpenOffice.org641/share/config/symbol/sc10191.bmp
+OpenOffice.org641/share/config/symbol/sc10192.bmp
+OpenOffice.org641/share/config/symbol/sc10193.bmp
+OpenOffice.org641/share/config/symbol/sc10194.bmp
+OpenOffice.org641/share/config/symbol/sc10195.bmp
+OpenOffice.org641/share/config/symbol/sc10196.bmp
+OpenOffice.org641/share/config/symbol/sc10197.bmp
+OpenOffice.org641/share/config/symbol/sc10199.bmp
+OpenOffice.org641/share/config/symbol/sc10200.bmp
+OpenOffice.org641/share/config/symbol/sc10201.bmp
+OpenOffice.org641/share/config/symbol/sc10217.bmp
+OpenOffice.org641/share/config/symbol/sc10223.bmp
+OpenOffice.org641/share/config/symbol/sc10224.bmp
+OpenOffice.org641/share/config/symbol/sc10231.bmp
+OpenOffice.org641/share/config/symbol/sc10232.bmp
+OpenOffice.org641/share/config/symbol/sc10233.bmp
+OpenOffice.org641/share/config/symbol/sc10240.bmp
+OpenOffice.org641/share/config/symbol/sc10241.bmp
+OpenOffice.org641/share/config/symbol/sc10242.bmp
+OpenOffice.org641/share/config/symbol/sc10243.bmp
+OpenOffice.org641/share/config/symbol/sc10244.bmp
+OpenOffice.org641/share/config/symbol/sc10253.bmp
+OpenOffice.org641/share/config/symbol/sc10254.bmp
+OpenOffice.org641/share/config/symbol/sc10255.bmp
+OpenOffice.org641/share/config/symbol/sc10256.bmp
+OpenOffice.org641/share/config/symbol/sc10282.bmp
+OpenOffice.org641/share/config/symbol/sc10283.bmp
+OpenOffice.org641/share/config/symbol/sc10286.bmp
+OpenOffice.org641/share/config/symbol/sc10287.bmp
+OpenOffice.org641/share/config/symbol/sc10294.bmp
+OpenOffice.org641/share/config/symbol/sc10295.bmp
+OpenOffice.org641/share/config/symbol/sc10296.bmp
+OpenOffice.org641/share/config/symbol/sc10297.bmp
+OpenOffice.org641/share/config/symbol/sc10301.bmp
+OpenOffice.org641/share/config/symbol/sc10350.bmp
+OpenOffice.org641/share/config/symbol/sc10360.bmp
+OpenOffice.org641/share/config/symbol/sc10366.bmp
+OpenOffice.org641/share/config/symbol/sc10371.bmp
+OpenOffice.org641/share/config/symbol/sc10375.bmp
+OpenOffice.org641/share/config/symbol/sc10376.bmp
+OpenOffice.org641/share/config/symbol/sc10378.bmp
+OpenOffice.org641/share/config/symbol/sc10379.bmp
+OpenOffice.org641/share/config/symbol/sc10380.bmp
+OpenOffice.org641/share/config/symbol/sc10381.bmp
+OpenOffice.org641/share/config/symbol/sc10382.bmp
+OpenOffice.org641/share/config/symbol/sc10383.bmp
+OpenOffice.org641/share/config/symbol/sc10384.bmp
+OpenOffice.org641/share/config/symbol/sc10385.bmp
+OpenOffice.org641/share/config/symbol/sc10386.bmp
+OpenOffice.org641/share/config/symbol/sc10387.bmp
+OpenOffice.org641/share/config/symbol/sc10388.bmp
+OpenOffice.org641/share/config/symbol/sc10389.bmp
+OpenOffice.org641/share/config/symbol/sc10390.bmp
+OpenOffice.org641/share/config/symbol/sc10391.bmp
+OpenOffice.org641/share/config/symbol/sc10393.bmp
+OpenOffice.org641/share/config/symbol/sc10394.bmp
+OpenOffice.org641/share/config/symbol/sc10395.bmp
+OpenOffice.org641/share/config/symbol/sc10396.bmp
+OpenOffice.org641/share/config/symbol/sc10397.bmp
+OpenOffice.org641/share/config/symbol/sc10398.bmp
+OpenOffice.org641/share/config/symbol/sc10399.bmp
+OpenOffice.org641/share/config/symbol/sc10401.bmp
+OpenOffice.org641/share/config/symbol/sc10402.bmp
+OpenOffice.org641/share/config/symbol/sc10403.bmp
+OpenOffice.org641/share/config/symbol/sc10434.bmp
+OpenOffice.org641/share/config/symbol/sc10458.bmp
+OpenOffice.org641/share/config/symbol/sc10461.bmp
+OpenOffice.org641/share/config/symbol/sc10462.bmp
+OpenOffice.org641/share/config/symbol/sc10463.bmp
+OpenOffice.org641/share/config/symbol/sc10464.bmp
+OpenOffice.org641/share/config/symbol/sc10465.bmp
+OpenOffice.org641/share/config/symbol/sc10503.bmp
+OpenOffice.org641/share/config/symbol/sc12021.bmp
+OpenOffice.org641/share/config/symbol/sc12201.bmp
+OpenOffice.org641/share/config/symbol/sc12202.bmp
+OpenOffice.org641/share/config/symbol/sc12203.bmp
+OpenOffice.org641/share/config/symbol/sc12204.bmp
+OpenOffice.org641/share/config/symbol/sc12212.bmp
+OpenOffice.org641/share/config/symbol/sc12221.bmp
+OpenOffice.org641/share/config/symbol/sc12222.bmp
+OpenOffice.org641/share/config/symbol/sc12223.bmp
+OpenOffice.org641/share/config/symbol/sc12224.bmp
+OpenOffice.org641/share/config/symbol/sc12225.bmp
+OpenOffice.org641/share/config/symbol/sc12226.bmp
+OpenOffice.org641/share/config/symbol/sc12227.bmp
+OpenOffice.org641/share/config/symbol/sc12228.bmp
+OpenOffice.org641/share/config/symbol/sc12229.bmp
+OpenOffice.org641/share/config/symbol/sc12230.bmp
+OpenOffice.org641/share/config/symbol/sc12231.bmp
+OpenOffice.org641/share/config/symbol/sc12232.bmp
+OpenOffice.org641/share/config/symbol/sc12234.bmp
+OpenOffice.org641/share/config/symbol/sc14780.bmp
+OpenOffice.org641/share/config/symbol/sc14781.bmp
+OpenOffice.org641/share/config/symbol/sc14785.bmp
+OpenOffice.org641/share/config/symbol/sc14786.bmp
+OpenOffice.org641/share/config/symbol/sc21050.bmp
+OpenOffice.org641/share/config/symbol/sc21051.bmp
+OpenOffice.org641/share/config/symbol/sc21060.bmp
+OpenOffice.org641/share/config/symbol/sc21061.bmp
+OpenOffice.org641/share/config/symbol/sc21062.bmp
+OpenOffice.org641/share/config/symbol/sc21070.bmp
+OpenOffice.org641/share/config/symbol/sc21080.bmp
+OpenOffice.org641/share/config/symbol/sc21100.bmp
+OpenOffice.org641/share/config/symbol/sc21101.bmp
+OpenOffice.org641/share/config/symbol/sc21102.bmp
+OpenOffice.org641/share/config/symbol/sc21103.bmp
+OpenOffice.org641/share/config/symbol/sc21104.bmp
+OpenOffice.org641/share/config/symbol/sc21105.bmp
+OpenOffice.org641/share/config/symbol/sc21110.bmp
+OpenOffice.org641/share/config/symbol/sc21111.bmp
+OpenOffice.org641/share/config/symbol/sc21120.bmp
+OpenOffice.org641/share/config/symbol/sc21121.bmp
+OpenOffice.org641/share/config/symbol/sc21130.bmp
+OpenOffice.org641/share/config/symbol/sc21140.bmp
+OpenOffice.org641/share/config/symbol/sc21141.bmp
+OpenOffice.org641/share/config/symbol/sc21142.bmp
+OpenOffice.org641/share/config/symbol/sc21150.bmp
+OpenOffice.org641/share/config/symbol/sc21160.bmp
+OpenOffice.org641/share/config/symbol/sc21170.bmp
+OpenOffice.org641/share/config/symbol/sc21180.bmp
+OpenOffice.org641/share/config/symbol/sc21190.bmp
+OpenOffice.org641/share/config/symbol/sc21200.bmp
+OpenOffice.org641/share/config/symbol/sc21210.bmp
+OpenOffice.org641/share/config/symbol/sc21220.bmp
+OpenOffice.org641/share/config/symbol/sc21230.bmp
+OpenOffice.org641/share/config/symbol/sc21240.bmp
+OpenOffice.org641/share/config/symbol/sc21250.bmp
+OpenOffice.org641/share/config/symbol/sc27030.bmp
+OpenOffice.org641/share/config/symbol/sc27065.bmp
+OpenOffice.org641/share/config/symbol/sc27066.bmp
+OpenOffice.org641/share/config/symbol/sc27067.bmp
+OpenOffice.org641/share/config/symbol/sc30000.bmp
+OpenOffice.org641/share/config/symbol/sc30002.bmp
+OpenOffice.org641/share/config/symbol/sc30003.bmp
+OpenOffice.org641/share/config/symbol/sc30004.bmp
+OpenOffice.org641/share/config/symbol/sc30005.bmp
+OpenOffice.org641/share/config/symbol/sc30007.bmp
+OpenOffice.org641/share/config/symbol/sc30008.bmp
+OpenOffice.org641/share/config/symbol/sc30009.bmp
+OpenOffice.org641/share/config/symbol/sc30010.bmp
+OpenOffice.org641/share/config/symbol/sc30011.bmp
+OpenOffice.org641/share/config/symbol/sc30012.bmp
+OpenOffice.org641/share/config/symbol/sc30770.bmp
+OpenOffice.org641/share/config/symbol/sc30773.bmp
+OpenOffice.org641/share/config/symbol/sc30774.bmp
+OpenOffice.org641/share/config/symbol/sc30782.bmp
+OpenOffice.org641/share/config/symbol/sc6377.bmp
+OpenOffice.org641/share/config/symbol/scbullet.bmp
+OpenOffice.org641/share/config/symbol/scnumb.bmp
+OpenOffice.org641/share/config/symbol/sco161.bmp
+OpenOffice.org641/share/config/symbol/sco261.bmp
+OpenOffice.org641/share/config/symbol/sco262.bmp
+OpenOffice.org641/share/config/symbol/sortd.bmp
+OpenOffice.org641/share/config/symbol/sortu.bmp
+OpenOffice.org641/share/config/symbol/u_high.bmp
+OpenOffice.org641/share/config/symbol/u_low.bmp
+OpenOffice.org641/share/config/symbol/u_normal.bmp
+OpenOffice.org641/share/config/psetup.xpm
+OpenOffice.org641/share/config/psetupl.xpm
+OpenOffice.org641/share/fonts/truetype/fonts.dir
+OpenOffice.org641/share/fonts/truetype/opens___.ttf
+OpenOffice.org641/share/fonts/truetype/fonts_dir.global
+OpenOffice.org641/share/basic/FormWizard/DlgFormDB.xdl
+OpenOffice.org641/share/basic/FormWizard/DBMeta.xba
+OpenOffice.org641/share/basic/FormWizard/FormWizard.xba
+OpenOffice.org641/share/basic/FormWizard/Language.xba
+OpenOffice.org641/share/basic/FormWizard/Layouter.xba
+OpenOffice.org641/share/basic/FormWizard/develop.xba
+OpenOffice.org641/share/basic/FormWizard/tools.xba
+OpenOffice.org641/share/basic/Schedule/DlgCalendar.xdl
+OpenOffice.org641/share/basic/Schedule/BankHoliday.xba
+OpenOffice.org641/share/basic/Schedule/CalendarMain.xba
+OpenOffice.org641/share/basic/Schedule/CreateTable.xba
+OpenOffice.org641/share/basic/Schedule/DlgControl.xba
+OpenOffice.org641/share/basic/Schedule/HolidayDanmark.xba
+OpenOffice.org641/share/basic/Schedule/HolidayFrance.xba
+OpenOffice.org641/share/basic/Schedule/HolidayGerman.xba
+OpenOffice.org641/share/basic/Schedule/HolidayItalia.xba
+OpenOffice.org641/share/basic/Schedule/HolidayNetherlands.xba
+OpenOffice.org641/share/basic/Schedule/HolidayPoland.xba
+OpenOffice.org641/share/basic/Schedule/HolidayPortugal.xba
+OpenOffice.org641/share/basic/Schedule/HolidayRussia.xba
+OpenOffice.org641/share/basic/Schedule/HolidaySpain.xba
+OpenOffice.org641/share/basic/Schedule/HolidaySweden.xba
+OpenOffice.org641/share/basic/Schedule/HolidayUSA.xba
+OpenOffice.org641/share/basic/Schedule/Language.xba
+OpenOffice.org641/share/basic/Schedule/OwnEvents.xba
+OpenOffice.org641/share/basic/Template/DialogStyles.xdl
+OpenOffice.org641/share/basic/Template/DlgGreeting.xdl
+OpenOffice.org641/share/basic/Template/TemplateDialog.xdl
+OpenOffice.org641/share/basic/Template/Autotext.xba
+OpenOffice.org641/share/basic/Template/Correspondence.xba
+OpenOffice.org641/share/basic/Template/Greeting.xba
+OpenOffice.org641/share/basic/Template/ModuleAgenda.xba
+OpenOffice.org641/share/basic/Template/Samples.xba
+OpenOffice.org641/share/basic/Gimmicks/ReadFolderDlg.xdl
+OpenOffice.org641/share/basic/Gimmicks/UserfieldDlg.xdl
+OpenOffice.org641/share/basic/Gimmicks/AutoText.xba
+OpenOffice.org641/share/basic/Gimmicks/ChangeAllChars.xba
+OpenOffice.org641/share/basic/Gimmicks/GetTexts.xba
+OpenOffice.org641/share/basic/Gimmicks/ReadDir.xba
+OpenOffice.org641/share/basic/Gimmicks/Userfields.xba
+OpenOffice.org641/share/basic/Tools/Debug.xba
+OpenOffice.org641/share/basic/Tools/Listbox.xba
+OpenOffice.org641/share/basic/Tools/Misc.xba
+OpenOffice.org641/share/basic/Tools/ModuleControls.xba
+OpenOffice.org641/share/basic/Tools/Strings.xba
+OpenOffice.org641/share/basic/Tools/UCB.xba
+OpenOffice.org641/share/basic/WebWizard/WebWzrd.xdl
+OpenOffice.org641/share/basic/WebWizard/Bullets.xba
+OpenOffice.org641/share/basic/WebWizard/Common.xba
+OpenOffice.org641/share/basic/WebWizard/HtmlAutoPilotBasic.xba
+OpenOffice.org641/share/basic/WebWizard/Language.xba
+OpenOffice.org641/share/basic/ImportWizard/ImportDialog.xdl
+OpenOffice.org641/share/basic/ImportWizard/API.xba
+OpenOffice.org641/share/basic/ImportWizard/DialogModul.xba
+OpenOffice.org641/share/basic/ImportWizard/FilesModul.xba
+OpenOffice.org641/share/basic/ImportWizard/Language.xba
+OpenOffice.org641/share/basic/ImportWizard/Main.xba
+OpenOffice.org641/share/basic/Euro/DlgConvert.xdl
+OpenOffice.org641/share/basic/Euro/DlgPassword.xdl
+OpenOffice.org641/share/basic/Euro/AutoPilotRun.xba
+OpenOffice.org641/share/basic/Euro/Common.xba
+OpenOffice.org641/share/basic/Euro/ConvertRun.xba
+OpenOffice.org641/share/basic/Euro/Hard.xba
+OpenOffice.org641/share/basic/Euro/Init.xba
+OpenOffice.org641/share/basic/Euro/Protect.xba
+OpenOffice.org641/share/basic/Euro/Soft.xba
+OpenOffice.org641/share/basic/Euro/Writer.xba
+OpenOffice.org641/share/gallery/htmlexpo/bludown.gif
+OpenOffice.org641/share/gallery/htmlexpo/blufirs.gif
+OpenOffice.org641/share/gallery/htmlexpo/blufirs_.gif
+OpenOffice.org641/share/gallery/htmlexpo/blulast.gif
+OpenOffice.org641/share/gallery/htmlexpo/blulast_.gif
+OpenOffice.org641/share/gallery/htmlexpo/blunav.gif
+OpenOffice.org641/share/gallery/htmlexpo/blunext.gif
+OpenOffice.org641/share/gallery/htmlexpo/blunext_.gif
+OpenOffice.org641/share/gallery/htmlexpo/bluprev.gif
+OpenOffice.org641/share/gallery/htmlexpo/bluprev_.gif
+OpenOffice.org641/share/gallery/htmlexpo/blutext.gif
+OpenOffice.org641/share/gallery/htmlexpo/bluup.gif
+OpenOffice.org641/share/gallery/htmlexpo/cubdown.gif
+OpenOffice.org641/share/gallery/htmlexpo/cubfirs.gif
+OpenOffice.org641/share/gallery/htmlexpo/cubfirs_.gif
+OpenOffice.org641/share/gallery/htmlexpo/cublast.gif
+OpenOffice.org641/share/gallery/htmlexpo/cublast_.gif
+OpenOffice.org641/share/gallery/htmlexpo/cubnav.gif
+OpenOffice.org641/share/gallery/htmlexpo/cubnext.gif
+OpenOffice.org641/share/gallery/htmlexpo/cubnext_.gif
+OpenOffice.org641/share/gallery/htmlexpo/cubprev.gif
+OpenOffice.org641/share/gallery/htmlexpo/cubprev_.gif
+OpenOffice.org641/share/gallery/htmlexpo/cubtext.gif
+OpenOffice.org641/share/gallery/htmlexpo/cubup.gif
+OpenOffice.org641/share/gallery/htmlexpo/gredown.gif
+OpenOffice.org641/share/gallery/htmlexpo/grefirs.gif
+OpenOffice.org641/share/gallery/htmlexpo/grefirs_.gif
+OpenOffice.org641/share/gallery/htmlexpo/grelast.gif
+OpenOffice.org641/share/gallery/htmlexpo/grelast_.gif
+OpenOffice.org641/share/gallery/htmlexpo/grenav.gif
+OpenOffice.org641/share/gallery/htmlexpo/grenext.gif
+OpenOffice.org641/share/gallery/htmlexpo/grenext_.gif
+OpenOffice.org641/share/gallery/htmlexpo/greprev.gif
+OpenOffice.org641/share/gallery/htmlexpo/greprev_.gif
+OpenOffice.org641/share/gallery/htmlexpo/gretext.gif
+OpenOffice.org641/share/gallery/htmlexpo/greup.gif
+OpenOffice.org641/share/gallery/htmlexpo/simdown.gif
+OpenOffice.org641/share/gallery/htmlexpo/simfirs.gif
+OpenOffice.org641/share/gallery/htmlexpo/simfirs_.gif
+OpenOffice.org641/share/gallery/htmlexpo/simlast.gif
+OpenOffice.org641/share/gallery/htmlexpo/simlast_.gif
+OpenOffice.org641/share/gallery/htmlexpo/simnav.gif
+OpenOffice.org641/share/gallery/htmlexpo/simnext.gif
+OpenOffice.org641/share/gallery/htmlexpo/simnext_.gif
+OpenOffice.org641/share/gallery/htmlexpo/simprev.gif
+OpenOffice.org641/share/gallery/htmlexpo/simprev_.gif
+OpenOffice.org641/share/gallery/htmlexpo/simtext.gif
+OpenOffice.org641/share/gallery/htmlexpo/simup.gif
+OpenOffice.org641/share/gallery/htmlexpo/sologo.gif
+OpenOffice.org641/share/gallery/www-back/aqua.jpg
+OpenOffice.org641/share/gallery/www-back/bathroom.jpg
+OpenOffice.org641/share/gallery/www-back/blocks.jpg
+OpenOffice.org641/share/gallery/www-back/blow_green.jpg
+OpenOffice.org641/share/gallery/www-back/blueblop.jpg
+OpenOffice.org641/share/gallery/www-back/bulging.jpg
+OpenOffice.org641/share/gallery/www-back/canvas_blue.jpg
+OpenOffice.org641/share/gallery/www-back/cheese.jpg
+OpenOffice.org641/share/gallery/www-back/chocolate.jpg
+OpenOffice.org641/share/gallery/www-back/citrus.jpg
+OpenOffice.org641/share/gallery/www-back/confetti.jpg
+OpenOffice.org641/share/gallery/www-back/daisy.jpg
+OpenOffice.org641/share/gallery/www-back/fluffy-grey.jpg
+OpenOffice.org641/share/gallery/www-back/fluffy.jpg
+OpenOffice.org641/share/gallery/www-back/fuzzy-blue.jpg
+OpenOffice.org641/share/gallery/www-back/fuzzy-darkgrey.jpg
+OpenOffice.org641/share/gallery/www-back/fuzzy-grey.jpg
+OpenOffice.org641/share/gallery/www-back/fuzzy-lightgrey.jpg
+OpenOffice.org641/share/gallery/www-back/fuzzy_light.jpg
+OpenOffice.org641/share/gallery/www-back/gregre.gif
+OpenOffice.org641/share/gallery/www-back/grey.gif
+OpenOffice.org641/share/gallery/www-back/grypaws.gif
+OpenOffice.org641/share/gallery/www-back/ice-blue.jpg
+OpenOffice.org641/share/gallery/www-back/ice-light.jpg
+OpenOffice.org641/share/gallery/www-back/imitation_leather.jpg
+OpenOffice.org641/share/gallery/www-back/interstices.jpg
+OpenOffice.org641/share/gallery/www-back/jeans.jpg
+OpenOffice.org641/share/gallery/www-back/jeansblk.jpg
+OpenOffice.org641/share/gallery/www-back/lawn-artificial.jpg
+OpenOffice.org641/share/gallery/www-back/lawn.jpg
+OpenOffice.org641/share/gallery/www-back/lightblue-wet.jpg
+OpenOffice.org641/share/gallery/www-back/linen-fine.jpg
+OpenOffice.org641/share/gallery/www-back/lino-green.jpg
+OpenOffice.org641/share/gallery/www-back/liquid-blue.jpg
+OpenOffice.org641/share/gallery/www-back/marble.jpg
+OpenOffice.org641/share/gallery/www-back/marble_dark.jpg
+OpenOffice.org641/share/gallery/www-back/mazes.jpg
+OpenOffice.org641/share/gallery/www-back/mint.gif
+OpenOffice.org641/share/gallery/www-back/notes.gif
+OpenOffice.org641/share/gallery/www-back/pattern.jpg
+OpenOffice.org641/share/gallery/www-back/pebble-light.jpg
+OpenOffice.org641/share/gallery/www-back/pink.gif
+OpenOffice.org641/share/gallery/www-back/pool.jpg
+OpenOffice.org641/share/gallery/www-back/popcorn.jpg
+OpenOffice.org641/share/gallery/www-back/purple.jpg
+OpenOffice.org641/share/gallery/www-back/reddark.jpg
+OpenOffice.org641/share/gallery/www-back/rings-green.jpg
+OpenOffice.org641/share/gallery/www-back/rings-orange.jpg
+OpenOffice.org641/share/gallery/www-back/roses.jpg
+OpenOffice.org641/share/gallery/www-back/sand-light.jpg
+OpenOffice.org641/share/gallery/www-back/sand.jpg
+OpenOffice.org641/share/gallery/www-back/sky.jpg
+OpenOffice.org641/share/gallery/www-back/soft-structure_grey.jpg
+OpenOffice.org641/share/gallery/www-back/space.jpg
+OpenOffice.org641/share/gallery/www-back/stone-dark.jpg
+OpenOffice.org641/share/gallery/www-back/stone.jpg
+OpenOffice.org641/share/gallery/www-back/structure.jpg
+OpenOffice.org641/share/gallery/www-back/structure_darkgreen.gif
+OpenOffice.org641/share/gallery/www-back/structure_green.jpg
+OpenOffice.org641/share/gallery/www-back/wall-grey.jpg
+OpenOffice.org641/share/gallery/www-back/wet-turquoise.jpg
+OpenOffice.org641/share/gallery/www-back/wood.jpg
+OpenOffice.org641/share/gallery/bullets/blkpearl.gif
+OpenOffice.org641/share/gallery/bullets/bluarrow.gif
+OpenOffice.org641/share/gallery/bullets/bluball.gif
+OpenOffice.org641/share/gallery/bullets/bludiamd.gif
+OpenOffice.org641/share/gallery/bullets/bluered.gif
+OpenOffice.org641/share/gallery/bullets/blusqare.gif
+OpenOffice.org641/share/gallery/bullets/blustar.gif
+OpenOffice.org641/share/gallery/bullets/coffee_1.gif
+OpenOffice.org641/share/gallery/bullets/coffee_2.gif
+OpenOffice.org641/share/gallery/bullets/coffee_3.gif
+OpenOffice.org641/share/gallery/bullets/coffee_4.gif
+OpenOffice.org641/share/gallery/bullets/coffee_5.gif
+OpenOffice.org641/share/gallery/bullets/con-blue.gif
+OpenOffice.org641/share/gallery/bullets/con-cyan.gif
+OpenOffice.org641/share/gallery/bullets/con-green.gif
+OpenOffice.org641/share/gallery/bullets/con-lilac.gif
+OpenOffice.org641/share/gallery/bullets/con-oran.gif
+OpenOffice.org641/share/gallery/bullets/con-pink.gif
+OpenOffice.org641/share/gallery/bullets/con-red.gif
+OpenOffice.org641/share/gallery/bullets/con-yellow.gif
+OpenOffice.org641/share/gallery/bullets/corner_1.gif
+OpenOffice.org641/share/gallery/bullets/corner_2.gif
+OpenOffice.org641/share/gallery/bullets/corner_3.gif
+OpenOffice.org641/share/gallery/bullets/corner_4.gif
+OpenOffice.org641/share/gallery/bullets/darkball.gif
+OpenOffice.org641/share/gallery/bullets/darkblue.gif
+OpenOffice.org641/share/gallery/bullets/gldpearl.gif
+OpenOffice.org641/share/gallery/bullets/golfball.gif
+OpenOffice.org641/share/gallery/bullets/grnarrow.gif
+OpenOffice.org641/share/gallery/bullets/grnball.gif
+OpenOffice.org641/share/gallery/bullets/grndiamd.gif
+OpenOffice.org641/share/gallery/bullets/grnpearl.gif
+OpenOffice.org641/share/gallery/bullets/grnsqare.gif
+OpenOffice.org641/share/gallery/bullets/grnstar.gif
+OpenOffice.org641/share/gallery/bullets/gryarrow.gif
+OpenOffice.org641/share/gallery/bullets/gryball.gif
+OpenOffice.org641/share/gallery/bullets/grydiamd.gif
+OpenOffice.org641/share/gallery/bullets/grysqare.gif
+OpenOffice.org641/share/gallery/bullets/grystar.gif
+OpenOffice.org641/share/gallery/bullets/orgarrow.gif
+OpenOffice.org641/share/gallery/bullets/orgball.gif
+OpenOffice.org641/share/gallery/bullets/orgdiamd.gif
+OpenOffice.org641/share/gallery/bullets/orgsqare.gif
+OpenOffice.org641/share/gallery/bullets/orgstar.gif
+OpenOffice.org641/share/gallery/bullets/pebble_1.gif
+OpenOffice.org641/share/gallery/bullets/pebble_2.gif
+OpenOffice.org641/share/gallery/bullets/pebble_3.gif
+OpenOffice.org641/share/gallery/bullets/poliball.gif
+OpenOffice.org641/share/gallery/bullets/popcorn_1.gif
+OpenOffice.org641/share/gallery/bullets/popcorn_2.gif
+OpenOffice.org641/share/gallery/bullets/rainbow.gif
+OpenOffice.org641/share/gallery/bullets/redarrow.gif
+OpenOffice.org641/share/gallery/bullets/redball.gif
+OpenOffice.org641/share/gallery/bullets/reddiamd.gif
+OpenOffice.org641/share/gallery/bullets/redsqare.gif
+OpenOffice.org641/share/gallery/bullets/redstar.gif
+OpenOffice.org641/share/gallery/bullets/whtpearl.gif
+OpenOffice.org641/share/gallery/bullets/ylwarrow.gif
+OpenOffice.org641/share/gallery/bullets/ylwball.gif
+OpenOffice.org641/share/gallery/bullets/ylwdiamd.gif
+OpenOffice.org641/share/gallery/bullets/ylwsqare.gif
+OpenOffice.org641/share/gallery/bullets/ylwstar.gif
+OpenOffice.org641/share/gallery/rulers/blkballs.gif
+OpenOffice.org641/share/gallery/rulers/blurulr1.gif
+OpenOffice.org641/share/gallery/rulers/blurulr2.gif
+OpenOffice.org641/share/gallery/rulers/blurulr3.gif
+OpenOffice.org641/share/gallery/rulers/blurulr4.gif
+OpenOffice.org641/share/gallery/rulers/blurulr5.gif
+OpenOffice.org641/share/gallery/rulers/blurulr6.gif
+OpenOffice.org641/share/gallery/rulers/gldballs.gif
+OpenOffice.org641/share/gallery/rulers/grnballs.gif
+OpenOffice.org641/share/gallery/rulers/grnrulr1.gif
+OpenOffice.org641/share/gallery/rulers/grnrulr2.gif
+OpenOffice.org641/share/gallery/rulers/grnrulr3.gif
+OpenOffice.org641/share/gallery/rulers/grnrulr4.gif
+OpenOffice.org641/share/gallery/rulers/gryrulr1.gif
+OpenOffice.org641/share/gallery/rulers/gryrulr2.gif
+OpenOffice.org641/share/gallery/rulers/gryrulr3.gif
+OpenOffice.org641/share/gallery/rulers/orgrulr1.gif
+OpenOffice.org641/share/gallery/rulers/redrulr1.gif
+OpenOffice.org641/share/gallery/rulers/redrulr2.gif
+OpenOffice.org641/share/gallery/rulers/redrulr3.gif
+OpenOffice.org641/share/gallery/rulers/redrulr4.gif
+OpenOffice.org641/share/gallery/rulers/redrulr5.gif
+OpenOffice.org641/share/gallery/rulers/striped.gif
+OpenOffice.org641/share/gallery/rulers/whtballs.gif
+OpenOffice.org641/share/gallery/rulers/ylwrulr1.gif
+OpenOffice.org641/share/gallery/sounds/apert.wav
+OpenOffice.org641/share/gallery/sounds/apert2.wav
+OpenOffice.org641/share/gallery/sounds/applause.wav
+OpenOffice.org641/share/gallery/sounds/beam.wav
+OpenOffice.org641/share/gallery/sounds/beam2.wav
+OpenOffice.org641/share/gallery/sounds/cow.wav
+OpenOffice.org641/share/gallery/sounds/curve.wav
+OpenOffice.org641/share/gallery/sounds/drama.wav
+OpenOffice.org641/share/gallery/sounds/explos.wav
+OpenOffice.org641/share/gallery/sounds/falling.wav
+OpenOffice.org641/share/gallery/sounds/glasses.wav
+OpenOffice.org641/share/gallery/sounds/gong.wav
+OpenOffice.org641/share/gallery/sounds/horse.wav
+OpenOffice.org641/share/gallery/sounds/kling.wav
+OpenOffice.org641/share/gallery/sounds/kongas.wav
+OpenOffice.org641/share/gallery/sounds/laser.wav
+OpenOffice.org641/share/gallery/sounds/left.wav
+OpenOffice.org641/share/gallery/sounds/nature1.wav
+OpenOffice.org641/share/gallery/sounds/nature2.wav
+OpenOffice.org641/share/gallery/sounds/ok.wav
+OpenOffice.org641/share/gallery/sounds/pluck.wav
+OpenOffice.org641/share/gallery/sounds/roll.wav
+OpenOffice.org641/share/gallery/sounds/romans.wav
+OpenOffice.org641/share/gallery/sounds/soft.wav
+OpenOffice.org641/share/gallery/sounds/space.wav
+OpenOffice.org641/share/gallery/sounds/space2.wav
+OpenOffice.org641/share/gallery/sounds/space3.wav
+OpenOffice.org641/share/gallery/sounds/sparcle.wav
+OpenOffice.org641/share/gallery/sounds/strom.wav
+OpenOffice.org641/share/gallery/sounds/theetone.wav
+OpenOffice.org641/share/gallery/sounds/top.wav
+OpenOffice.org641/share/gallery/sounds/train.wav
+OpenOffice.org641/share/gallery/sounds/untie.wav
+OpenOffice.org641/share/gallery/sounds/ups.wav
+OpenOffice.org641/share/gallery/sounds/wallewal.wav
+OpenOffice.org641/share/gallery/sg1.sdg
+OpenOffice.org641/share/gallery/sg1.sdv
+OpenOffice.org641/share/gallery/sg1.thm
+OpenOffice.org641/share/gallery/sg16.sdg
+OpenOffice.org641/share/gallery/sg16.sdv
+OpenOffice.org641/share/gallery/sg16.thm
+OpenOffice.org641/share/gallery/sg2.sdg
+OpenOffice.org641/share/gallery/sg2.sdv
+OpenOffice.org641/share/gallery/sg2.thm
+OpenOffice.org641/share/gallery/sg24.sdg
+OpenOffice.org641/share/gallery/sg24.sdv
+OpenOffice.org641/share/gallery/sg24.thm
+OpenOffice.org641/share/gallery/sg25.sdg
+OpenOffice.org641/share/gallery/sg25.sdv
+OpenOffice.org641/share/gallery/sg25.thm
+OpenOffice.org641/share/gallery/sg3.sdg
+OpenOffice.org641/share/gallery/sg3.sdv
+OpenOffice.org641/share/gallery/sg3.thm
+OpenOffice.org641/share/gallery/sg9.sdg
+OpenOffice.org641/share/gallery/sg9.sdv
+OpenOffice.org641/share/gallery/sg9.thm
+OpenOffice.org641/share/wordbook/english/soffice.dic
+OpenOffice.org641/share/wordbook/english/sun.dic
+OpenOffice.org641/share/wordbook/english/th_en_US.dat
+OpenOffice.org641/share/wordbook/english/th_en_US.idx
+OpenOffice.org641/share/wordbook/english/en_US.aff
+OpenOffice.org641/share/wordbook/english/en_US.dic
+OpenOffice.org641/share/autotext/english/standard.bau
+OpenOffice.org641/share/autotext/english/template.bau
+OpenOffice.org641/share/autotext/english/crdbus50.bau
+OpenOffice.org641/share/autotext/english/crdbus54.bau
+OpenOffice.org641/share/psprint/fontmetric/AGaramond-Bold.afm
+OpenOffice.org641/share/psprint/fontmetric/AvantGarde-Book.afm
+OpenOffice.org641/share/psprint/fontmetric/AvantGarde-BookOblique.afm
+OpenOffice.org641/share/psprint/fontmetric/AvantGarde-Demi.afm
+OpenOffice.org641/share/psprint/fontmetric/AvantGarde-DemiOblique.afm
+OpenOffice.org641/share/psprint/fontmetric/Bookman-Demi.afm
+OpenOffice.org641/share/psprint/fontmetric/Bookman-DemiItalic.afm
+OpenOffice.org641/share/psprint/fontmetric/Bookman-Light.afm
+OpenOffice.org641/share/psprint/fontmetric/Bookman-LightItalic.afm
+OpenOffice.org641/share/psprint/fontmetric/Courier-Bold.afm
+OpenOffice.org641/share/psprint/fontmetric/Courier-BoldOblique.afm
+OpenOffice.org641/share/psprint/fontmetric/Courier-Oblique.afm
+OpenOffice.org641/share/psprint/fontmetric/Courier.afm
+OpenOffice.org641/share/psprint/fontmetric/GothicBBB-Medium-83pv-RKSJ-H.afm
+OpenOffice.org641/share/psprint/fontmetric/GothicBBB-Medium.Roman.afm
+OpenOffice.org641/share/psprint/fontmetric/Helvetica.afm
+OpenOffice.org641/share/psprint/fontmetric/Helvetica-Bold.afm
+OpenOffice.org641/share/psprint/fontmetric/Helvetica-BoldOblique.afm
+OpenOffice.org641/share/psprint/fontmetric/Helvetica-Oblique.afm
+OpenOffice.org641/share/psprint/fontmetric/NewBaskerville-Bold.afm
+OpenOffice.org641/share/psprint/fontmetric/NewBaskerville-BoldItalic.afm
+OpenOffice.org641/share/psprint/fontmetric/NewBaskerville-Italic.afm
+OpenOffice.org641/share/psprint/fontmetric/NewBaskerville-Roman.afm
+OpenOffice.org641/share/psprint/fontmetric/NewCenturySchlbk-Bold.afm
+OpenOffice.org641/share/psprint/fontmetric/NewCenturySchlbk-BoldItalic.afm
+OpenOffice.org641/share/psprint/fontmetric/NewCenturySchlbk-Italic.afm
+OpenOffice.org641/share/psprint/fontmetric/NewCenturySchlbk-Roman.afm
+OpenOffice.org641/share/psprint/fontmetric/Palatino-Bold.afm
+OpenOffice.org641/share/psprint/fontmetric/Palatino-BoldItalic.afm
+OpenOffice.org641/share/psprint/fontmetric/Palatino-Italic.afm
+OpenOffice.org641/share/psprint/fontmetric/Palatino-Roman.afm
+OpenOffice.org641/share/psprint/fontmetric/Ryumin-Light-83pv-RKSJ-H.afm
+OpenOffice.org641/share/psprint/fontmetric/Ryumin-Light.Roman.afm
+OpenOffice.org641/share/psprint/fontmetric/Symbol.afm
+OpenOffice.org641/share/psprint/fontmetric/Times-Bold.afm
+OpenOffice.org641/share/psprint/fontmetric/Times-BoldItalic.afm
+OpenOffice.org641/share/psprint/fontmetric/Times-Italic.afm
+OpenOffice.org641/share/psprint/fontmetric/Times-Roman.afm
+OpenOffice.org641/share/psprint/fontmetric/Windsor.afm
+OpenOffice.org641/share/psprint/fontmetric/ZapfChancery-MediumItalic.afm
+OpenOffice.org641/share/psprint/fontmetric/ZapfDingbats.afm
+OpenOffice.org641/share/psprint/fontmetric/builtincache
+OpenOffice.org641/share/psprint/driver/ADISTILL.PS
+OpenOffice.org641/share/psprint/driver/APLW3101.PS
+OpenOffice.org641/share/psprint/driver/APLW3201.PS
+OpenOffice.org641/share/psprint/driver/APLW3601.PS
+OpenOffice.org641/share/psprint/driver/APLW6101.PS
+OpenOffice.org641/share/psprint/driver/APLW8101.PS
+OpenOffice.org641/share/psprint/driver/APLW81F1.PS
+OpenOffice.org641/share/psprint/driver/APLWBGR1.PS
+OpenOffice.org641/share/psprint/driver/APLWCOB1.PS
+OpenOffice.org641/share/psprint/driver/APLWCSB1.PS
+OpenOffice.org641/share/psprint/driver/APLWGRF1.PS
+OpenOffice.org641/share/psprint/driver/APLWGRI1.PS
+OpenOffice.org641/share/psprint/driver/APLWGRJ1.PS
+OpenOffice.org641/share/psprint/driver/APLWIIF2.PS
+OpenOffice.org641/share/psprint/driver/APLWIIG2.PS
+OpenOffice.org641/share/psprint/driver/APLWLOT1.PS
+OpenOffice.org641/share/psprint/driver/APL_IIF1.PS
+OpenOffice.org641/share/psprint/driver/APL_IIG1.PS
+OpenOffice.org641/share/psprint/driver/APL_NTR1.PS
+OpenOffice.org641/share/psprint/driver/APNT518_.PS
+OpenOffice.org641/share/psprint/driver/APNTX501.PS
+OpenOffice.org641/share/psprint/driver/APNTXJ1_.PS
+OpenOffice.org641/share/psprint/driver/APPL_230.PS
+OpenOffice.org641/share/psprint/driver/APPL_380.PS
+OpenOffice.org641/share/psprint/driver/APPL_422.PS
+OpenOffice.org641/share/psprint/driver/APTOLLD1.PS
+OpenOffice.org641/share/psprint/driver/APTOLLW1.PS
+OpenOffice.org641/share/psprint/driver/CAECOGR1.PS
+OpenOffice.org641/share/psprint/driver/DC1152_1.PS
+OpenOffice.org641/share/psprint/driver/EFAX3010.PS
+OpenOffice.org641/share/psprint/driver/EFAX4010.PS
+OpenOffice.org641/share/psprint/driver/EFAX5010.PS
+OpenOffice.org641/share/psprint/driver/EFAX7010.PS
+OpenOffice.org641/share/psprint/driver/EFMX3010.PS
+OpenOffice.org641/share/psprint/driver/EFMX5010.PS
+OpenOffice.org641/share/psprint/driver/EFMX7010.PS
+OpenOffice.org641/share/psprint/driver/EFXJK1F3.PS
+OpenOffice.org641/share/psprint/driver/EFXJK2F3.PS
+OpenOffice.org641/share/psprint/driver/EFXJK303.PS
+OpenOffice.org641/share/psprint/driver/EFXJK3F3.PS
+OpenOffice.org641/share/psprint/driver/EP_08001.PS
+OpenOffice.org641/share/psprint/driver/EP_15201.PS
+OpenOffice.org641/share/psprint/driver/EP_30001.PS
+OpenOffice.org641/share/psprint/driver/EP_50001.PS
+OpenOffice.org641/share/psprint/driver/EP_82F21.PS
+OpenOffice.org641/share/psprint/driver/EP_82F51.PS
+OpenOffice.org641/share/psprint/driver/EP_P0701.PS
+OpenOffice.org641/share/psprint/driver/EP_P1201.PS
+OpenOffice.org641/share/psprint/driver/EP_STPH1.PS
+OpenOffice.org641/share/psprint/driver/GENERIC.PS
+OpenOffice.org641/share/psprint/driver/HP1200C1.PS
+OpenOffice.org641/share/psprint/driver/HP2500C1.PS
+OpenOffice.org641/share/psprint/driver/HP3SI52_.PS
+OpenOffice.org641/share/psprint/driver/HP3SIL21.PS
+OpenOffice.org641/share/psprint/driver/HP4M3_V1.PS
+OpenOffice.org641/share/psprint/driver/HP4M6_V1.PS
+OpenOffice.org641/share/psprint/driver/HP4ML_V1.PS
+OpenOffice.org641/share/psprint/driver/HP4MP3_1.PS
+OpenOffice.org641/share/psprint/driver/HP4MP6_1.PS
+OpenOffice.org641/share/psprint/driver/HP4PLUS3.PS
+OpenOffice.org641/share/psprint/driver/HP4PLUS6.PS
+OpenOffice.org641/share/psprint/driver/HP4SI3_1.PS
+OpenOffice.org641/share/psprint/driver/HP4SI6_1.PS
+OpenOffice.org641/share/psprint/driver/HPIID52_.PS
+OpenOffice.org641/share/psprint/driver/HPIII52_.PS
+OpenOffice.org641/share/psprint/driver/HPIIP52_.PS
+OpenOffice.org641/share/psprint/driver/HPLJ3D1_.PS
+OpenOffice.org641/share/psprint/driver/HPLJ3P1_.PS
+OpenOffice.org641/share/psprint/driver/HPLJ4MV1.PS
+OpenOffice.org641/share/psprint/driver/HPLJ5M_4.PS
+OpenOffice.org641/share/psprint/driver/HPLJ5P_1.PS
+OpenOffice.org641/share/psprint/driver/HPLJ5SI1.PS
+OpenOffice.org641/share/psprint/driver/HPLJ5SIM.PS
+OpenOffice.org641/share/psprint/driver/HPLJ__31.PS
+OpenOffice.org641/share/psprint/driver/HP_3D52_.PS
+OpenOffice.org641/share/psprint/driver/HP_3P52_.PS
+OpenOffice.org641/share/psprint/driver/HP__CLJ1.PS
+OpenOffice.org641/share/psprint/driver/KD8650P1.PS
+OpenOffice.org641/share/psprint/driver/KD92P001.PS
+OpenOffice.org641/share/psprint/driver/KDH00001.PS
+OpenOffice.org641/share/psprint/driver/KDH00002.PS
+OpenOffice.org641/share/psprint/driver/L10__425.PS
+OpenOffice.org641/share/psprint/driver/L20__471.PS
+OpenOffice.org641/share/psprint/driver/L20__493.PS
+OpenOffice.org641/share/psprint/driver/L30__471.PS
+OpenOffice.org641/share/psprint/driver/L30__493.PS
+OpenOffice.org641/share/psprint/driver/L333_523.PS
+OpenOffice.org641/share/psprint/driver/L33__523.PS
+OpenOffice.org641/share/psprint/driver/L50__493.PS
+OpenOffice.org641/share/psprint/driver/L533_523.PS
+OpenOffice.org641/share/psprint/driver/L53__523.PS
+OpenOffice.org641/share/psprint/driver/LEX4039P.PS
+OpenOffice.org641/share/psprint/driver/LEX4079P.PS
+OpenOffice.org641/share/psprint/driver/LEXOPTR_.PS
+OpenOffice.org641/share/psprint/driver/LHCFLRJ5.PS
+OpenOffice.org641/share/psprint/driver/LHCOFLC5.PS
+OpenOffice.org641/share/psprint/driver/LHCOFLR5.PS
+OpenOffice.org641/share/psprint/driver/LHGUBEH3.PS
+OpenOffice.org641/share/psprint/driver/LHGUBHJ4.PS
+OpenOffice.org641/share/psprint/driver/LHHERHJ4.PS
+OpenOffice.org641/share/psprint/driver/LHHERIJ4.PS
+OpenOffice.org641/share/psprint/driver/LHHERKH3.PS
+OpenOffice.org641/share/psprint/driver/LHHERKI4.PS
+OpenOffice.org641/share/psprint/driver/LHHKPHJ7.PS
+OpenOffice.org641/share/psprint/driver/LHHKPIJ7.PS
+OpenOffice.org641/share/psprint/driver/LHHRKPH7.PS
+OpenOffice.org641/share/psprint/driver/LHHRKPI7.PS
+OpenOffice.org641/share/psprint/driver/LHQUSHJ4.PS
+OpenOffice.org641/share/psprint/driver/LHQUSIJ4.PS
+OpenOffice.org641/share/psprint/driver/LHQUSRH3.PS
+OpenOffice.org641/share/psprint/driver/LHQUSRI3.PS
+OpenOffice.org641/share/psprint/driver/LHSIGHJ4.PS
+OpenOffice.org641/share/psprint/driver/LHSIGIJ4.PS
+OpenOffice.org641/share/psprint/driver/LHSIGNH3.PS
+OpenOffice.org641/share/psprint/driver/LHSIGNI3.PS
+OpenOffice.org641/share/psprint/driver/LOPC1200.PS
+OpenOffice.org641/share/psprint/driver/LOPC40.PS
+OpenOffice.org641/share/psprint/driver/LOPC45.PS
+OpenOffice.org641/share/psprint/driver/LOPE310.PS
+OpenOffice.org641/share/psprint/driver/LOPM410.PS
+OpenOffice.org641/share/psprint/driver/LOPS1255.PS
+OpenOffice.org641/share/psprint/driver/LOPS1625.PS
+OpenOffice.org641/share/psprint/driver/LOPS1855.PS
+OpenOffice.org641/share/psprint/driver/LOPS2455.PS
+OpenOffice.org641/share/psprint/driver/LOPS3455.PS
+OpenOffice.org641/share/psprint/driver/LOPT610.PS
+OpenOffice.org641/share/psprint/driver/LOPT612.PS
+OpenOffice.org641/share/psprint/driver/LOPT614.PS
+OpenOffice.org641/share/psprint/driver/LOPT616.PS
+OpenOffice.org641/share/psprint/driver/LOPTRAC.PS
+OpenOffice.org641/share/psprint/driver/LOPTRAEP.PS
+OpenOffice.org641/share/psprint/driver/LOPTRAK.PS
+OpenOffice.org641/share/psprint/driver/LOPTRAN.PS
+OpenOffice.org641/share/psprint/driver/LOPTRAP.PS
+OpenOffice.org641/share/psprint/driver/LOPTRAS.PS
+OpenOffice.org641/share/psprint/driver/LOPTRASC.PS
+OpenOffice.org641/share/psprint/driver/LOPW810.PS
+OpenOffice.org641/share/psprint/driver/LOS1255P.PS
+OpenOffice.org641/share/psprint/driver/LOS1625P.PS
+OpenOffice.org641/share/psprint/driver/LOS1855P.PS
+OpenOffice.org641/share/psprint/driver/LOS2455P.PS
+OpenOffice.org641/share/psprint/driver/LOS3455P.PS
+OpenOffice.org641/share/psprint/driver/LWNT_518.PS
+OpenOffice.org641/share/psprint/driver/SGENPRT.PS
+OpenOffice.org641/share/psprint/driver/SNSPREC1.PS
+OpenOffice.org641/share/psprint/driver/TK300PJ1.PS
+OpenOffice.org641/share/psprint/driver/TK300XJ1.PS
+OpenOffice.org641/share/psprint/driver/TK350171.PS
+OpenOffice.org641/share/psprint/driver/TK350172.PS
+OpenOffice.org641/share/psprint/driver/TK350691.PS
+OpenOffice.org641/share/psprint/driver/TK350692.PS
+OpenOffice.org641/share/psprint/driver/TK350PJ2.PS
+OpenOffice.org641/share/psprint/driver/TK360J21.PS
+OpenOffice.org641/share/psprint/driver/TK360J51.PS
+OpenOffice.org641/share/psprint/driver/TK360J71.PS
+OpenOffice.org641/share/psprint/driver/TK450PJ1.PS
+OpenOffice.org641/share/psprint/driver/TK550171.PS
+OpenOffice.org641/share/psprint/driver/TK550391.PS
+OpenOffice.org641/share/psprint/driver/TK550PJ1.PS
+OpenOffice.org641/share/psprint/driver/TKP350J2.PS
+OpenOffice.org641/share/psprint/driver/TKP360P1.PS
+OpenOffice.org641/share/psprint/driver/TKP380J1.PS
+OpenOffice.org641/share/psprint/driver/TKP380P1.PS
+OpenOffice.org641/share/psprint/driver/TKP450J1.PS
+OpenOffice.org641/share/psprint/driver/TKP450P1.PS
+OpenOffice.org641/share/psprint/driver/TKP550J1.PS
+OpenOffice.org641/share/psprint/driver/TKP600J1.PS
+OpenOffice.org641/share/psprint/driver/TKPH3801.PS
+OpenOffice.org641/share/psprint/driver/TKPH4501.PS
+OpenOffice.org641/share/psprint/driver/TKPH6001.PS
+OpenOffice.org641/share/psprint/driver/XRD61354.PS
+OpenOffice.org641/share/psprint/driver/XRD61801.PS
+OpenOffice.org641/share/psprint/driver/XRN17000.PS
+OpenOffice.org641/share/psprint/driver/XRN24320.PS
+OpenOffice.org641/share/psprint/driver/XR_DC230.PS
+OpenOffice.org641/share/psprint/psprint.conf
+OpenOffice.org641/share/autocorr/acor1033.dat
+OpenOffice.org641/user/autotext/english/mytexts.bau
+OpenOffice.org641/user/database/biblio/biblio.dbf
+OpenOffice.org641/user/gallery/sg100.sdv
+OpenOffice.org641/user/gallery/sg100.thm
+OpenOffice.org641/user/gallery/sg30.sdv
+OpenOffice.org641/user/gallery/sg30.thm
+OpenOffice.org641/user/config/arrowhd.soe
+OpenOffice.org641/user/config/classic.sog
+OpenOffice.org641/user/config/hatching.soh
+OpenOffice.org641/user/config/modern.sog
+OpenOffice.org641/user/config/palette.soc
+OpenOffice.org641/user/config/styles.sod
+OpenOffice.org641/user/config/autotbl.fmt
+OpenOffice.org641/user/config/dbtitle.rdb
+OpenOffice.org641/user/config/cmyk.soc
+OpenOffice.org641/user/config/gallery.soc
+OpenOffice.org641/user/config/html.soc
+OpenOffice.org641/user/config/standard.sob
+OpenOffice.org641/user/config/standard.soc
+OpenOffice.org641/user/config/standard.sod
+OpenOffice.org641/user/config/standard.soe
+OpenOffice.org641/user/config/standard.sog
+OpenOffice.org641/user/config/standard.soh
+OpenOffice.org641/user/config/sun-color.soc
+OpenOffice.org641/user/config/web.soc
+OpenOffice.org641/user/basic/dialogs.xli
+OpenOffice.org641/user/basic/script.xli
+OpenOffice.org641/help/en/sbasic.cfg
+OpenOffice.org641/help/en/sbasic.db
+OpenOffice.org641/help/en/sbasic.ht
+OpenOffice.org641/help/en/sbasic.idx/CONTEXTS
+OpenOffice.org641/help/en/sbasic.idx/DICTIONARY
+OpenOffice.org641/help/en/sbasic.idx/DOCS
+OpenOffice.org641/help/en/sbasic.idx/DOCS.TAB
+OpenOffice.org641/help/en/sbasic.idx/EDGE
+OpenOffice.org641/help/en/sbasic.idx/LINKNAMES
+OpenOffice.org641/help/en/sbasic.idx/OFFSETS
+OpenOffice.org641/help/en/sbasic.idx/POSITIONS
+OpenOffice.org641/help/en/sbasic.idx/SCHEMA
+OpenOffice.org641/help/en/sbasic.jar
+OpenOffice.org641/help/en/sbasic.key
+OpenOffice.org641/help/en/common.jar
+OpenOffice.org641/help/en/custom.css
+OpenOffice.org641/help/en/err.html
+OpenOffice.org641/help/en/picture.db
+OpenOffice.org641/help/en/picture.jar
+OpenOffice.org641/help/en/treeview.xml
+OpenOffice.org641/help/en/schart.jar
+OpenOffice.org641/help/en/swriter.cfg
+OpenOffice.org641/help/en/swriter.db
+OpenOffice.org641/help/en/swriter.ht
+OpenOffice.org641/help/en/swriter.idx/CONTEXTS
+OpenOffice.org641/help/en/swriter.idx/DICTIONARY
+OpenOffice.org641/help/en/swriter.idx/DOCS
+OpenOffice.org641/help/en/swriter.idx/DOCS.TAB
+OpenOffice.org641/help/en/swriter.idx/EDGE
+OpenOffice.org641/help/en/swriter.idx/LINKNAMES
+OpenOffice.org641/help/en/swriter.idx/OFFSETS
+OpenOffice.org641/help/en/swriter.idx/POSITIONS
+OpenOffice.org641/help/en/swriter.idx/SCHEMA
+OpenOffice.org641/help/en/swriter.jar
+OpenOffice.org641/help/en/swriter.key
+OpenOffice.org641/help/en/scalc.cfg
+OpenOffice.org641/help/en/scalc.db
+OpenOffice.org641/help/en/scalc.ht
+OpenOffice.org641/help/en/scalc.idx/CONTEXTS
+OpenOffice.org641/help/en/scalc.idx/DICTIONARY
+OpenOffice.org641/help/en/scalc.idx/DOCS
+OpenOffice.org641/help/en/scalc.idx/DOCS.TAB
+OpenOffice.org641/help/en/scalc.idx/EDGE
+OpenOffice.org641/help/en/scalc.idx/LINKNAMES
+OpenOffice.org641/help/en/scalc.idx/OFFSETS
+OpenOffice.org641/help/en/scalc.idx/POSITIONS
+OpenOffice.org641/help/en/scalc.idx/SCHEMA
+OpenOffice.org641/help/en/scalc.jar
+OpenOffice.org641/help/en/scalc.key
+OpenOffice.org641/help/en/simpress.cfg
+OpenOffice.org641/help/en/simpress.db
+OpenOffice.org641/help/en/simpress.ht
+OpenOffice.org641/help/en/simpress.idx/CONTEXTS
+OpenOffice.org641/help/en/simpress.idx/DICTIONARY
+OpenOffice.org641/help/en/simpress.idx/DOCS
+OpenOffice.org641/help/en/simpress.idx/DOCS.TAB
+OpenOffice.org641/help/en/simpress.idx/EDGE
+OpenOffice.org641/help/en/simpress.idx/LINKNAMES
+OpenOffice.org641/help/en/simpress.idx/OFFSETS
+OpenOffice.org641/help/en/simpress.idx/POSITIONS
+OpenOffice.org641/help/en/simpress.idx/SCHEMA
+OpenOffice.org641/help/en/simpress.jar
+OpenOffice.org641/help/en/simpress.key
+OpenOffice.org641/help/en/sdraw.cfg
+OpenOffice.org641/help/en/sdraw.db
+OpenOffice.org641/help/en/sdraw.ht
+OpenOffice.org641/help/en/sdraw.idx/CONTEXTS
+OpenOffice.org641/help/en/sdraw.idx/DICTIONARY
+OpenOffice.org641/help/en/sdraw.idx/DOCS
+OpenOffice.org641/help/en/sdraw.idx/DOCS.TAB
+OpenOffice.org641/help/en/sdraw.idx/EDGE
+OpenOffice.org641/help/en/sdraw.idx/LINKNAMES
+OpenOffice.org641/help/en/sdraw.idx/OFFSETS
+OpenOffice.org641/help/en/sdraw.idx/POSITIONS
+OpenOffice.org641/help/en/sdraw.idx/SCHEMA
+OpenOffice.org641/help/en/sdraw.jar
+OpenOffice.org641/help/en/sdraw.key
+OpenOffice.org641/help/en/smath.cfg
+OpenOffice.org641/help/en/smath.db
+OpenOffice.org641/help/en/smath.ht
+OpenOffice.org641/help/en/smath.idx/CONTEXTS
+OpenOffice.org641/help/en/smath.idx/DICTIONARY
+OpenOffice.org641/help/en/smath.idx/DOCS
+OpenOffice.org641/help/en/smath.idx/DOCS.TAB
+OpenOffice.org641/help/en/smath.idx/EDGE
+OpenOffice.org641/help/en/smath.idx/LINKNAMES
+OpenOffice.org641/help/en/smath.idx/OFFSETS
+OpenOffice.org641/help/en/smath.idx/POSITIONS
+OpenOffice.org641/help/en/smath.idx/SCHEMA
+OpenOffice.org641/help/en/smath.jar
+OpenOffice.org641/help/en/smath.key
+OpenOffice.org641/help/main_transform.xsl
+OpenOffice.org641/help/custom.css
+@comment DIRS
+@dirrm OpenOffice.org641/user/wordbook
+@dirrm OpenOffice.org641/user/template
+@dirrm OpenOffice.org641/user/temp
+@dirrm OpenOffice.org641/user/store
+@dirrm OpenOffice.org641/user/psprint/fontmetric
+@dirrm OpenOffice.org641/user/psprint/driver
+@dirrm OpenOffice.org641/user/psprint
+@dirrm OpenOffice.org641/user/plugin
+@dirrm OpenOffice.org641/user/gallery
+@dirrm OpenOffice.org641/user/database/biblio
+@dirrm OpenOffice.org641/user/database
+@dirrm OpenOffice.org641/user/config/registry/instance/org/openoffice/ucb
+@dirrm OpenOffice.org641/user/config/registry/instance/org/openoffice/Office
+@dirrm OpenOffice.org641/user/config/registry/instance/org/openoffice
+@dirrm OpenOffice.org641/user/config/registry/instance/org
+@dirrm OpenOffice.org641/user/config/registry/instance
+@dirrm OpenOffice.org641/user/config/registry
+@dirrm OpenOffice.org641/user/config
+@dirrm OpenOffice.org641/user/basic
+@dirrm OpenOffice.org641/user/backup
+@dirrm OpenOffice.org641/user/autotext/english
+@dirrm OpenOffice.org641/user/autotext
+@dirrm OpenOffice.org641/user/autocorr
+@dirrm OpenOffice.org641/user
+@dirrm OpenOffice.org641/share/wordbook/english
+@dirrm OpenOffice.org641/share/wordbook
+@dirrm OpenOffice.org641/share/template/english/wizard/web
+@dirrm OpenOffice.org641/share/template/english/wizard/styles
+@dirrm OpenOffice.org641/share/template/english/wizard/bitmap
+@dirrm OpenOffice.org641/share/template/english/wizard
+@dirrm OpenOffice.org641/share/template/english/internal
+@dirrm OpenOffice.org641/share/template/english
+@dirrm OpenOffice.org641/share/template
+@dirrm OpenOffice.org641/share/psprint/fontmetric
+@dirrm OpenOffice.org641/share/psprint/driver
+@dirrm OpenOffice.org641/share/psprint
+@dirrm OpenOffice.org641/share/gallery/www-back
+@dirrm OpenOffice.org641/share/gallery/sounds
+@dirrm OpenOffice.org641/share/gallery/rulers
+@dirrm OpenOffice.org641/share/gallery/htmlexpo
+@dirrm OpenOffice.org641/share/gallery/bullets
+@dirrm OpenOffice.org641/share/gallery
+@dirrm OpenOffice.org641/share/fonts/truetype
+@dirrm OpenOffice.org641/share/fonts
+@dirrm OpenOffice.org641/share/dtd/officedocument/1_0
+@dirrm OpenOffice.org641/share/dtd/officedocument
+@dirrm OpenOffice.org641/share/dtd/math/1_01
+@dirrm OpenOffice.org641/share/dtd/math
+@dirrm OpenOffice.org641/share/dtd
+@dirrm OpenOffice.org641/share/config/webcast
+@dirrm OpenOffice.org641/share/config/symbol
+@dirrm OpenOffice.org641/share/config/registry/template/org/openoffice/ucb
+@dirrm OpenOffice.org641/share/config/registry/template/org/openoffice/Office
+@dirrm OpenOffice.org641/share/config/registry/template/org/openoffice
+@dirrm OpenOffice.org641/share/config/registry/template/org
+@dirrm OpenOffice.org641/share/config/registry/template
+@dirrm OpenOffice.org641/share/config/registry/instance/org/openoffice/ucb
+@dirrm OpenOffice.org641/share/config/registry/instance/org/openoffice/Office
+@dirrm OpenOffice.org641/share/config/registry/instance/org/openoffice
+@dirrm OpenOffice.org641/share/config/registry/instance/org
+@dirrm OpenOffice.org641/share/config/registry/instance
+@dirrm OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/ucb
+@dirrm OpenOffice.org641/share/config/registry/cache/instance/org/openoffice/Office
+@dirrm OpenOffice.org641/share/config/registry/cache/instance/org/openoffice
+@dirrm OpenOffice.org641/share/config/registry/cache/instance/org
+@dirrm OpenOffice.org641/share/config/registry/cache/instance
+@dirrm OpenOffice.org641/share/config/registry/cache
+@dirrm OpenOffice.org641/share/config/registry
+@dirrm OpenOffice.org641/share/config
+@dirrm OpenOffice.org641/share/basic/WebWizard
+@dirrm OpenOffice.org641/share/basic/Tools
+@dirrm OpenOffice.org641/share/basic/Template
+@dirrm OpenOffice.org641/share/basic/Schedule
+@dirrm OpenOffice.org641/share/basic/ImportWizard
+@dirrm OpenOffice.org641/share/basic/Gimmicks
+@dirrm OpenOffice.org641/share/basic/FormWizard
+@dirrm OpenOffice.org641/share/basic/Euro
+@dirrm OpenOffice.org641/share/basic
+@dirrm OpenOffice.org641/share/autotext/english
+@dirrm OpenOffice.org641/share/autotext
+@dirrm OpenOffice.org641/share/autocorr
+@dirrm OpenOffice.org641/share
+@dirrm OpenOffice.org641/program/resource
+@dirrm OpenOffice.org641/program/filter
+@dirrm OpenOffice.org641/program/components
+@dirrm OpenOffice.org641/program/classes
+@dirrm OpenOffice.org641/program/addin/source
+@dirrm OpenOffice.org641/program/addin
+@dirrm OpenOffice.org641/program
+@dirrm OpenOffice.org641/help/en/swriter.idx
+@dirrm OpenOffice.org641/help/en/smath.idx
+@dirrm OpenOffice.org641/help/en/simpress.idx
+@dirrm OpenOffice.org641/help/en/sdraw.idx
+@dirrm OpenOffice.org641/help/en/scalc.idx
+@dirrm OpenOffice.org641/help/en/sbasic.idx
+@dirrm OpenOffice.org641/help/en
+@dirrm OpenOffice.org641/help
+@dirrm OpenOffice.org641
diff --git a/misc/openoffice/distinfo b/misc/openoffice/distinfo
new file mode 100644
index 00000000000..2b5dd4c29a4
--- /dev/null
+++ b/misc/openoffice/distinfo
@@ -0,0 +1,90 @@
+$NetBSD: distinfo,v 1.1.1.1 2002/02/13 18:09:21 mrauch Exp $
+
+SHA1 (oo_641_src.tar.bz2) = ad4c7000cf317d7e9d694a6d519336bfaf1f8edd
+Size (oo_641_src.tar.bz2) = 109167758 bytes
+SHA1 (gpc231.tar.Z) = dd70a665179a9eac23624a4fe9f22104aad9bb1d
+Size (gpc231.tar.Z) = 27917 bytes
+SHA1 (patch-aa) = d7e3045188a9e8a594ebef1024dee113c7320885
+SHA1 (patch-ab) = b18f016cae5d89d79f5c8de1989cc72e0e9da1af
+SHA1 (patch-ac) = 3bcea1e83189fe6c1ff6077c0a33b125a43feaee
+SHA1 (patch-ad) = 5e060e7084afa45e57c365387322aaba185d6304
+SHA1 (patch-ae) = be6f80c94e2ec547b3c402d76ce9a367c8b0b1a1
+SHA1 (patch-af) = 6c592bf501fe6fbcca465dbc6aa228e436aefffa
+SHA1 (patch-ag) = db82266eace27340e20bd770355a3d0a9043500d
+SHA1 (patch-ah) = 36a907a984889de36b56b56b20c939375cd21f13
+SHA1 (patch-ai) = ef8eb7497807e2931bd4f9e40e03d797528308f5
+SHA1 (patch-aj) = d7456544f9ad0cbe068d80997f129eb5e91ae516
+SHA1 (patch-ak) = 0da40651cbc97ceab2fc03fdf46f540a774121e8
+SHA1 (patch-al) = 04c3392f960f9f4eae6ee54965b1a1a49bd0b143
+SHA1 (patch-am) = 8552a2910f775ac705d8f0ce882cc4e851e600d5
+SHA1 (patch-an) = cc00c1044da47513862dec15744dad6652afc726
+SHA1 (patch-ao) = cb3a5f99ceab053cc481a9985ba30d4222f5f662
+SHA1 (patch-ap) = 77370c66cc24901d2fd9f2b18f7e10e1de147095
+SHA1 (patch-aq) = d8630fbf5e14c8850168667cbeb19f4d01a24f03
+SHA1 (patch-ar) = a817e053171f526e43d205c7fce04f2490e40208
+SHA1 (patch-as) = 1ef3e48e3e66d7292181282aab5d00caf602a88a
+SHA1 (patch-at) = 052a1fbf3d498a7523f2dfee5c32dbeca437ba2e
+SHA1 (patch-au) = fc8cab0f2a32f624e0f4017eef1cf4cdfe58a092
+SHA1 (patch-av) = ab3c60122da22b932a2c25740a05a77664690475
+SHA1 (patch-aw) = af6ecdff9e80afbf535ff5d3acba2726843b387d
+SHA1 (patch-ax) = aebe27b34ea3b56ec2456e58079befe282ca2881
+SHA1 (patch-ay) = 26ebaac7d54f0e1e884a8d13242455f7a91ccb9c
+SHA1 (patch-az) = b7115ca4a98af6d83decf5e83ca848ab94ecb33a
+SHA1 (patch-ba) = f8e9773d4ee2a768fcbd980b414fa860976be78e
+SHA1 (patch-bb) = 4970f76435aefe6c9a2472af3c2fe2b8e9958102
+SHA1 (patch-bc) = 023d154b8e83c0df344c632e1598236d90edc484
+SHA1 (patch-bd) = 5e64d744b2bdb60ac97daaa82ea8387fc3485ddb
+SHA1 (patch-be) = b6d3565264f64a40eebf320aa651e21081f1f124
+SHA1 (patch-bf) = 4432fa3b141a8bd3856f74d49acccb8b1a902b41
+SHA1 (patch-bg) = 6aec76367957f6eee6b9029aaeb24d8da3487927
+SHA1 (patch-bh) = bd9af9ed2a577872276abeaa283ca295224644b4
+SHA1 (patch-bi) = 892c05069c38ff64b6ad13d2436c31040084938c
+SHA1 (patch-bj) = d5a73214ee624bbc35a34496071fd275d99bed5a
+SHA1 (patch-bk) = 45a98a80f6bcd2cc7d4a223d41a5897c62592aa2
+SHA1 (patch-bl) = a4a85ecb8dff1da882109f2506de5623c0630e58
+SHA1 (patch-bm) = 744d57b901b32b8b081e3bdf02f699c91988cb69
+SHA1 (patch-bn) = bd44224c4a447d8693b267d3d7ab034348ce4d9a
+SHA1 (patch-bo) = 6434d037ca453bf2fcfecc0871556bcaf00fba6c
+SHA1 (patch-bp) = ab6e94343577f2698cb4d6b9fc008d5f75940726
+SHA1 (patch-bq) = ca47b89bafad175005f896ca53fcf8f5883b64e5
+SHA1 (patch-br) = ea3d3b48f4a0798469802b5fc3533df5c481e490
+SHA1 (patch-bs) = be0b73c505823f0a08b999eb5ad37ceaec034edb
+SHA1 (patch-bt) = 8f0f24689460f50bbe77647eee2ab4093c373283
+SHA1 (patch-bu) = 82e3a6c4d188fbace9ec6173c3f3a7da1dd78045
+SHA1 (patch-bv) = 1c3d6f413a750816203c285ab1d2217fce5101be
+SHA1 (patch-bw) = a4dd43d112a44be46934b2dc9f760c660b956be2
+SHA1 (patch-bx) = 52de4d2caa3dce8642e22154f9765e7aafc0f313
+SHA1 (patch-by) = 6ceb37bfe0e8077bf8a4df834de36eb19a0826f2
+SHA1 (patch-bz) = 8670c4da21b0f4a0ec4bebce31e28bf831adb8dd
+SHA1 (patch-ca) = 0c515b79dd92a5bf22c79f32a124defd80cd544d
+SHA1 (patch-cb) = c4ce25d5a9b0173a456c42493b28e4b15ccc0244
+SHA1 (patch-cc) = ef072ff7dacfe6c5d9b768cba444d5014a692ee5
+SHA1 (patch-cd) = 28d41ef3439819612a8a1193991b0e79d9d55955
+SHA1 (patch-ce) = f03a7e31d8a8943c96d50d33d4a98c0de8aebab1
+SHA1 (patch-cf) = d938af1690244ad9cdaf9243b49e2171e7b9ffe4
+SHA1 (patch-cg) = 4eea233fe4fe502d9abb52b394fc839b52d60df0
+SHA1 (patch-ch) = e10138a5bd71ee24bc7b4a801124185ae8661c2a
+SHA1 (patch-ci) = af3a8d17b0225f75aa41474ef47cd4ae8486ce33
+SHA1 (patch-cj) = 304d90d55abb4dc2fb4511f9b34198ea42ffc786
+SHA1 (patch-ck) = 87e951f0cccfef230704f988af6b8dc90e362ce2
+SHA1 (patch-cl) = a4279eb3bd391a98c59bffb828eef99fb8daa829
+SHA1 (patch-cm) = 05e61aa2e335ef088a8ae7789410b907936084fb
+SHA1 (patch-cn) = 81a06eb21de610b64a78542400b4eaedc2fa3135
+SHA1 (patch-co) = fa0589fcaeb4cef32e5c50ecbbf558cfd15e0089
+SHA1 (patch-cp) = 7d424757a0c7627aafa19484f5a5ec43451689ef
+SHA1 (patch-cq) = 8f2ebcf1336b87b14e8282e24f775ed126043adb
+SHA1 (patch-cr) = c481dc3676263567a39aea3cd5bc8abcf966ceef
+SHA1 (patch-cs) = 0a856269489f66e3805c057b7459f6d4caed5d4d
+SHA1 (patch-ct) = 338e1672c771fb2892420ba3985eb80ae69b111b
+SHA1 (patch-cu) = 169256234ed055fbb4a794318b64a55844a00ec2
+SHA1 (patch-cv) = e5875ffc0eae8af941a0eff7a09ef50a86418ae5
+SHA1 (patch-cw) = 830b825613ce3056d16418fe550c6d85431b1447
+SHA1 (patch-cx) = fe9eade2bc59d2909d0d9670aa5e574cbf3d727b
+SHA1 (patch-cy) = afd3cb146a6eb46d2047d6f15e119b5e79129a07
+SHA1 (patch-cz) = dd6546de0788eb63bf22f6aae66de77ef36e24e5
+SHA1 (patch-da) = be034320d910f04f2eb9d2c7c35236e24decf7a4
+SHA1 (patch-db) = 6cd1f6923aa9e9c93a0d5dfcb74229a007905b7d
+SHA1 (patch-dc) = 0dfbab80794ce167c2a946af0c48fd3b91a12523
+SHA1 (patch-dd) = 7c798e377cb7fc07bb120f4c71908336280671a0
+SHA1 (patch-de) = 6b3cfb2e0e8d3363d19dea863bb22e06b2a2ba47
+SHA1 (patch-df) = 8da1d41c6049f3229e3fadf5724ca2c009ea447a
diff --git a/misc/openoffice/files/NETBSDGCCIinc.zip b/misc/openoffice/files/NETBSDGCCIinc.zip
new file mode 100644
index 00000000000..9c6eb09b227
--- /dev/null
+++ b/misc/openoffice/files/NETBSDGCCIinc.zip
Binary files differ
diff --git a/misc/openoffice/files/NETBSDGCCIlib.zip b/misc/openoffice/files/NETBSDGCCIlib.zip
new file mode 100644
index 00000000000..37c72303d15
--- /dev/null
+++ b/misc/openoffice/files/NETBSDGCCIlib.zip
Binary files differ
diff --git a/misc/openoffice/files/NETBSDGCCIruntime.zip b/misc/openoffice/files/NETBSDGCCIruntime.zip
new file mode 100644
index 00000000000..d830537428c
--- /dev/null
+++ b/misc/openoffice/files/NETBSDGCCIruntime.zip
Binary files differ
diff --git a/misc/openoffice/files/oo_setup.resp b/misc/openoffice/files/oo_setup.resp
new file mode 100644
index 00000000000..115aef1c845
--- /dev/null
+++ b/misc/openoffice/files/oo_setup.resp
@@ -0,0 +1,8 @@
+[Environment]
+InstallationMode = INSTALL_NETWORK
+InstallationType = STANDARD
+DestinationPath = @@PREFIX@@/OpenOffice.org641
+
+[Java]
+JavaSupport = preinstalled_or_none
+
diff --git a/misc/openoffice/files/soffice b/misc/openoffice/files/soffice
new file mode 100755
index 00000000000..4774e54dc99
--- /dev/null
+++ b/misc/openoffice/files/soffice
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# $NetBSD: soffice,v 1.1.1.1 2002/02/13 18:10:10 mrauch Exp $
+#
+SOINST=@@PREFIX@@/OpenOffice.org641
+[ "$SOFFICE" = "" ] && SOFFICE=$HOME/OpenOffice.org641
+
+if [ ! -d "$SOFFICE" ]; then
+ echo ""
+ echo "-----------------------------------------------------------------"
+ echo " OpenOffice has not yet been set up for `whoami`."
+ echo " Starting setup ... "
+ echo ""
+ echo " (If OpenOffice has already been set up for `whoami` or you"
+ echo " want to install it someplace other than $SOFFICE"
+ echo " please abort the installation procedure now, set the \$SOFFICE "
+ echo " environment variable accordingly and rerun $0.)"
+ echo "-----------------------------------------------------------------"
+ echo ""
+
+# add an eventually existing java directory to $PATH to allow OO to
+# automatically find it
+ export PATH=$PATH:@@PREFIX@@/java/bin
+
+ cd $SOINST
+ ./setup
+
+ echo ""
+ echo "Done. Starting OpenOffice ..."
+ echo ""
+fi
+
+# We've got a large number of shared libraries and other single files which
+# have to be open for normal operation
+ulimit -n 1024
+
+exec ${SOFFICE}/soffice $*
diff --git a/misc/openoffice/patches/patch-aa b/misc/openoffice/patches/patch-aa
new file mode 100644
index 00000000000..e9f6dbaa15d
--- /dev/null
+++ b/misc/openoffice/patches/patch-aa
@@ -0,0 +1,44 @@
+$NetBSD: patch-aa,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../berkeleydb/db-3.2.9.patch.orig Mon Jun 11 14:09:22 2001
++++ ../berkeleydb/db-3.2.9.patch
+@@ -43,3 +43,39 @@
+
+ CC= @MAKEFILE_CC@
+ CCLINK= @MAKEFILE_CCLINK@
++--- misc/build/db-3.2.9/dist/configure.orig Sat Nov 24 14:56:48 2001
+++++ misc/build/db-3.2.9/dist/configure Sat Nov 24 14:57:32 2001
++@@ -995,6 +995,7 @@
++ CPPFLAGS="-D_REENTRANT $CPPFLAGS";;
++ mpeix*) CPPFLAGS="-D_POSIX_SOURCE -D_SOCKET_SOURCE $CPPFLAGS"
++ LIBS="-lsocket -lsvipc $LIBS";;
+++netbsd*) optimize_def="-O2";;
++ osf*) CPPFLAGS="-D_REENTRANT $CPPFLAGS";;
++ *qnx) cat >> confdefs.h <<\EOF
++ #define HAVE_QNX 1
++@@ -1795,6 +1796,7 @@
++ case "$host_os" in
++ solaris*) JINCSUBDIRS="solaris";;
++ linux*) JINCSUBDIRS="linux genunix";;
+++ netbsd*) JINCSUBDIRS="netbsd solaris linux genunix";;
++ *) JINCSUBDIRS="genunix";;
++ esac
++
++--- misc/build/db-3.2.9/dist/ltconfig.orig Sat Nov 24 14:56:10 2001
+++++ misc/build/db-3.2.9/dist/ltconfig Sat Nov 24 14:56:34 2001
++@@ -1194,11 +1194,12 @@
++
++ netbsd*)
++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
++- archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
++- archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++- else
++ archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib'
++ # can we support soname and/or expsyms with a.out? -oliva
+++ else
+++ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+++ need_version=no
++ fi
++ ;;
++
diff --git a/misc/openoffice/patches/patch-ab b/misc/openoffice/patches/patch-ab
new file mode 100644
index 00000000000..32a20b2932a
--- /dev/null
+++ b/misc/openoffice/patches/patch-ab
@@ -0,0 +1,13 @@
+$NetBSD: patch-ab,v 1.1.1.1 2002/02/13 18:09:24 mrauch Exp $
+
+--- ../bridges/prj/build.lst.orig Mon Nov 12 22:45:25 2001
++++ ../bridges/prj/build.lst
+@@ -13,5 +13,8 @@
+ br bridges\source\cpp_uno\cc50_solaris_sparc nmake - u br_cc50sols br_unotypes NULL
+ br bridges\source\cpp_uno\cc50_solaris_intel nmake - u br_cc50soli br_unotypes NULL
+ br bridges\source\cpp_uno\gcc2_solaris_sparc nmake - u br_gccsols br_unotypes NULL
++br bridges\source\cpp_uno\gcc2_netbsd_intel nmake - u br_gccni br_unotypes NULL
++br bridges\source\cpp_uno\gcc2_netbsd_sparc nmake - u br_gccns br_unotypes NULL
++br bridges\source\cpp_uno\gcc2_netbsd_powerpc nmake - u br_gccnp br_unotypes NULL
+ br bridges\source\prot_uno nmake - all br_pruno br_unotypes NULL
+ br bridges\source\java_uno nmake - all br_java_uno br_rcon NULL
diff --git a/misc/openoffice/patches/patch-ac b/misc/openoffice/patches/patch-ac
new file mode 100644
index 00000000000..05715520020
--- /dev/null
+++ b/misc/openoffice/patches/patch-ac
@@ -0,0 +1,558 @@
+$NetBSD: patch-ac,v 1.1.1.1 2002/02/13 18:09:24 mrauch Exp $
+
+--- ../bridges/source/cpp_uno/gcc2_netbsd_intel/cpp2uno.cxx.orig Sun Jan 6 11:24:10 2002
++++ ../bridges/source/cpp_uno/gcc2_netbsd_intel/cpp2uno.cxx
+@@ -0,0 +1,553 @@
++#define LEAK_STATIC_DATA
++// #define TRACE(x) OSL_TRACE(x)
++#define TRACE(x)
++
++#include <malloc.h>
++#if STLPORT_VERSION<321
++#include <list.h>
++#include <map.h>
++#else
++#include <list>
++#include <map>
++#endif
++#include <typeinfo>
++#ifndef _RTL_ALLOC_H_
++#include <rtl/alloc.h>
++#endif
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
++#endif
++
++#ifndef _TYPELIB_TYPEDESCRIPTION_HXX_
++#include <typelib/typedescription.hxx>
++#endif
++#ifndef _UNO_DATA_H_
++#include <uno/data.h>
++#endif
++#ifndef _BRIDGES_CPP_UNO_BRIDGE_HXX_
++#include <bridges/cpp_uno/bridge.hxx>
++#endif
++#ifndef _BRIDGES_CPP_UNO_TYPE_MISC_HXX_
++#include <bridges/cpp_uno/type_misc.hxx>
++#endif
++
++#include "gcc2_netbsd_intel.hxx"
++
++using namespace com::sun::star::uno;
++using namespace std;
++using namespace osl;
++using namespace rtl;
++
++namespace CPPU_CURRENT_NAMESPACE
++{
++
++//==================================================================================================
++rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;
++
++//==================================================================================================
++static typelib_TypeClass cpp2uno_call(
++ cppu_cppInterfaceProxy * pThis,
++ const typelib_TypeDescription * pMemberTypeDescr,
++ typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
++ sal_Int32 nParams, typelib_MethodParameter * pParams,
++ void ** pCallStack,
++ sal_Int64 * pRegisterReturn /* space for register return */ )
++{
++ // pCallStack: ret, [return ptr], this, params
++ char * pCppStack = (char *)(pCallStack +1);
++
++ // return
++ typelib_TypeDescription * pReturnTypeDescr = 0;
++ if (pReturnTypeRef)
++ TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
++
++ void * pUnoReturn = 0;
++ void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
++
++ if (pReturnTypeDescr)
++ {
++ if (cppu_isSimpleType( pReturnTypeDescr ))
++ {
++ pUnoReturn = pRegisterReturn; // direct way for simple types
++ }
++ else // complex return via ptr (pCppReturn)
++ {
++ pCppReturn = *(void **)pCppStack;
++ pCppStack += sizeof(void *);
++
++ pUnoReturn = (cppu_relatesToInterface( pReturnTypeDescr )
++ ? alloca( pReturnTypeDescr->nSize )
++ : pCppReturn); // direct way
++ }
++ }
++ // pop this
++ pCppStack += sizeof( void* );
++
++ // stack space
++ OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
++ // parameters
++ void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
++ void ** pCppArgs = pUnoArgs + nParams;
++ // indizes of values this have to be converted (interface conversion cpp<=>uno)
++ sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
++ // type descriptions for reconversions
++ typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
++
++ sal_Int32 nTempIndizes = 0;
++
++ for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
++ {
++ const typelib_MethodParameter & rParam = pParams[nPos];
++ typelib_TypeDescription * pParamTypeDescr = 0;
++ TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
++
++ if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr )) // value
++ {
++ pCppArgs[nPos] = pCppStack;
++ pUnoArgs[nPos] = pCppStack;
++ switch (pParamTypeDescr->eTypeClass)
++ {
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ case typelib_TypeClass_DOUBLE:
++ pCppStack += sizeof(sal_Int32); // extra long
++ }
++ // no longer needed
++ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++ }
++ else // ptr to complex value | ref
++ {
++ pCppArgs[nPos] = *(void **)pCppStack;
++
++ if (! rParam.bIn) // is pure out
++ {
++ // uno out is unconstructed mem!
++ pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
++ pTempIndizes[nTempIndizes] = nPos;
++ // will be released at reconversion
++ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
++ }
++ // is in/inout
++ else if (cppu_relatesToInterface( pParamTypeDescr ))
++ {
++ uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++ *(void **)pCppStack, pParamTypeDescr,
++ &pThis->pBridge->aCpp2Uno );
++ pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
++ // will be released at reconversion
++ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
++ }
++ else // direct way
++ {
++ pUnoArgs[nPos] = *(void **)pCppStack;
++ // no longer needed
++ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++ }
++ }
++ pCppStack += sizeof(sal_Int32); // standard parameter length
++ }
++
++ // ExceptionHolder
++ uno_Any aUnoExc; // Any will be constructed by callee
++ uno_Any * pUnoExc = &aUnoExc;
++
++ // invoke uno dispatch call
++ (*pThis->pUnoI->pDispatcher)( pThis->pUnoI, pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
++
++ // in case an exception occured...
++ if (pUnoExc)
++ {
++ // destruct temporary in/inout params
++ for ( ; nTempIndizes--; )
++ {
++ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
++
++ if (pParams[nIndex].bIn) // is in/inout => was constructed
++ uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
++ TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
++ }
++ if (pReturnTypeDescr)
++ TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
++
++ gcc291_netbsd_intel_raiseException( &aUnoExc, &pThis->pBridge->aUno2Cpp ); // has to destruct the any
++ // is here for dummy
++ return typelib_TypeClass_VOID;
++ }
++ else // else no exception occured...
++ {
++ // temporary params
++ for ( ; nTempIndizes--; )
++ {
++ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
++ typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
++
++ if (pParams[nIndex].bOut) // inout/out
++ {
++ // convert and assign
++ uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
++ uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
++ &pThis->pBridge->aUno2Cpp );
++ }
++ // destroy temp uno param
++ uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
++
++ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++ }
++ // return
++ if (pCppReturn) // has complex return
++ {
++ if (pUnoReturn != pCppReturn) // needs reconversion
++ {
++ uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
++ &pThis->pBridge->aUno2Cpp );
++ // destroy temp uno return
++ uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
++ }
++ // complex return ptr is set to eax
++ *(void **)pRegisterReturn = pCppReturn;
++ }
++ if (pReturnTypeDescr)
++ {
++ typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
++ TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
++ return eRet;
++ }
++ else
++ return typelib_TypeClass_VOID;
++ }
++}
++
++
++//==================================================================================================
++static typelib_TypeClass cpp_mediate(
++ sal_Int32 nVtableCall,
++ void ** pCallStack,
++ sal_Int64 * pRegisterReturn /* space for register return */ )
++{
++ OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
++
++ // pCallStack: ret adr, [ret *], this, params
++ // _this_ ptr is patched cppu_XInterfaceProxy object
++ cppu_cppInterfaceProxy * pCppI = NULL;
++ if( nVtableCall & 0x80000000 )
++ {
++ nVtableCall &= 0x7fffffff;
++ pCppI = (cppu_cppInterfaceProxy *)(XInterface *)*(pCallStack +2);
++ }
++ else
++ pCppI = (cppu_cppInterfaceProxy *)(XInterface *)*(pCallStack +1);
++
++ typelib_InterfaceTypeDescription * pTypeDescr = pCppI->pTypeDescr;
++
++ OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex,
++ "### illegal vtable index!" );
++ if (nVtableCall >= pTypeDescr->nMapFunctionIndexToMemberIndex)
++ {
++ throw RuntimeException( OUString::createFromAscii("illegal vtable index!"), (XInterface *)pCppI );
++ }
++
++ // determine called method
++ OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
++ sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nVtableCall];
++ OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
++
++ TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
++
++ typelib_TypeClass eRet;
++ switch (aMemberDescr.get()->eTypeClass)
++ {
++ case typelib_TypeClass_INTERFACE_ATTRIBUTE:
++ {
++ if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nVtableCall)
++ {
++ // is GET method
++ eRet = cpp2uno_call(
++ pCppI, aMemberDescr.get(),
++ ((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
++ 0, 0, // no params
++ pCallStack, pRegisterReturn );
++ }
++ else
++ {
++ // 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,
++ pCallStack, pRegisterReturn );
++ }
++ break;
++ }
++ case typelib_TypeClass_INTERFACE_METHOD:
++ {
++ // is METHOD
++ switch (nVtableCall)
++ {
++ 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 * >( pCallStack[3] )->getTypeLibType() );
++ if (pTD)
++ {
++ XInterface * pInterface = 0;
++ (*pCppI->pBridge->pCppEnv->getRegisteredInterface)(
++ pCppI->pBridge->pCppEnv,
++ (void **)&pInterface, pCppI->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
++
++ if (pInterface)
++ {
++ ::uno_any_construct(
++ reinterpret_cast< uno_Any * >( pCallStack[1] ),
++ &pInterface, pTD, cpp_acquire );
++ pInterface->release();
++ TYPELIB_DANGER_RELEASE( pTD );
++ *(void **)pRegisterReturn = pCallStack[1];
++ 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,
++ pCallStack, pRegisterReturn );
++ }
++ break;
++ }
++ default:
++ {
++ throw RuntimeException( OUString::createFromAscii("no member description found!"), (XInterface *)pCppI );
++ // is here for dummy
++ eRet = typelib_TypeClass_VOID;
++ }
++ }
++
++ return eRet;
++}
++
++//==================================================================================================
++class MediateClassData
++{
++public:
++ struct ClassDataBuffer
++ {
++ void* m_pVTable;
++
++ ~ClassDataBuffer();
++ };
++private:
++
++ map< OUString, ClassDataBuffer* > m_aClassData;
++ Mutex m_aMutex;
++
++ void createVTable( ClassDataBuffer*, typelib_InterfaceTypeDescription* );
++public:
++ const ClassDataBuffer* getClassData( typelib_InterfaceTypeDescription* );
++
++ MediateClassData() {}
++ ~MediateClassData();
++};
++//__________________________________________________________________________________________________
++MediateClassData::ClassDataBuffer::~ClassDataBuffer()
++{
++ delete m_pVTable;
++}
++
++//__________________________________________________________________________________________________
++MediateClassData::~MediateClassData()
++{
++ TRACE( "> calling ~MediateClassData(): freeing mediate vtables... <\n" );
++
++ // this MUST be the absolute last one which is called!
++ for ( map< OUString, ClassDataBuffer* >::iterator iPos( m_aClassData.begin() ); iPos != m_aClassData.end(); ++iPos )
++ {
++ // todo
++// delete (*iPos).second;
++ }
++}
++
++//__________________________________________________________________________________________________
++
++const MediateClassData::ClassDataBuffer* MediateClassData::getClassData( typelib_InterfaceTypeDescription* pType )
++{
++ MutexGuard aGuard( m_aMutex );
++
++ map< OUString, ClassDataBuffer* >::iterator element = m_aClassData.find( pType->aBase.pTypeName );
++ if( element != m_aClassData.end() )
++ return (*element).second;
++
++ ClassDataBuffer* pBuffer = new ClassDataBuffer();
++ createVTable( pBuffer, pType );
++ m_aClassData[ pType->aBase.pTypeName ] = pBuffer;
++ return pBuffer;
++}
++
++
++//==================================================================================================
++/**
++ * is called on incoming vtable calls
++ * (called by asm snippets)
++ */
++static void cpp_vtable_call( int nTableEntry, void** pCallStack ) __attribute__((regparm(2)));
++
++void cpp_vtable_call( int nTableEntry, void** pCallStack )
++{
++ volatile long nRegReturn[2];
++
++ typelib_TypeClass aType =
++ cpp_mediate( nTableEntry, pCallStack, (sal_Int64*)nRegReturn );
++
++ switch( aType )
++ {
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ __asm__( "movl %1, %%edx\n\t"
++ "movl %0, %%eax\n"
++ : : "m"(nRegReturn[0]), "m"(nRegReturn[1]) );
++ break;
++ case typelib_TypeClass_FLOAT:
++ __asm__( "flds %0\n\t"
++ "fstp %%st(0)\n\t"
++ "flds %0\n"
++ : : "m"(*(float *)nRegReturn) );
++ break;
++ case typelib_TypeClass_DOUBLE:
++ __asm__( "fldl %0\n\t"
++ "fstp %%st(0)\n\t"
++ "fldl %0\n"
++ : : "m"(*(double *)nRegReturn) );
++ break;
++// case typelib_TypeClass_UNSIGNED_SHORT:
++// case typelib_TypeClass_SHORT:
++// __asm__( "movswl %0, %%eax\n"
++// : : "m"(nRegReturn) );
++// break;
++ default:
++ __asm__( "movl %0, %%eax\n"
++ : : "m"(nRegReturn[0]) );
++ break;
++ }
++}
++//__________________________________________________________________________________________________
++
++void MediateClassData::createVTable( ClassDataBuffer* pBuffer, typelib_InterfaceTypeDescription* pType )
++{
++ // get all member functions
++ list< sal_Bool > aComplexReturn;
++
++ for( int n = 0; n < pType->nAllMembers; n++ )
++ {
++ typelib_TypeDescription* pMember = NULL;
++ TYPELIB_DANGER_GET( &pMember, pType->ppAllMembers[n] );
++ if( pMember->eTypeClass == typelib_TypeClass_INTERFACE_ATTRIBUTE )
++ {
++ typelib_TypeDescription * pRetTD = 0;
++ TYPELIB_DANGER_GET( &pRetTD, ((typelib_InterfaceAttributeTypeDescription *)pMember)->pAttributeTypeRef );
++ // get method
++ aComplexReturn.push_back( !cppu_isSimpleType( pRetTD ) );
++ // set method
++ if( ! ((typelib_InterfaceAttributeTypeDescription*)pMember)->bReadOnly )
++ aComplexReturn.push_back( sal_False );
++ TYPELIB_DANGER_RELEASE( pRetTD );
++ }
++ else
++ {
++ typelib_TypeDescription * pRetTD = 0;
++ TYPELIB_DANGER_GET( &pRetTD, ((typelib_InterfaceMethodTypeDescription *)pMember)->pReturnTypeRef );
++ aComplexReturn.push_back( !cppu_isSimpleType( pRetTD ) );
++ TYPELIB_DANGER_RELEASE( pRetTD );
++ }
++ TYPELIB_DANGER_RELEASE( pMember );
++ }
++
++ int nSize = aComplexReturn.size();
++ char * pSpace = (char *)rtl_allocateMemory( ((nSize+2)*sizeof(void *)) + (nSize*20) );
++ pBuffer->m_pVTable = (void*)pSpace;
++
++ char * pCode = pSpace + ((nSize+2)*sizeof(void *));
++ void ** pvft = (void **)pSpace;
++ pvft[0] = NULL;
++ pvft[1] = NULL;
++
++ // setup vft and code
++ for ( sal_Int32 nPos = 0; nPos < nSize; ++nPos )
++ {
++ unsigned char * codeSnip = (unsigned char *)pCode + (nPos*20);
++ pvft[nPos+2] = codeSnip;
++
++ // mov $nPos, %eax
++ *codeSnip++ = 0xb8;
++ *(sal_Int32 *)codeSnip = nPos | ( aComplexReturn.front() ? 0x80000000 : 0 );
++ codeSnip += sizeof(sal_Int32);
++ aComplexReturn.pop_front();
++ // mov %esp, %edx
++ *codeSnip++ = 0x89;
++ *codeSnip++ = 0xe2;
++ // jmp cpp_vtable_call
++ *codeSnip++ = 0xe9;
++ *(sal_Int32 *)codeSnip = ((unsigned char *)cpp_vtable_call) - codeSnip - sizeof(sal_Int32);
++ codeSnip += sizeof(sal_Int32);
++ }
++}
++
++//==================================================================================================
++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)
++ {
++#ifdef LEAK_STATIC_DATA
++ s_pMediateClassData = new MediateClassData();
++#else
++ static MediateClassData s_aMediateClassData;
++ s_pMediateClassData = &s_aMediateClassData;
++#endif
++ }
++ }
++ *(const void **)pCppI = s_pMediateClassData->getClassData( pTypeDescr )->m_pVTable;
++}
++
++}
++
++//##################################################################################################
++extern "C" SAL_DLLEXPORT 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 );
++}
++//##################################################################################################
++extern "C" SAL_DLLEXPORT void SAL_CALL uno_initEnvironment( uno_Environment * pCppEnv )
++ SAL_THROW_EXTERN_C()
++{
++ CPPU_CURRENT_NAMESPACE::cppu_cppenv_initEnvironment( pCppEnv );
++}
++//##################################################################################################
++extern "C" SAL_DLLEXPORT void SAL_CALL uno_ext_getMapping(
++ uno_Mapping ** ppMapping, uno_Environment * pFrom, uno_Environment * pTo )
++ SAL_THROW_EXTERN_C()
++{
++ CPPU_CURRENT_NAMESPACE::cppu_ext_getMapping( ppMapping, pFrom, pTo );
++}
++
diff --git a/misc/openoffice/patches/patch-ad b/misc/openoffice/patches/patch-ad
new file mode 100644
index 00000000000..73bbaca6f08
--- /dev/null
+++ b/misc/openoffice/patches/patch-ad
@@ -0,0 +1,310 @@
+$NetBSD: patch-ad,v 1.1.1.1 2002/02/13 18:09:23 mrauch Exp $
+
+--- ../bridges/source/cpp_uno/gcc2_netbsd_intel/except.cxx.orig Sun Jan 6 11:41:58 2002
++++ ../bridges/source/cpp_uno/gcc2_netbsd_intel/except.cxx
+@@ -0,0 +1,305 @@
++#include <dlfcn.h>
++#include <new.h>
++#include <typeinfo>
++#if STLPORT_VERSION<321
++#include <map.h>
++#else
++#include <map>
++#endif
++#ifndef _RTL_ALLOC_H_
++#include <rtl/alloc.h>
++#endif
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
++#endif
++
++#ifndef _BRIDGES_CPP_UNO_BRIDGE_HXX_
++#include <bridges/cpp_uno/bridge.hxx>
++#endif
++#ifndef _TYPELIB_TYPEDESCRIPTION_HXX_
++#include <typelib/typedescription.hxx>
++#endif
++#ifndef _COM_SUN_STAR_UNO_ANY_HXX_
++#include <com/sun/star/uno/Any.hxx>
++#endif
++
++#include <rtl/strbuf.hxx>
++
++#include "gcc2_netbsd_intel.hxx"
++
++#ifdef DEBUG
++#include <stdio.h>
++#endif
++
++using namespace std;
++using namespace osl;
++using namespace rtl;
++using namespace com::sun::star::uno;
++
++namespace CPPU_CURRENT_NAMESPACE
++{
++
++//==================================================================================================
++static OString toUNOname( const OString & rRTTIname )
++{
++ OString aRet;
++
++ sal_Char* pStr = rRTTIname.getStr();
++ sal_Char* pOrg = pStr;
++
++ // check for namespace
++ if( *pStr == '_' )
++ pStr++;
++ if( *pStr == 'Q' )
++ {
++ pStr++;
++ if( *pStr++ == '_' )
++ {
++ while( *pStr++ != '_' )
++ ;
++ }
++ }
++
++ while( *pStr )
++ {
++ int nCharsToCopy = 0;
++ while( *pStr >= '0' && *pStr <= '9' )
++ nCharsToCopy = 10*nCharsToCopy + (int)(*pStr++ - '0');
++ if( aRet.getLength() )
++ aRet += ".";
++ aRet += rRTTIname.copy( pStr - pOrg, nCharsToCopy );
++ pStr += nCharsToCopy;
++ }
++
++ return aRet;
++}
++//==================================================================================================
++static OString toRTTIname( const OString & rUNOname )
++{
++ if( ! rUNOname.getLength() )
++ return OString();
++
++ OStringBuffer aRet( 64 );
++
++ sal_Int32 nIndex = 0;
++ sal_Int32 nToken = 0;
++ do
++ {
++ OString aToken( rUNOname.getToken( 0, '.', nIndex ) );
++ aRet.append( OString::valueOf( (sal_Int32)aToken.getLength() ) );
++ aRet.append( aToken );
++ ++nToken;
++ }
++ while (nIndex >= 0);
++
++ OString ret( aRet.makeStringAndClear() );
++
++ if( nToken >= 2 )
++ {
++ OStringBuffer buf( 64 );
++ buf.append( 'Q' );
++ if( nToken > 9 )
++ aRet.append( '_' );
++ buf.append( OString::valueOf( (sal_Int32)nToken ) );
++ if( nToken > 9 )
++ aRet.append( '_' );
++ buf.append( ret );
++ ret = buf.makeStringAndClear();
++ }
++
++ return ret;
++}
++
++
++//##################################################################################################
++//#### RTTI simulation #############################################################################
++//##################################################################################################
++
++class RTTIHolder
++{
++ static std::map< OString, void* > aAllRTTI;
++public:
++ static void* getRTTI( const OString& rTypename );
++ static void* getRTTI_UnoName( const OString& rUnoTypename )
++ { return getRTTI( toRTTIname( rUnoTypename ) ); }
++
++ static void* insertRTTI( const OString& rTypename );
++ static void* insertRTTI_UnoName( const OString& rTypename )
++ { return insertRTTI( toRTTIname( rTypename ) ); }
++
++ // rSuperTypename MUST exist !!!
++ static void* insertRTTI( const OString& rTypename, const OString& rSuperTypename );
++ static void* insertRTTI_UnoNames( const OString& rTypename, const OString& rSuperTypename )
++ { return insertRTTI( toRTTIname( rTypename ), toRTTIname( rSuperTypename ) ); }
++
++ // for complex RTTI
++ static void* insertRTTI( const OString& rTypename, void* pRTTI );
++ static void* insertRTTI_UnoName( const OString&rTypename, void* pRTTI )
++ { return insertRTTI( toRTTIname( rTypename ), pRTTI ); }
++};
++
++std::map< OString, void* > RTTIHolder::aAllRTTI;
++
++void* RTTIHolder::getRTTI( const OString& rTypename )
++{
++ std::map< OString, void* >::iterator element;
++
++ element = aAllRTTI.find( rTypename );
++ return element != aAllRTTI.end() ? (*element).second : NULL;
++}
++
++void* RTTIHolder::insertRTTI( const OString& rTypename )
++{
++#ifdef DEBUG
++ fprintf( stderr, "generating base RTTI: %s\n", rTypename.getStr() );
++#endif
++ void* pRTTI = new __user_type_info( strdup( rTypename.getStr() ) );
++ aAllRTTI[ rTypename ] = pRTTI;
++ return pRTTI;
++}
++
++void* RTTIHolder::insertRTTI( const OString& rTypename, const OString& rSuperTypename )
++{
++#ifdef DEBUG
++ fprintf( stderr, "generating subclass RTTI: %s %s\n", rTypename.getStr(), rSuperTypename.getStr() );
++#endif
++ OSL_ENSURE( ! getRTTI( rTypename ), "insert RTTI called on already existing type" );
++ void* pRTTI = new __si_type_info( strdup( rTypename.getStr() ), *(__user_type_info*)getRTTI( rSuperTypename ) );
++ aAllRTTI[ rTypename ] = pRTTI;
++ return pRTTI;
++}
++
++void* RTTIHolder::insertRTTI( const OString& rTypename, void* pRTTI )
++{
++ aAllRTTI[ rTypename ] = pRTTI;
++ return pRTTI;
++}
++
++//--------------------------------------------------------------------------------------------------
++
++static void* generateRTTI( typelib_CompoundTypeDescription * pCompTypeDescr )
++{
++ OString aCompTypeName( OUStringToOString( pCompTypeDescr->aBase.pTypeName, RTL_TEXTENCODING_ASCII_US ) );
++ void* pRTTI = RTTIHolder::getRTTI_UnoName( aCompTypeName );
++ if( pRTTI )
++ return pRTTI;
++
++ if( ! pCompTypeDescr->pBaseTypeDescription )
++ // this is a base type
++ return RTTIHolder::insertRTTI_UnoName( aCompTypeName );
++ if( ! pCompTypeDescr->pBaseTypeDescription->pBaseTypeDescription )
++ {
++ OString aBasename(
++ OUStringToOString( pCompTypeDescr->pBaseTypeDescription->aBase.pTypeName, RTL_TEXTENCODING_ASCII_US )
++ );
++ if( ! RTTIHolder::getRTTI_UnoName( aBasename ) )
++ RTTIHolder::insertRTTI_UnoName( aBasename );
++
++ // this type has only one supertype
++ return RTTIHolder::insertRTTI_UnoNames( aCompTypeName, aBasename );
++ }
++
++ // create __si_type_info
++ void* pSuperRTTI = generateRTTI( pCompTypeDescr->pBaseTypeDescription );
++ OString aCompTypeRTTIname( toRTTIname( aCompTypeName ) );
++#ifdef DEBUG
++ fprintf( stderr, "generating RTTI: %s\n", aCompTypeRTTIname.getStr() );
++#endif
++ pRTTI = new __si_type_info( strdup( aCompTypeRTTIname.getStr() ),
++ *(__user_type_info*)pSuperRTTI );
++#if 0
++ __class_type_info::base_info* pBaseInfo = new __class_type_info::base_info;
++ pBaseInfo->base = (__user_type_info*)pSuperRTTI;
++ pBaseInfo->offset = 0;
++ pBaseInfo->is_virtual = 0;
++ pBaseInfo->access1 = __class_type_info::PUBLIC;
++
++ OString aCompTypeRTTIname( toRTTIname( aCompTypeName ) );
++ pRTTI = new __class_type_info(
++ strdup( aCompTypeRTTIname.getStr() ),
++ pBaseInfo,
++ 1
++ );
++#endif
++ return RTTIHolder::insertRTTI_UnoName( aCompTypeName, pRTTI );
++}
++
++//--------------------------------------------------------------------------------------------------
++
++static Mutex s_aMutex;
++static std::map< void*, typelib_TypeDescription* > aExceptionMap;
++
++static void deleteException( void* pExc, int nDummy )
++{
++ MutexGuard aGuard( s_aMutex );
++ std::map< void*, typelib_TypeDescription* >::iterator element =
++ aExceptionMap.find( pExc );
++ OSL_ASSERT( element != aExceptionMap.end() );
++ if( element != aExceptionMap.end() )
++ {
++ typelib_TypeDescription* pType = (*element).second;
++ aExceptionMap.erase( pExc );
++ uno_destructData( pExc, pType, cpp_release );
++ typelib_typedescription_release( pType );
++ }
++}
++
++//__________________________________________________________________________________________________
++
++//##################################################################################################
++//#### exported ####################################################################################
++//##################################################################################################
++
++
++void gcc291_netbsd_intel_raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
++{
++ // construct cpp exception object
++ typelib_TypeDescription * pTypeDescr = 0;
++ typelib_typedescriptionreference_getDescription( &pTypeDescr, pUnoExc->pType );
++
++ void * pCppExc = __eh_alloc( pTypeDescr->nSize ); // will be released in generated dtor
++ uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
++
++ // destruct uno exception
++ uno_any_destruct( pUnoExc, 0 );
++
++ // a must be
++ OSL_ENSURE( sizeof(sal_Int32) == sizeof(void *), "### pointer size differs from sal_Int32!" );
++
++ typelib_CompoundTypeDescription * pCompTypeDescr = (typelib_CompoundTypeDescription *)pTypeDescr;
++ void* pRTTI = generateRTTI( pCompTypeDescr );
++
++ {
++ MutexGuard aGuard( s_aMutex );
++ aExceptionMap[ pCppExc ] = pTypeDescr;
++ }
++
++ __cp_push_exception( pCppExc, pRTTI, deleteException );
++ __throw();
++}
++
++void gcc291_netbsd_intel_fillUnoException( cp_eh_info* pInfo, uno_Any* pExc, uno_Mapping * pCpp2Uno )
++{
++ OUString aName( OStringToOUString(
++ toUNOname( ((__user_type_info*)(pInfo->type))->name() ), RTL_TEXTENCODING_ASCII_US ) );
++
++ typelib_TypeDescription * pExcTypeDescr = 0;
++ typelib_typedescription_getByName(
++ &pExcTypeDescr,
++ aName.pData );
++ OSL_ENSURE( pExcTypeDescr, "could not get type description for exception" );
++ if (pExcTypeDescr)
++ {
++ // construct cpp exception any
++ Any aAny( pInfo->value, pExcTypeDescr ); // const_cast
++ typelib_typedescription_release( pExcTypeDescr );
++ // construct uno exception any
++ typelib_TypeDescription* pAnyDescr = 0;
++ getCppuType( (const Any *)0 ).getDescription( &pAnyDescr );
++ uno_copyAndConvertData( pExc, &aAny, pAnyDescr, pCpp2Uno );
++ typelib_typedescription_release( pAnyDescr );
++ }
++}
++
++}
++
diff --git a/misc/openoffice/patches/patch-ae b/misc/openoffice/patches/patch-ae
new file mode 100644
index 00000000000..883fd5eaa53
--- /dev/null
+++ b/misc/openoffice/patches/patch-ae
@@ -0,0 +1,97 @@
+$NetBSD: patch-ae,v 1.1.1.1 2002/02/13 18:09:23 mrauch Exp $
+
+--- ../bridges/source/cpp_uno/gcc2_netbsd_intel/gcc2_netbsd_intel.hxx.orig Sun Jan 6 11:42:08 2002
++++ ../bridges/source/cpp_uno/gcc2_netbsd_intel/gcc2_netbsd_intel.hxx
+@@ -0,0 +1,92 @@
++#ifndef _RTL_STRING_HXX_
++#include <rtl/string.hxx>
++#endif
++#include <typeinfo>
++
++typedef struct _uno_Any uno_Any;
++typedef struct _uno_Mapping uno_Mapping;
++
++// private egcs type info structs
++
++// type_info for a simple class ( no base classes or an enum )
++struct __user_type_info : public std::type_info {
++ __user_type_info (const char *n) : type_info (n) {}
++
++ // dynamic cast. built by gcc
++ virtual void* dcast (const type_info &, int, void *,
++ const type_info * = 0, void * = 0) const;
++};
++// type_info for a class with one public, nonvirtual base class.
++
++class __si_type_info : public __user_type_info {
++ const __user_type_info &base;
++
++public:
++ __si_type_info (const char *n, const __user_type_info &b)
++ : __user_type_info (n), base (b) { }
++
++ // dynamic cast. built by gcc
++ virtual void *dcast (const type_info &, int, void *,
++ const type_info * = 0, void * = 0) const;
++};
++
++// type_info for a general class.
++
++typedef unsigned int USItype __attribute__ ((mode (SI)));
++
++struct __class_type_info : public __user_type_info {
++ enum access { PUBLIC = 1, PROTECTED = 2, PRIVATE = 3 };
++
++ struct base_info {
++ const __user_type_info *base;
++ USItype offset: 29;
++ bool is_virtual: 1;
++ access access1: 2;
++ };
++
++ const base_info *base_list;
++ size_t n_bases;
++
++ __class_type_info (const char *name, const base_info *bl, size_t bn)
++ : __user_type_info (name), base_list (bl), n_bases (bn) {}
++
++ // dynamic cast. built by gcc
++ virtual void* dcast (const type_info &, int, void *,
++ const type_info * = 0, void * = 0) const;
++};
++
++struct cp_eh_info
++{
++ struct __eh_info
++ {
++ void* match_function;
++ short language;
++ short version;
++ };
++ __eh_info eh_info;
++ void *value;
++ void *type;
++ void (*cleanup)(void *, int);
++ bool caught;
++ cp_eh_info *next;
++ long handlers;
++ void *original_value;
++};
++
++extern "C" {
++ void __cp_push_exception( void*, void*, void(*)(void*, int) );
++ void __throw();
++}
++
++//##################################################################################################
++//#### exceptions ##################################################################################
++//##################################################################################################
++
++namespace CPPU_CURRENT_NAMESPACE
++{
++
++void gcc291_netbsd_intel_raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp );
++void gcc291_netbsd_intel_fillUnoException( cp_eh_info*, uno_Any*, uno_Mapping * pCpp2Uno );
++
++}
++
diff --git a/misc/openoffice/patches/patch-af b/misc/openoffice/patches/patch-af
new file mode 100644
index 00000000000..e03d7910a9e
--- /dev/null
+++ b/misc/openoffice/patches/patch-af
@@ -0,0 +1,52 @@
+$NetBSD: patch-af,v 1.1.1.1 2002/02/13 18:09:23 mrauch Exp $
+
+--- ../bridges/source/cpp_uno/gcc2_netbsd_intel/makefile.mk.orig Sun Jan 6 11:42:19 2002
++++ ../bridges/source/cpp_uno/gcc2_netbsd_intel/makefile.mk
+@@ -0,0 +1,47 @@
++PRJ=..$/..$/..
++
++PRJNAME=bridges
++TARGET=gcc2_uno
++LIBTARGET=no
++ENABLE_EXCEPTIONS=TRUE
++NO_BSYMBOLIC=TRUE
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE : svpre.mk
++.INCLUDE : settings.mk
++.INCLUDE : sv.mk
++
++# --- Files --------------------------------------------------------
++
++.IF "$(COM)$(OS)$(CPU)" == "GCCNETBSDI"
++
++CFLAGSNOOPT=-O0
++NOOPTFILES=$(SLO)$/uno2cpp.obj
++
++SLOFILES= \
++ $(SLO)$/except.obj \
++ $(SLO)$/cpp2uno.obj \
++ $(SLO)$/uno2cpp.obj
++
++SHL1TARGET= $(TARGET)
++
++SHL1DEF= $(MISC)$/$(SHL1TARGET).def
++SHL1IMPLIB= i$(TARGET)
++SHL1VERSIONMAP=..$/..$/bridge_exports.map
++
++SHL1OBJS= \
++ $(SLO)$/except.obj \
++ $(SLO)$/cpp2uno.obj \
++ $(SLO)$/uno2cpp.obj
++
++SHL1STDLIBS= \
++ $(SALLIB) \
++ $(CPPULIB)
++
++.ENDIF
++
++# --- Targets ------------------------------------------------------
++
++.INCLUDE : target.mk
++
diff --git a/misc/openoffice/patches/patch-ag b/misc/openoffice/patches/patch-ag
new file mode 100644
index 00000000000..a60be946af5
--- /dev/null
+++ b/misc/openoffice/patches/patch-ag
@@ -0,0 +1,408 @@
+$NetBSD: patch-ag,v 1.1.1.1 2002/02/13 18:09:23 mrauch Exp $
+
+--- ../bridges/source/cpp_uno/gcc2_netbsd_intel/uno2cpp.cxx.orig Sun Jan 6 11:42:28 2002
++++ ../bridges/source/cpp_uno/gcc2_netbsd_intel/uno2cpp.cxx
+@@ -0,0 +1,403 @@
++
++#include <malloc.h>
++#ifndef _RTL_ALLOC_H_
++#include <rtl/alloc.h>
++#endif
++
++#ifndef _UNO_DATA_H_
++#include <uno/data.h>
++#endif
++#ifndef _BRIDGES_CPP_UNO_BRIDGE_HXX_
++#include <bridges/cpp_uno/bridge.hxx>
++#endif
++#ifndef _BRIDGES_CPP_UNO_TYPE_MISC_HXX_
++#include <bridges/cpp_uno/type_misc.hxx>
++#endif
++
++#include "gcc2_netbsd_intel.hxx"
++
++using namespace rtl;
++using namespace com::sun::star::uno;
++
++namespace CPPU_CURRENT_NAMESPACE
++{
++
++//==================================================================================================
++static void callVirtualMethod( void * pThis,
++ sal_Int32 nVtableIndex,
++ void * pRegisterReturn,
++ typelib_TypeClass eReturnType,
++ sal_Int32 * pStackLongs,
++ sal_Int32 nStackLongs )
++{
++ // parameter list is mixed list of * and values
++ // reference parameters are pointers
++
++ OSL_ENSURE( pStackLongs && pThis, "### null ptr!" );
++ OSL_ENSURE( (sizeof(void *) == 4) &&
++ (sizeof(sal_Int32) == 4), "### unexpected size of int!" );
++ OSL_ENSURE( nStackLongs && pStackLongs, "### no stack in callVirtualMethod !" );
++
++ volatile long edx = 0, eax = 0; // for register returns
++ __asm__ (
++ // copy values
++ "pushl %%edx\n\t"
++ "pushl %%ecx\n\t"
++ "pushl %%eax\n\t"
++ "mov %0, %%eax\n\t"
++ "mov %%eax, %%edx\n\t"
++ "dec %%edx\n\t"
++ "shl $2, %%edx\n\t"
++ "add %1, %%edx\n"
++ "Lcopy:\n\t"
++ "mov 0(%%edx), %%ecx\n\t"
++ "sub $4, %%edx\n\t"
++ "push %%ecx\n\t"
++ "dec %%eax\n\t"
++ "jne Lcopy\n"
++ "Lcall:\n\t"
++ // do the actual call
++ "mov %2, %%edx\n\t"
++ "mov 0(%%edx), %%edx\n\t"
++ "mov %3, %%eax\n\t"
++ "add $2, %%eax\n\t" // first two table entries are reserved
++ "shl $2, %%eax\n\t"
++ "add %%eax, %%edx\n\t"
++ "mov 0(%%edx), %%edx\n\t"
++ "call *%%edx\n\t"
++ // save return registers
++ "mov %%eax, %4\n\t"
++ "mov %%edx, %5\n\t"
++ // cleanup stack
++ "mov %0, %%eax\n\t"
++ "shl $2, %%eax\n\t"
++ "add %%eax, %%esp\n\t"
++ "popl %%eax\n\t"
++ "popl %%ecx\n\t"
++ "popl %%edx\n\t"
++ : : "m"(nStackLongs), "m"(pStackLongs), "m"(pThis), "m"(nVtableIndex), "m"(eax), "m"(edx) );
++ switch( eReturnType )
++ {
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ ((long*)pRegisterReturn)[1] = edx;
++ case typelib_TypeClass_LONG:
++ case typelib_TypeClass_UNSIGNED_LONG:
++ case typelib_TypeClass_CHAR:
++ case typelib_TypeClass_ENUM:
++ ((long*)pRegisterReturn)[0] = eax;
++ break;
++ case typelib_TypeClass_SHORT:
++ case typelib_TypeClass_UNSIGNED_SHORT:
++ *(unsigned short*)pRegisterReturn = eax;
++ break;
++ case typelib_TypeClass_BOOLEAN:
++ case typelib_TypeClass_BYTE:
++ *(unsigned char*)pRegisterReturn = eax;
++ break;
++ case typelib_TypeClass_FLOAT:
++ __asm__ (
++ "fstps %0\n\t"
++ : : "m"(*(char *)pRegisterReturn) );
++ break;
++ case typelib_TypeClass_DOUBLE:
++ __asm__ (
++ "fstpl %0\n\t"
++ : : "m"(*(char *)pRegisterReturn) );
++ break;
++ }
++}
++
++//==================================================================================================
++static void cpp_call(
++ cppu_unoInterfaceProxy * pThis,
++ sal_Int32 nVtableCall,
++ typelib_TypeDescriptionReference * pReturnTypeRef,
++ sal_Int32 nParams, typelib_MethodParameter * pParams,
++ void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
++{
++ // max space for: [complex ret ptr], values|ptr ...
++ char * pCppStack =
++ (char *)alloca( sizeof(sal_Int32) + ((nParams+2) * sizeof(sal_Int64)) );
++ char * pCppStackStart = pCppStack;
++
++ // return
++ typelib_TypeDescription * pReturnTypeDescr = 0;
++ TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
++ OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
++
++ void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
++
++ if (pReturnTypeDescr)
++ {
++ if (cppu_isSimpleType( pReturnTypeDescr ))
++ {
++ pCppReturn = pUnoReturn; // direct way for simple types
++ }
++ else
++ {
++ // complex return via ptr
++ pCppReturn = *(void **)pCppStack = (cppu_relatesToInterface( pReturnTypeDescr )
++ ? alloca( pReturnTypeDescr->nSize )
++ : pUnoReturn); // direct way
++ pCppStack += sizeof(void *);
++ }
++ }
++ // push this
++ *(void**)pCppStack = pThis->pCppI;
++ pCppStack += sizeof( void* );
++
++ // stack space
++ OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
++ // args
++ void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
++ // indizes of values this have to be converted (interface conversion cpp<=>uno)
++ sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
++ // type descriptions for reconversions
++ typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
++
++ sal_Int32 nTempIndizes = 0;
++
++ for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
++ {
++ const typelib_MethodParameter & rParam = pParams[nPos];
++ typelib_TypeDescription * pParamTypeDescr = 0;
++ TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
++
++ if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr ))
++ {
++ uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
++ &pThis->pBridge->aUno2Cpp );
++
++ switch (pParamTypeDescr->eTypeClass)
++ {
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ case typelib_TypeClass_DOUBLE:
++ pCppStack += sizeof(sal_Int32); // extra long
++ }
++ // no longer needed
++ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++ }
++ else // ptr to complex value | ref
++ {
++ if (! rParam.bIn) // is pure out
++ {
++ // cpp out is constructed mem, uno out is not!
++ uno_constructData(
++ *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++ pParamTypeDescr );
++ pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
++ // will be released at reconversion
++ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
++ }
++ // is in/inout
++ else if (cppu_relatesToInterface( pParamTypeDescr ))
++ {
++ uno_copyAndConvertData(
++ *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++ pUnoArgs[nPos], pParamTypeDescr, &pThis->pBridge->aUno2Cpp );
++
++ pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
++ // will be released at reconversion
++ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
++ }
++ else // direct way
++ {
++ *(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
++ // no longer needed
++ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++ }
++ }
++ pCppStack += sizeof(sal_Int32); // standard parameter length
++ }
++
++ try
++ {
++ OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic" );
++ callVirtualMethod(
++ pThis->pCppI, nVtableCall,
++ pCppReturn, pReturnTypeDescr->eTypeClass,
++ (sal_Int32 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_Int32) );
++ // NO exception occured...
++ *ppUnoExc = 0;
++
++ // reconvert temporary params
++ for ( ; nTempIndizes--; )
++ {
++ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
++ typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
++
++ if (pParams[nIndex].bIn)
++ {
++ if (pParams[nIndex].bOut) // inout
++ {
++ uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
++ uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
++ &pThis->pBridge->aCpp2Uno );
++ }
++ }
++ else // pure out
++ {
++ uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
++ &pThis->pBridge->aCpp2Uno );
++ }
++ // destroy temp cpp param => cpp: every param was constructed
++ uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
++
++ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++ }
++ // return value
++ if (pCppReturn && pUnoReturn != pCppReturn)
++ {
++ uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
++ &pThis->pBridge->aCpp2Uno );
++ uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
++ }
++ }
++ catch( ... )
++ {
++ // get exception
++ cp_eh_info* pEHInfo = (cp_eh_info*)__cp_eh_info();
++ gcc291_netbsd_intel_fillUnoException( pEHInfo, *ppUnoExc, &pThis->pBridge->aCpp2Uno );
++
++ // temporary params
++ for ( ; nTempIndizes--; )
++ {
++ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
++ // destroy temp cpp param => cpp: every param was constructed
++ uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
++ TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
++ }
++ // return type
++ if (pReturnTypeDescr)
++ TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
++ }
++}
++
++
++//==================================================================================================
++void SAL_CALL cppu_unoInterfaceProxy_dispatch(
++ uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
++ void * pReturn, void * pArgs[], uno_Any ** ppException ) throw ()
++{
++ // is my surrogate
++ cppu_unoInterfaceProxy * pThis = (cppu_unoInterfaceProxy *)pUnoI;
++ typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
++
++ switch (pMemberDescr->eTypeClass)
++ {
++ case typelib_TypeClass_INTERFACE_ATTRIBUTE:
++ {
++ // determine vtable call index
++ 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!" );
++
++ if (pReturn)
++ {
++ // dependent dispatch
++ cpp_call(
++ pThis, nVtableCall,
++ ((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
++ 0, 0, // no params
++ pReturn, pArgs, ppException );
++ }
++ else
++ {
++ // is SET
++ typelib_MethodParameter aParam;
++ aParam.pTypeRef =
++ ((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
++ aParam.bIn = sal_True;
++ aParam.bOut = sal_False;
++
++ typelib_TypeDescriptionReference * pReturnTypeRef = 0;
++ OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
++ typelib_typedescriptionreference_new(
++ &pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
++
++ // dependent dispatch
++ cpp_call(
++ pThis, nVtableCall +1, // get, then set method
++ pReturnTypeRef,
++ 1, &aParam,
++ pReturn, pArgs, ppException );
++
++ typelib_typedescriptionreference_release( pReturnTypeRef );
++ }
++
++ break;
++ }
++ case typelib_TypeClass_INTERFACE_METHOD:
++ {
++ // determine vtable call index
++ 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!" );
++
++ switch (nVtableCall)
++ {
++ // standard calls
++ case 1: // acquire uno interface
++ (*pUnoI->acquire)( pUnoI );
++ *ppException = 0;
++ break;
++ case 2: // release uno interface
++ (*pUnoI->release)( pUnoI );
++ *ppException = 0;
++ break;
++ case 0: // queryInterface() opt
++ {
++ typelib_TypeDescription * pTD = 0;
++ TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
++ if (pTD)
++ {
++ uno_Interface * pInterface = 0;
++ (*pThis->pBridge->pUnoEnv->getRegisteredInterface)(
++ pThis->pBridge->pUnoEnv,
++ (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
++
++ if (pInterface)
++ {
++ ::uno_any_construct(
++ reinterpret_cast< uno_Any * >( pReturn ),
++ &pInterface, pTD, 0 );
++ (*pInterface->release)( pInterface );
++ TYPELIB_DANGER_RELEASE( pTD );
++ *ppException = 0;
++ break;
++ }
++ TYPELIB_DANGER_RELEASE( pTD );
++ }
++ } // else perform queryInterface()
++ default:
++ // dependent dispatch
++ cpp_call(
++ pThis, nVtableCall,
++ ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
++ ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
++ ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
++ pReturn, pArgs, ppException );
++ }
++ break;
++ }
++ default:
++ {
++ ::com::sun::star::uno::RuntimeException aExc(
++ OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
++ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
++
++ Type const & rExcType = ::getCppuType( &aExc );
++ // binary identical null reference
++ ::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
++ }
++ }
++}
++
++}
++
diff --git a/misc/openoffice/patches/patch-ah b/misc/openoffice/patches/patch-ah
new file mode 100644
index 00000000000..a4348dd7198
--- /dev/null
+++ b/misc/openoffice/patches/patch-ah
@@ -0,0 +1,773 @@
+$NetBSD: patch-ah,v 1.1.1.1 2002/02/13 18:09:23 mrauch Exp $
+
+--- ../bridges/source/cpp_uno/gcc2_netbsd_powerpc/cpp2uno.cxx.orig Sun Jan 6 11:42:47 2002
++++ ../bridges/source/cpp_uno/gcc2_netbsd_powerpc/cpp2uno.cxx
+@@ -0,0 +1,768 @@
++#include <stdio.h>
++
++#define LEAK_STATIC_DATA
++// #define TRACE(x) OSL_TRACE(x)
++#define TRACE(x)
++
++#include <malloc.h>
++#if STLPORT_VERSION<321
++#include <list.h>
++#include <map.h>
++#else
++#include <list>
++#include <map>
++#endif
++#include <typeinfo>
++#ifndef _RTL_ALLOC_H_
++#include <rtl/alloc.h>
++#endif
++#ifndef _OSL_MUTEX_HXX_
++#include <osl/mutex.hxx>
++#endif
++
++#ifndef _TYPELIB_TYPEDESCRIPTION_HXX_
++#include <typelib/typedescription.hxx>
++#endif
++#ifndef _UNO_DATA_H_
++#include <uno/data.h>
++#endif
++#ifndef _BRIDGES_CPP_UNO_BRIDGE_HXX_
++#include <bridges/cpp_uno/bridge.hxx>
++#endif
++#ifndef _BRIDGES_CPP_UNO_TYPE_MISC_HXX_
++#include <bridges/cpp_uno/type_misc.hxx>
++#endif
++
++#include "gcc2_netbsd_powerpc.hxx"
++
++using namespace com::sun::star::uno;
++using namespace std;
++using namespace osl;
++using namespace rtl;
++
++namespace CPPU_CURRENT_NAMESPACE
++{
++
++//==================================================================================================
++rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;
++
++//==================================================================================================
++static typelib_TypeClass cpp2uno_call(
++ cppu_cppInterfaceProxy * pThis,
++ const typelib_TypeDescription * pMemberTypeDescr,
++ typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
++ sal_Int32 nParams, typelib_MethodParameter * pParams,
++ void ** gpreg, void ** fpreg, void ** ovrflw,
++ sal_Int64 * pRegisterReturn /* space for register return */ )
++{
++ int ng = 0; // number of gpr registers used
++ int nf = 0; // number of fpr registers 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)
++ TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
++
++ void * pUnoReturn = 0;
++ void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
++
++ if (pReturnTypeDescr)
++ {
++ if (cppu_isSimpleType( pReturnTypeDescr ))
++ pUnoReturn = pRegisterReturn; // direct way for simple types
++ else // complex return via ptr (pCppReturn)
++ {
++ pCppReturn = *(void **)gpreg;
++ gpreg++;
++ ng++;
++
++ pUnoReturn = (cppu_relatesToInterface( pReturnTypeDescr )
++ ? alloca( pReturnTypeDescr->nSize )
++ : pCppReturn); // direct way
++ }
++ }
++ // pop this
++ gpreg++;
++ ng++;
++
++ // stack space
++ OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
++ // parameters
++ void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams );
++ void ** pCppArgs = pUnoArgs + nParams;
++ // indizes of values this have to be converted (interface conversion cpp<=>uno)
++ sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams));
++ // type descriptions for reconversions
++ typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
++
++ sal_Int32 nTempIndizes = 0;
++
++ for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
++ {
++ const typelib_MethodParameter & rParam = pParams[nPos];
++ typelib_TypeDescription * pParamTypeDescr = 0;
++ TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
++
++ if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr )) // value
++ {
++
++ switch (pParamTypeDescr->eTypeClass)
++ {
++ case typelib_TypeClass_DOUBLE:
++ if (nf < 8) {
++ pCppArgs[nPos] = fpreg;
++ pUnoArgs[nPos] = fpreg;
++ nf++;
++ fpreg += 2;
++ } else {
++ if (((long)ovrflw) & 4) ovrflw++;
++ pCppArgs[nPos] = ovrflw;
++ pUnoArgs[nPos] = ovrflw;
++ ovrflw += 2;
++ }
++ break;
++
++ case typelib_TypeClass_FLOAT:
++ /* fpreg are all double values so need to create
++ modify fpreg to be a single word float value */
++ if (nf < 8) {
++ float tmp = (float) (*((double *)fpreg));
++ (*((float *) fpreg)) = tmp;
++ pCppArgs[nPos] = fpreg;
++ pUnoArgs[nPos] = fpreg;
++ nf++;
++ fpreg += 2;
++ } else {
++#if 0 /* abi is not being followed correctly */
++ if (((long)ovrflw) & 4) ovrflw++;
++ float tmp = (float) (*((double *)ovrflw));
++ (*((float *) ovrflw)) = tmp;
++ pCppArgs[nPos] = ovrflw;
++ pUnoArgs[nPos] = ovrflw;
++ ovrflw += 2;
++#else
++ pCppArgs[nPos] = ovrflw;
++ pUnoArgs[nPos] = ovrflw;
++ ovrflw += 1;
++#endif
++ }
++ break;
++
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ if (ng < 7) {
++ if (ng & 1) {
++ ng++;
++ gpreg++;
++ }
++ pCppArgs[nPos] = gpreg;
++ pUnoArgs[nPos] = gpreg;
++ ng += 2;
++ gpreg += 2;
++ } else {
++ if (((long)ovrflw) & 4) ovrflw++;
++ pCppArgs[nPos] = ovrflw;
++ pUnoArgs[nPos] = ovrflw;
++ ovrflw += 2;
++ }
++ break;
++
++ case typelib_TypeClass_BYTE:
++ case typelib_TypeClass_BOOLEAN:
++ if (ng < 8) {
++ pCppArgs[nPos] = (((char *)gpreg) + 3);
++ pUnoArgs[nPos] = (((char *)gpreg) + 3);
++ ng++;
++ gpreg++;
++ } else {
++ pCppArgs[nPos] = (((char *)ovrflw) + 3);
++ pUnoArgs[nPos] = (((char *)ovrflw) + 3);
++ ovrflw++;
++ }
++ break;
++
++ case typelib_TypeClass_CHAR:
++ case typelib_TypeClass_SHORT:
++ case typelib_TypeClass_UNSIGNED_SHORT:
++ if (ng < 8) {
++ pCppArgs[nPos] = (((char *)gpreg)+ 2);
++ pUnoArgs[nPos] = (((char *)gpreg)+ 2);
++ ng++;
++ gpreg++;
++ } else {
++ pCppArgs[nPos] = (((char *)ovrflw) + 2);
++ pUnoArgs[nPos] = (((char *)ovrflw) + 2);
++ ovrflw++;
++ }
++ break;
++
++ default:
++ if (ng < 8) {
++ pCppArgs[nPos] = gpreg;
++ pUnoArgs[nPos] = gpreg;
++ ng++;
++ gpreg++;
++ } else {
++ pCppArgs[nPos] = ovrflw;
++ pUnoArgs[nPos] = ovrflw;
++ ovrflw++;
++ }
++
++ }
++ // no longer needed
++ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++ }
++ else // ptr to complex value | ref
++ {
++ if (ng < 8) {
++ pCppArgs[nPos] = *(void **)gpreg;
++ pCppStack = gpreg;
++ ng++;
++ gpreg++;
++ } else {
++ pCppArgs[nPos] = *(void **)ovrflw;
++ pCppStack = ovrflw;
++ ovrflw++;
++ }
++
++ if (! rParam.bIn) // is pure out
++ {
++ // uno out is unconstructed mem!
++ pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize );
++ pTempIndizes[nTempIndizes] = nPos;
++ // will be released at reconversion
++ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
++ }
++ // is in/inout
++ else if (cppu_relatesToInterface( pParamTypeDescr ))
++ {
++ uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++ *(void **)pCppStack, pParamTypeDescr,
++ &pThis->pBridge->aCpp2Uno );
++ pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
++ // will be released at reconversion
++ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
++ }
++ else // direct way
++ {
++ pUnoArgs[nPos] = *(void **)pCppStack;
++ // no longer needed
++ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++ }
++ }
++ }
++
++ // ExceptionHolder
++ uno_Any aUnoExc; // Any will be constructed by callee
++ uno_Any * pUnoExc = &aUnoExc;
++
++ // invoke uno dispatch call
++ (*pThis->pUnoI->pDispatcher)( pThis->pUnoI, pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
++
++ // in case an exception occured...
++
++ if (pUnoExc)
++ {
++ // destruct temporary in/inout params
++ for ( ; nTempIndizes--; )
++ {
++ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
++
++ if (pParams[nIndex].bIn) // is in/inout => was constructed
++ uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 );
++ TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
++ }
++ if (pReturnTypeDescr)
++ TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
++
++ gcc291_linux_powerpc_raiseException( &aUnoExc, &pThis->pBridge->aUno2Cpp ); // has to destruct the any
++
++ // is here for dummy
++ return typelib_TypeClass_VOID;
++ }
++ else // else no exception occured...
++ {
++ // temporary params
++ for ( ; nTempIndizes--; )
++ {
++ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
++ typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
++
++ if (pParams[nIndex].bOut) // inout/out
++ {
++ // convert and assign
++ uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
++ uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
++ &pThis->pBridge->aUno2Cpp );
++ }
++ // destroy temp uno param
++ uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
++
++ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++ }
++ // return
++ if (pCppReturn) // has complex return
++ {
++ if (pUnoReturn != pCppReturn) // needs reconversion
++ {
++ uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
++ &pThis->pBridge->aUno2Cpp );
++ // destroy temp uno return
++ uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
++ }
++ // complex return ptr is set to return reg
++ *(void **)pRegisterReturn = pCppReturn;
++ }
++ if (pReturnTypeDescr)
++ {
++ typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
++ TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
++ return eRet;
++ }
++ else
++ return typelib_TypeClass_VOID;
++ }
++}
++
++
++//==================================================================================================
++static typelib_TypeClass cpp_mediate(
++ sal_Int32 nVtableCall,
++ void ** gpreg, void ** fpreg, void ** ovrflw,
++ sal_Int64 * pRegisterReturn /* space for register return */ )
++{
++ OSL_ENSURE( sizeof(sal_Int32)==sizeof(void *), "### unexpected!" );
++
++ // 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 )
++ {
++ nVtableCall &= 0x7fffffff;
++ pCppI = (cppu_cppInterfaceProxy *)(XInterface *)*(gpreg +1);
++ }
++ else
++ pCppI = (cppu_cppInterfaceProxy *)(XInterface *)*(gpreg);
++
++ typelib_InterfaceTypeDescription * pTypeDescr = pCppI->pTypeDescr;
++
++ OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex,
++ "### illegal vtable index!" );
++ if (nVtableCall >= pTypeDescr->nMapFunctionIndexToMemberIndex)
++ {
++ throw RuntimeException( OUString::createFromAscii("illegal vtable index!"), (XInterface *)pCppI );
++ }
++
++ // determine called method
++ OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
++ sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nVtableCall];
++ OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" );
++
++ TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
++
++ typelib_TypeClass eRet;
++ switch (aMemberDescr.get()->eTypeClass)
++ {
++ case typelib_TypeClass_INTERFACE_ATTRIBUTE:
++ {
++ if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nVtableCall)
++ {
++ // is GET method
++ eRet = cpp2uno_call(
++ pCppI, aMemberDescr.get(),
++ ((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
++ 0, 0, // no params
++ gpreg, fpreg, ovrflw, pRegisterReturn );
++ }
++ else
++ {
++ // 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 );
++ }
++ break;
++ }
++ case typelib_TypeClass_INTERFACE_METHOD:
++ {
++ // is METHOD
++ switch (nVtableCall)
++ {
++ 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->pBridge->pCppEnv->getRegisteredInterface)(
++ pCppI->pBridge->pCppEnv,
++ (void **)&pInterface, pCppI->oid.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;
++}
++
++//==================================================================================================
++class MediateClassData
++{
++public:
++ struct ClassDataBuffer
++ {
++ void* m_pVTable;
++
++ ~ClassDataBuffer();
++ };
++private:
++
++ map< OUString, ClassDataBuffer* > m_aClassData;
++ Mutex m_aMutex;
++
++ void createVTable( ClassDataBuffer*, typelib_InterfaceTypeDescription* );
++public:
++ const ClassDataBuffer* getClassData( typelib_InterfaceTypeDescription* );
++
++ MediateClassData() {}
++ ~MediateClassData();
++};
++//__________________________________________________________________________________________________
++MediateClassData::ClassDataBuffer::~ClassDataBuffer()
++{
++ delete m_pVTable;
++}
++
++//__________________________________________________________________________________________________
++MediateClassData::~MediateClassData()
++{
++ TRACE( "> calling ~MediateClassData(): freeing mediate vtables... <\n" );
++
++ // this MUST be the absolute last one which is called!
++ for ( map< OUString, ClassDataBuffer* >::iterator iPos( m_aClassData.begin() ); iPos != m_aClassData.end(); ++iPos )
++ {
++ // todo
++// delete (*iPos).second;
++ }
++}
++
++//__________________________________________________________________________________________________
++
++const MediateClassData::ClassDataBuffer* MediateClassData::getClassData( typelib_InterfaceTypeDescription* pType )
++{
++ MutexGuard aGuard( m_aMutex );
++
++ map< OUString, ClassDataBuffer* >::iterator element = m_aClassData.find( pType->aBase.pTypeName );
++ if( element != m_aClassData.end() )
++ return (*element).second;
++
++ ClassDataBuffer* pBuffer = new ClassDataBuffer();
++ createVTable( pBuffer, pType );
++ m_aClassData[ pType->aBase.pTypeName ] = pBuffer;
++ return pBuffer;
++}
++
++
++//==================================================================================================
++/**
++ * is called on incoming vtable calls
++ * (called by asm snippets)
++ */
++static void cpp_vtable_call(int nTableEntry, void** gpregptr, void** fpregptr, void** ovrflw)
++{
++ sal_Int32 gpreg[8];
++ double fpreg[8];
++
++ memcpy( gpreg, gpregptr, 32 );
++ memcpy( fpreg, fpregptr, 64 );
++ volatile long nRegReturn[2];
++
++ sal_Bool bComplex = nTableEntry & 0x80000000 ? sal_True : sal_False;
++
++ typelib_TypeClass aType =
++ cpp_mediate( nTableEntry, (void**)gpreg, (void**)fpreg, ovrflw, (sal_Int64*)nRegReturn );
++
++ switch( aType )
++ {
++ // move return value into register space
++ // (will be loaded by machine code snippet)
++
++ case typelib_TypeClass_BOOLEAN:
++ case typelib_TypeClass_BYTE:
++ __asm__( "lbz 3,%0\n\t" : :
++ "m"(nRegReturn[0]) );
++ break;
++ case typelib_TypeClass_CHAR:
++ case typelib_TypeClass_SHORT:
++ case typelib_TypeClass_UNSIGNED_SHORT:
++ __asm__( "lhz 3,%0\n\t" : :
++ "m"(nRegReturn[0]) );
++ break;
++ case typelib_TypeClass_FLOAT:
++ __asm__( "lfs 1,%0\n\t" : :
++ "m" (*((float*)nRegReturn)) );
++ break;
++ case typelib_TypeClass_DOUBLE:
++ __asm__( "lfd 1,%0\n\t" : :
++ "m" (*((double*)nRegReturn)) );
++ break;
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ __asm__( "lwz 4,%0\n\t" : :
++ "m"(nRegReturn[1]) );
++ default:
++ __asm__( "lwz 3,%0\n\t" : :
++ "m"(nRegReturn[0]) );
++ break;
++ }
++
++}
++
++//__________________________________________________________________________________________________
++void flush_icache(char *addr)
++{
++ __asm__ volatile (
++ "dcbf 0,%0;"
++ "sync;"
++ "icbi 0,%0;"
++ "sync;"
++ "isync;"
++ : : "r"(addr) : "memory");
++}
++
++void flush_range(char * addr1, int size)
++{
++#define MIN_LINE_SIZE 16
++ int i;
++ for (i = 0; i < size; i += MIN_LINE_SIZE)
++ flush_icache(addr1+i);
++ flush_icache(addr1+size-1);
++}
++
++
++//__________________________________________________________________________________________________
++
++void MediateClassData::createVTable( ClassDataBuffer* pBuffer, typelib_InterfaceTypeDescription* pType )
++{
++ // get all member functions
++ list< sal_Bool > aComplexReturn;
++
++ for( int n = 0; n < pType->nAllMembers; n++ )
++ {
++ typelib_TypeDescription* pMember = NULL;
++ TYPELIB_DANGER_GET( &pMember, pType->ppAllMembers[n] );
++ if( pMember->eTypeClass == typelib_TypeClass_INTERFACE_ATTRIBUTE )
++ {
++ typelib_TypeDescription * pRetTD = 0;
++ TYPELIB_DANGER_GET( &pRetTD, ((typelib_InterfaceAttributeTypeDescription *)pMember)->pAttributeTypeRef );
++ // get method
++ aComplexReturn.push_back( !cppu_isSimpleType( pRetTD ) );
++ // set method
++ if( ! ((typelib_InterfaceAttributeTypeDescription*)pMember)->bReadOnly )
++ aComplexReturn.push_back( sal_False );
++ TYPELIB_DANGER_RELEASE( pRetTD );
++ }
++ else
++ {
++ typelib_TypeDescription * pRetTD = 0;
++ TYPELIB_DANGER_GET( &pRetTD, ((typelib_InterfaceMethodTypeDescription *)pMember)->pReturnTypeRef );
++ aComplexReturn.push_back( !cppu_isSimpleType( pRetTD ) );
++ TYPELIB_DANGER_RELEASE( pRetTD );
++ }
++ TYPELIB_DANGER_RELEASE( pMember );
++ }
++
++ int nSize = aComplexReturn.size();
++ const int nSnippetSize = 100;
++ // char * pSpace = (char *)rtl_allocateMemory( (2*(nSize+2)*sizeof(void *)) + (nSize*nSnippetSize) );
++ char * pSpace = (char *)rtl_allocateMemory( (nSize+2)*sizeof(void *) + (nSize*nSnippetSize) );
++ pBuffer->m_pVTable = (void*)pSpace;
++
++ // char * pCode = pSpace + (2*(nSize+2)*sizeof(void *));
++ char * pCode = pSpace + ((nSize+2)*sizeof(void *));
++ void ** pvft = (void **)pSpace;
++ pvft[0] = NULL;
++ pvft[1] = NULL;
++
++ // setup vft and code
++
++ for ( sal_Int32 nPos = 0; nPos < nSize; ++nPos )
++ {
++ unsigned long * codeSnip = (unsigned long *)(pCode + (nPos*nSnippetSize));
++ pvft[nPos+2] = codeSnip;
++ unsigned long nTablePos = nPos;
++ sal_Bool bComplex = aComplexReturn.front();
++ if( bComplex )
++ nTablePos |= 0x80000000;
++ aComplexReturn.pop_front();
++
++ /* generate this code */
++
++ // # so first save gpr 3 to gpr 10 (aligned to 4)
++ // stw r3, -512(r1)
++ // stw r4, -508(r1)
++ // stw r5, -504(r1)
++ // stw r6, -500(r1)
++ // stw r7, -496(r1)
++ // stw r8, -492(r1)
++ // stw r9, -488(r1)
++ // stw r10,-484(r1)
++
++ // # next save fpr 1 to fpr 8 (aligned to 8)
++ // stfd f1, -480(r1)
++ // stfd f2, -472(r1)
++ // stfd f3, -464(r1)
++ // stfd f4, -456(r1)
++ // stfd f5, -448(r1)
++ // stfd f6, -440(r1)
++ // stfd f7, -432(r1)
++ // stfd f8, -424(r1)
++
++ // # now here is where cpp_vtable_call must go
++ // lis r3,0xdead
++ // ori r3,r3,0xbeef
++ // mtctr r3
++
++ // # now load up the the table entry number
++ // lis r3, 0xdead
++ // ori r3,r3,0xbeef
++
++ // #now load up the pointer to the saved gpr registers
++ // addi r4,r1,-512
++
++ // #now load up the pointer to the saved fpr registers
++ // addi r5,r1,-480
++
++ // #now load up the pointer to the overflow call stack
++ // addi r6,r1,8 # frame pointer plus 8
++
++ // bctr
++
++ * codeSnip++ = 0x9061fe00;
++ * codeSnip++ = 0x9081fe04;
++ * codeSnip++ = 0x90a1fe08;
++ * codeSnip++ = 0x90c1fe0c;
++ * codeSnip++ = 0x90e1fe10;
++ * codeSnip++ = 0x9101fe14;
++ * codeSnip++ = 0x9121fe18;
++ * codeSnip++ = 0x9141fe1c;
++ * codeSnip++ = 0xd821fe20;
++ * codeSnip++ = 0xd841fe28;
++ * codeSnip++ = 0xd861fe30;
++ * codeSnip++ = 0xd881fe38;
++ * codeSnip++ = 0xd8a1fe40;
++ * codeSnip++ = 0xd8c1fe48;
++ * codeSnip++ = 0xd8e1fe50;
++ * codeSnip++ = 0xd901fe58;
++ * codeSnip++ = 0x3c600000 | (((unsigned long)cpp_vtable_call) >> 16);
++ * codeSnip++ = 0x60630000 | (((unsigned long)cpp_vtable_call) & 0x0000FFFF);
++ * codeSnip++ = 0x7c6903a6;
++ * codeSnip++ = 0x3c600000 | (nTablePos >> 16);
++ * codeSnip++ = 0x60630000 | (nTablePos & 0x0000FFFF);
++ * codeSnip++ = 0x3881fe00;
++ * codeSnip++ = 0x38a1fe20;
++ * codeSnip++ = 0x38c10008;
++ * codeSnip++ = 0x4e800420;
++
++ flush_range((char*)pvft[nPos + 2],nSnippetSize);
++ }
++}
++
++
++//==================================================================================================
++void SAL_CALL cppu_cppInterfaceProxy_patchVtable(
++ XInterface * pCppI, typelib_InterfaceTypeDescription * pTypeDescr )
++{
++ static MediateClassData * s_pMediateClassData = 0;
++ if (! s_pMediateClassData)
++ {
++ MutexGuard aGuard( Mutex::getGlobalMutex() );
++ if (! s_pMediateClassData)
++ {
++#ifdef LEAK_STATIC_DATA
++ s_pMediateClassData = new MediateClassData();
++#else
++ static MediateClassData s_aMediateClassData;
++ s_pMediateClassData = &s_aMediateClassData;
++#endif
++ }
++ }
++ *(const void **)pCppI = s_pMediateClassData->getClassData( pTypeDescr )->m_pVTable;
++}
++
++}
++
++//##################################################################################################
++extern "C" SAL_DLLEXPORT 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 );
++}
++//##################################################################################################
++extern "C" SAL_DLLEXPORT void SAL_CALL uno_initEnvironment( uno_Environment * pCppEnv )
++ SAL_THROW_EXTERN_C()
++{
++ CPPU_CURRENT_NAMESPACE::cppu_cppenv_initEnvironment( pCppEnv );
++}
++//##################################################################################################
++extern "C" SAL_DLLEXPORT void SAL_CALL uno_ext_getMapping(
++ uno_Mapping ** ppMapping, uno_Environment * pFrom, uno_Environment * pTo )
++ SAL_THROW_EXTERN_C()
++{
++ CPPU_CURRENT_NAMESPACE::cppu_ext_getMapping( ppMapping, pFrom, pTo );
++}
++
diff --git a/misc/openoffice/patches/patch-ai b/misc/openoffice/patches/patch-ai
new file mode 100644
index 00000000000..e9f7b9c1b93
--- /dev/null
+++ b/misc/openoffice/patches/patch-ai
@@ -0,0 +1,305 @@
+$NetBSD: patch-ai,v 1.1.1.1 2002/02/13 18:09:23 mrauch Exp $
+
+--- ../bridges/source/cpp_uno/gcc2_netbsd_powerpc/except.cxx.orig Sun Jan 6 11:42:57 2002
++++ ../bridges/source/cpp_uno/gcc2_netbsd_powerpc/except.cxx
+@@ -0,0 +1,300 @@
++#include <dlfcn.h>
++#include <new.h>
++#include <typeinfo>
++#if STLPORT_VERSION<321
++#include <map.h>
++#else
++#include <map>
++#endif
++#ifndef _RTL_ALLOC_H_
++#include <rtl/alloc.h>
++#endif
++#ifndef _OSL_DIAGNOSE_H_
++#include <osl/diagnose.h>
++#endif
++
++#ifndef _BRIDGES_CPP_UNO_BRIDGE_HXX_
++#include <bridges/cpp_uno/bridge.hxx>
++#endif
++#ifndef _TYPELIB_TYPEDESCRIPTION_HXX_
++#include <typelib/typedescription.hxx>
++#endif
++#ifndef _COM_SUN_STAR_UNO_ANY_HXX_
++#include <com/sun/star/uno/Any.hxx>
++#endif
++
++#include <rtl/strbuf.hxx>
++
++#include "gcc2_netbsd_powerpc.hxx"
++
++using namespace std;
++using namespace osl;
++using namespace rtl;
++using namespace com::sun::star::uno;
++
++namespace CPPU_CURRENT_NAMESPACE
++{
++
++//==================================================================================================
++static OString toUNOname( const OString & rRTTIname )
++{
++ OString aRet;
++
++ sal_Char* pStr = rRTTIname.getStr();
++ sal_Char* pOrg = pStr;
++
++ // check for namespace
++ if( *pStr == '_' )
++ pStr++;
++ if( *pStr == 'Q' )
++ {
++ pStr++;
++ if( *pStr++ == '_' )
++ {
++ while( *pStr++ != '_' )
++ ;
++ }
++ }
++
++ while( *pStr )
++ {
++ int nCharsToCopy = 0;
++ while( *pStr >= '0' && *pStr <= '9' )
++ nCharsToCopy = 10*nCharsToCopy + (int)(*pStr++ - '0');
++ if( aRet.getLength() )
++ aRet += ".";
++ aRet += rRTTIname.copy( pStr - pOrg, nCharsToCopy );
++ pStr += nCharsToCopy;
++ }
++
++ return aRet;
++}
++//==================================================================================================
++static OString toRTTIname( const OString & rUNOname )
++{
++ if( ! rUNOname.getLength() )
++ return OString();
++
++ OStringBuffer aRet( 64 );
++
++ sal_Int32 nIndex = 0;
++ sal_Int32 nToken = 0;
++ do
++ {
++ OString aToken( rUNOname.getToken( 0, '.', nIndex ) );
++ aRet.append( OString::valueOf( (sal_Int32)aToken.getLength() ) );
++ aRet.append( aToken );
++ ++nToken;
++ }
++ while (nIndex >= 0);
++
++ OString ret( aRet.makeStringAndClear() );
++
++ if( nToken >= 2 )
++ {
++ OStringBuffer buf( 64 );
++ buf.append( 'Q' );
++ if( nToken > 9 )
++ aRet.append( '_' );
++ buf.append( OString::valueOf( (sal_Int32)nToken ) );
++ if( nToken > 9 )
++ aRet.append( '_' );
++ buf.append( ret );
++ ret = buf.makeStringAndClear();
++ }
++
++ return ret;
++}
++
++
++//##################################################################################################
++//#### RTTI simulation #############################################################################
++//##################################################################################################
++
++class RTTIHolder
++{
++ static std::map< OString, void* > aAllRTTI;
++public:
++ static void* getRTTI( const OString& rTypename );
++ static void* getRTTI_UnoName( const OString& rUnoTypename )
++ { return getRTTI( toRTTIname( rUnoTypename ) ); }
++
++ static void* insertRTTI( const OString& rTypename );
++ static void* insertRTTI_UnoName( const OString& rTypename )
++ { return insertRTTI( toRTTIname( rTypename ) ); }
++
++ // rSuperTypename MUST exist !!!
++ static void* insertRTTI( const OString& rTypename, const OString& rSuperTypename );
++ static void* insertRTTI_UnoNames( const OString& rTypename, const OString& rSuperTypename )
++ { return insertRTTI( toRTTIname( rTypename ), toRTTIname( rSuperTypename ) ); }
++
++ // for complex RTTI
++ static void* insertRTTI( const OString& rTypename, void* pRTTI );
++ static void* insertRTTI_UnoName( const OString&rTypename, void* pRTTI )
++ { return insertRTTI( toRTTIname( rTypename ), pRTTI ); }
++};
++
++std::map< OString, void* > RTTIHolder::aAllRTTI;
++
++void* RTTIHolder::getRTTI( const OString& rTypename )
++{
++ std::map< OString, void* >::iterator element;
++
++ element = aAllRTTI.find( rTypename );
++ return element != aAllRTTI.end() ? (*element).second : NULL;
++}
++
++void* RTTIHolder::insertRTTI( const OString& rTypename )
++{
++#ifdef DEBUG
++ fprintf( stderr, "generating base RTTI: %s\n", rTypename.getStr() );
++#endif
++ void* pRTTI = new __user_type_info( strdup( rTypename.getStr() ) );
++ aAllRTTI[ rTypename ] = pRTTI;
++ return pRTTI;
++}
++
++void* RTTIHolder::insertRTTI( const OString& rTypename, const OString& rSuperTypename )
++{
++ OSL_ENSURE( ! getRTTI( rTypename ), "insert RTTI called on already existing type" );
++ void* pRTTI = new __si_type_info( strdup( rTypename.getStr() ), *(__user_type_info*)getRTTI( rSuperTypename ) );
++ aAllRTTI[ rTypename ] = pRTTI;
++ return pRTTI;
++}
++
++void* RTTIHolder::insertRTTI( const OString& rTypename, void* pRTTI )
++{
++ aAllRTTI[ rTypename ] = pRTTI;
++ return pRTTI;
++}
++
++//--------------------------------------------------------------------------------------------------
++
++static void* generateRTTI( typelib_CompoundTypeDescription * pCompTypeDescr )
++{
++ OString aCompTypeName( OUStringToOString( pCompTypeDescr->aBase.pTypeName, RTL_TEXTENCODING_ASCII_US ) );
++ void* pRTTI = RTTIHolder::getRTTI_UnoName( aCompTypeName );
++ if( pRTTI )
++ return pRTTI;
++
++ if( ! pCompTypeDescr->pBaseTypeDescription )
++ // this is a base type
++ return RTTIHolder::insertRTTI_UnoName( aCompTypeName );
++ if( ! pCompTypeDescr->pBaseTypeDescription->pBaseTypeDescription )
++ {
++ OString aBasename(
++ OUStringToOString( pCompTypeDescr->pBaseTypeDescription->aBase.pTypeName, RTL_TEXTENCODING_ASCII_US )
++ );
++ if( ! RTTIHolder::getRTTI_UnoName( aBasename ) )
++ RTTIHolder::insertRTTI_UnoName( aBasename );
++
++ // this type has only one supertype
++ return RTTIHolder::insertRTTI_UnoNames( aCompTypeName, aBasename );
++ }
++
++ // create __si_type_info
++ void* pSuperRTTI = generateRTTI( pCompTypeDescr->pBaseTypeDescription );
++ OString aCompTypeRTTIname( toRTTIname( aCompTypeName ) );
++#ifdef DEBUG
++ fprintf( stderr, "generating RTTI: %s\n", aCompTypeRTTIname.getStr() );
++#endif
++ pRTTI = new __si_type_info( strdup( aCompTypeRTTIname.getStr() ),
++ *(__user_type_info*)pSuperRTTI );
++#if 0
++ __class_type_info::base_info* pBaseInfo = new __class_type_info::base_info;
++ pBaseInfo->base = (__user_type_info*)pSuperRTTI;
++ pBaseInfo->offset = 0;
++ pBaseInfo->is_virtual = 0;
++ pBaseInfo->access1 = __class_type_info::PUBLIC;
++
++ OString aCompTypeRTTIname( toRTTIname( aCompTypeName ) );
++ pRTTI = new __class_type_info(
++ strdup( aCompTypeRTTIname.getStr() ),
++ pBaseInfo,
++ 1
++ );
++#endif
++ return RTTIHolder::insertRTTI_UnoName( aCompTypeName, pRTTI );
++}
++
++//--------------------------------------------------------------------------------------------------
++
++static Mutex s_aMutex;
++static std::map< void*, typelib_TypeDescription* > aExceptionMap;
++
++static void deleteException( void* pExc, int nDummy )
++{
++ MutexGuard aGuard( s_aMutex );
++ std::map< void*, typelib_TypeDescription* >::iterator element =
++ aExceptionMap.find( pExc );
++ OSL_ASSERT( element != aExceptionMap.end() );
++ if( element != aExceptionMap.end() )
++ {
++ typelib_TypeDescription* pType = (*element).second;
++ aExceptionMap.erase( pExc );
++ uno_destructData( pExc, pType, cpp_release );
++ typelib_typedescription_release( pType );
++ }
++}
++
++//__________________________________________________________________________________________________
++
++//##################################################################################################
++//#### exported ####################################################################################
++//##################################################################################################
++
++
++void gcc291_netbsd_powerpc_raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
++{
++ // construct cpp exception object
++ typelib_TypeDescription * pTypeDescr = 0;
++ typelib_typedescriptionreference_getDescription( &pTypeDescr, pUnoExc->pType );
++
++ void * pCppExc = __eh_alloc( pTypeDescr->nSize ); // will be released in generated dtor
++ uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
++
++ // destruct uno exception
++ uno_any_destruct( pUnoExc, 0 );
++
++ // a must be
++ OSL_ENSURE( sizeof(sal_Int32) == sizeof(void *), "### pointer size differs from sal_Int32!" );
++
++ typelib_CompoundTypeDescription * pCompTypeDescr = (typelib_CompoundTypeDescription *)pTypeDescr;
++ void* pRTTI = generateRTTI( pCompTypeDescr );
++
++ {
++ MutexGuard aGuard( s_aMutex );
++ aExceptionMap[ pCppExc ] = pTypeDescr;
++ }
++
++ __cp_push_exception( pCppExc, pRTTI, deleteException );
++ __throw();
++
++}
++
++void gcc291_netbsd_powerpc_fillUnoException( cp_eh_info* pInfo, uno_Any* pExc, uno_Mapping * pCpp2Uno )
++{
++ OUString aName( OStringToOUString(
++ toUNOname( ((__user_type_info*)(pInfo->type))->name() ), RTL_TEXTENCODING_ASCII_US ) );
++
++ typelib_TypeDescription * pExcTypeDescr = 0;
++ typelib_typedescription_getByName(
++ &pExcTypeDescr,
++ aName.pData );
++ OSL_ENSURE( pExcTypeDescr, "could not get type description for exception" );
++
++ if (pExcTypeDescr)
++ {
++ // construct cpp exception any
++ Any aAny( pInfo->value, pExcTypeDescr ); // const_cast
++ typelib_typedescription_release( pExcTypeDescr );
++ // construct uno exception any
++ typelib_TypeDescription* pAnyDescr = 0;
++ getCppuType( (const Any *)0 ).getDescription( &pAnyDescr );
++ uno_copyAndConvertData( pExc, &aAny, pAnyDescr, pCpp2Uno );
++ typelib_typedescription_release( pAnyDescr );
++ }
++}
++
++}
++
diff --git a/misc/openoffice/patches/patch-aj b/misc/openoffice/patches/patch-aj
new file mode 100644
index 00000000000..b568009a47d
--- /dev/null
+++ b/misc/openoffice/patches/patch-aj
@@ -0,0 +1,100 @@
+$NetBSD: patch-aj,v 1.1.1.1 2002/02/13 18:09:23 mrauch Exp $
+
+--- ../bridges/source/cpp_uno/gcc2_netbsd_powerpc/gcc2_netbsd_powerpc.hxx.orig Sun Jan 6 11:43:06 2002
++++ ../bridges/source/cpp_uno/gcc2_netbsd_powerpc/gcc2_netbsd_powerpc.hxx
+@@ -0,0 +1,95 @@
++
++#ifndef _RTL_STRING_HXX_
++#include <rtl/string.hxx>
++#endif
++#include <typeinfo>
++
++typedef struct _uno_Any uno_Any;
++typedef struct _uno_Mapping uno_Mapping;
++
++// private egcs type info structs
++
++// type_info for a simple class ( no base classes or an enum )
++struct __user_type_info : public std::type_info {
++ __user_type_info (const char *n) : type_info (n) {}
++
++ // dynamic cast. built by gcc
++ virtual void* dcast (const type_info &, int, void *,
++ const type_info * = 0, void * = 0) const;
++};
++// type_info for a class with one public, nonvirtual base class.
++
++class __si_type_info : public __user_type_info {
++ const __user_type_info &base;
++
++public:
++ __si_type_info (const char *n, const __user_type_info &b)
++ : __user_type_info (n), base (b) { }
++
++ // dynamic cast. built by gcc
++ virtual void *dcast (const type_info &, int, void *,
++ const type_info * = 0, void * = 0) const;
++};
++
++// type_info for a general class.
++
++typedef unsigned int USItype __attribute__ ((mode (SI)));
++
++struct __class_type_info : public __user_type_info {
++ enum access { PUBLIC = 1, PROTECTED = 2, PRIVATE = 3 };
++
++ struct base_info {
++ const __user_type_info *base;
++ USItype offset: 29;
++ bool is_virtual: 1;
++ access access1: 2;
++ };
++
++ const base_info *base_list;
++ size_t n_bases;
++
++ __class_type_info (const char *name, const base_info *bl, size_t bn)
++ : __user_type_info (name), base_list (bl), n_bases (bn) {}
++
++ // dynamic cast. built by gcc
++ virtual void* dcast (const type_info &, int, void *,
++ const type_info * = 0, void * = 0) const;
++};
++
++struct cp_eh_info
++{
++ struct __eh_info
++ {
++ void* match_function;
++ short language;
++ short version;
++ };
++ __eh_info eh_info;
++ void *value;
++ void *type;
++ void (*cleanup)(void *, int);
++ bool caught;
++ cp_eh_info *next;
++ long handlers;
++ void *original_value;
++};
++
++extern "C" {
++ void __cp_push_exception( void*, void*, void(*)(void*, int) );
++ void __throw();
++}
++
++
++//##################################################################################################
++//#### exceptions ##################################################################################
++//##################################################################################################
++
++namespace CPPU_CURRENT_NAMESPACE
++{
++
++void gcc291_netbsd_powerpc_raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp );
++void gcc291_netbsd_powerpc_fillUnoException( cp_eh_info*, uno_Any*, uno_Mapping * pCpp2Uno );
++
++}
++
++
diff --git a/misc/openoffice/patches/patch-ak b/misc/openoffice/patches/patch-ak
new file mode 100644
index 00000000000..9d1c4f6e7c5
--- /dev/null
+++ b/misc/openoffice/patches/patch-ak
@@ -0,0 +1,53 @@
+$NetBSD: patch-ak,v 1.1.1.1 2002/02/13 18:09:23 mrauch Exp $
+
+--- ../bridges/source/cpp_uno/gcc2_netbsd_powerpc/makefile.mk.orig Sun Jan 6 11:43:15 2002
++++ ../bridges/source/cpp_uno/gcc2_netbsd_powerpc/makefile.mk
+@@ -0,0 +1,48 @@
++
++PRJ=..$/..$/..
++
++PRJNAME=bridges
++TARGET=gcc2_uno
++LIBTARGET=no
++ENABLE_EXCEPTIONS=TRUE
++NO_BSYMBOLIC=TRUE
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE : svpre.mk
++.INCLUDE : settings.mk
++.INCLUDE : sv.mk
++
++# --- Files --------------------------------------------------------
++
++.IF "$(COM)$(OS)$(CPU)" == "GCCNETBSDP"
++
++CFLAGSNOOPT=-O0
++NOOPTFILES=$(SLO)$/uno2cpp.obj
++
++SLOFILES= \
++ $(SLO)$/except.obj \
++ $(SLO)$/cpp2uno.obj \
++ $(SLO)$/uno2cpp.obj
++
++SHL1TARGET= $(TARGET)
++
++SHL1DEF= $(MISC)$/$(SHL1TARGET).def
++SHL1IMPLIB= i$(TARGET)
++SHL1VERSIONMAP=..$/..$/bridge_exports.map
++
++SHL1OBJS= \
++ $(SLO)$/except.obj \
++ $(SLO)$/cpp2uno.obj \
++ $(SLO)$/uno2cpp.obj
++
++SHL1STDLIBS= \
++ $(CPPULIB) \
++ $(SALLIB)
++
++.ENDIF
++
++# --- Targets ------------------------------------------------------
++
++.INCLUDE : target.mk
++
diff --git a/misc/openoffice/patches/patch-al b/misc/openoffice/patches/patch-al
new file mode 100644
index 00000000000..89738dac9b0
--- /dev/null
+++ b/misc/openoffice/patches/patch-al
@@ -0,0 +1,620 @@
+$NetBSD: patch-al,v 1.1.1.1 2002/02/13 18:09:23 mrauch Exp $
+
+--- ../bridges/source/cpp_uno/gcc2_netbsd_powerpc/uno2cpp.cxx.orig Sun Jan 6 11:43:24 2002
++++ ../bridges/source/cpp_uno/gcc2_netbsd_powerpc/uno2cpp.cxx
+@@ -0,0 +1,615 @@
++#include <stdio.h>
++
++#include <malloc.h>
++#ifndef _RTL_ALLOC_H_
++#include <rtl/alloc.h>
++#endif
++
++#ifndef _UNO_DATA_H_
++#include <uno/data.h>
++#endif
++#ifndef _BRIDGES_CPP_UNO_BRIDGE_HXX_
++#include <bridges/cpp_uno/bridge.hxx>
++#endif
++#ifndef _BRIDGES_CPP_UNO_TYPE_MISC_HXX_
++#include <bridges/cpp_uno/type_misc.hxx>
++#endif
++
++#include "gcc2_netbsd_powerpc.hxx"
++
++using namespace rtl;
++using namespace com::sun::star::uno;
++
++namespace CPPU_CURRENT_NAMESPACE
++{
++
++//==================================================================================================
++static void callVirtualMethod( void * pThis,
++ sal_Int32 nVtableIndex,
++ void * pRegisterReturn,
++ typelib_TypeClass eReturnType,
++ char * pPT,
++ sal_Int32 * pStackLongs,
++ sal_Int32 nStackLongs,
++ uno_Any ** pExc,
++ uno_Mapping * pCpp2uno)
++{
++ // parameter list is mixed list of * and values
++ // reference parameters are pointers
++
++ // OSL_ENSURE( pStackLongs && pThis, "### null ptr!" );
++ // OSL_ENSURE( (sizeof(void *) == 4) &&
++ // (sizeof(sal_Int32) == 4), "### unexpected size of int!" );
++ // OSL_ENSURE( nStackLongs && pStackLongs, "### no stack in callVirtualMethod !" );
++
++ /* KBH: tried to do this right but ppc calling conventions are wierd
++ to say the least */
++
++ /* the basic idea here is to use gpr[8] as a storage area for
++ the future values of registers r3 to r10 needed for the call,
++ and similarly fpr[8] as a storage area for the future values
++ of floating point registers f1 to f8
++ */
++
++ unsigned long * mfunc; /* actual function to be invoked */
++ cp_eh_info* pX;
++ void (*ptr)();
++ int gpr[8]; /* storage for gpregisters, map to r3-r10 */
++ int off; /* offset used to find function */
++ double fpr[8]; /* storage for fpregisters, map to f1-f8 */
++ int n; /* number of gprs mapped so far */
++ int f; /* number of fprs mapped so far */
++ long *p; /* pointer to parameter overflow area */
++ int c; /* character of parameter type being decoded */
++ double dret; /* temporary function return values*/
++ int iret, iret2;
++
++ /* Because of the Power PC calling conventions we could be passing
++ parameters in both register types and on the stack. To create the
++ stack parameter area we need we now simply allocate local
++ variable storage param[] that is at least the size of the parameter stack
++ (more than enough space) which we can overwrite the parameters into.
++
++ Note: This keeps us from having to decode the signature twice and
++ prevents problems with later local variables.
++
++ Note: could require up to 2*nStackLongs words of parameter stack area
++ if the call has many float parameters (i.e. floats take up only 1
++ word on the stack but take 2 words in parameter area in the
++ stack frame .
++
++ Update! floats on the outgoing parameter stack only take up 1 word
++ (stfs is used) which is not correct according to the ABI but we
++ will match what the compiler does until this is figured out
++
++ */
++ __asm__ __volatile__ (
++ "rlwinm %0,%0,3,3,28\n\t"
++ "addi %0,%0,22\n\t"
++ "rlwinm %0,%0,0,4,28\n\t"
++ "lwz 0,0(1)\n\t"
++ "subf 1,%0,1\n\t"
++ "stw 0,0(1)\n\t"
++ "addi %1,1,8\n\t"
++ : : "r" (nStackLongs), "r" (p) /* no inputs */ : "0" );
++
++ /* now begin to load the C++ function arguments into storage */
++ n = 0;
++ f = 0;
++
++ /* now we need to parse the entire signature string */
++ /* until we get the END indicator */
++
++ /* treat complex return pointer like any other parameter */
++
++#if 0
++ /* Let's figure out what is really going on here*/
++ fprintf(stderr,"callVirtualMethod paramters string is %s\n",pPT);
++ int k = nStackLongs;
++ long * q = (long *)pStackLongs;
++ while (k > 0) {
++ fprintf(stderr,"uno stack is: %x\n",*q);
++ k--;
++ q++;
++ }
++#endif
++
++ /* parse the argument list up to the ending ) */
++ while (*pPT != 'X') {
++ c = *pPT;
++ switch (c) {
++ case 'D': /* type is double */
++ if (f < 8) {
++ fpr[f++] = *((double *)pStackLongs); /* store in register */
++ } else {
++ if (((long) p) & 4)
++ p++;
++ *p++ = *pStackLongs; /* or on the parameter stack */
++ *p++ = *(pStackLongs + 1);
++ }
++ pStackLongs += 2;
++ break;
++
++ case 'F': /* type is float */
++ /* this assumes that floats are stored as 1 32 bit word on param
++ stack and that if passed in parameter stack to C, should be
++ as double word.
++
++ Whoops: the abi is not actually followed by gcc, need to
++ store floats as a *single* word on outgoing parameter stack
++ to match what gcc actually does
++ */
++ if (f < 8) {
++ fpr[f++] = *((float *)pStackLongs);
++ } else {
++#if 0 /* if abi were followed */
++ if (((long) p) & 4)
++ p++;
++ *((double *)p) = *((float *)pStackLongs);
++ p += 2;
++#else
++ *((float *)p) = *((float *)pStackLongs);
++ p += 1;
++#endif
++ }
++ pStackLongs += 1;
++ break;
++
++ case 'H': /* type is long long */
++ if (n & 1) n++; /* note even elements gpr[] will map to
++ odd registers*/
++ if (n <= 6) {
++ gpr[n++] = *pStackLongs;
++ gpr[n++] = *(pStackLongs+1);
++ } else {
++ if (((long) p) & 4)
++ p++;
++ *p++ = *pStackLongs;
++ *p++ = *(pStackLongs+1);
++ }
++ pStackLongs += 2;
++ break;
++
++ case 'S':
++ if (n < 8) {
++ gpr[n++] = *((unsigned short*)pStackLongs);
++ } else {
++ *p++ = *((unsigned short *)pStackLongs);
++ }
++ pStackLongs += 1;
++ break;
++
++ case 'B':
++ if (n < 8) {
++ gpr[n++] = *((char *)pStackLongs);
++ } else {
++ *p++ = *((char *)pStackLongs);
++ }
++ pStackLongs += 1;
++ break;
++
++ default:
++ if (n < 8) {
++ gpr[n++] = *pStackLongs;
++ } else {
++ *p++ = *pStackLongs;
++ }
++ pStackLongs += 1;
++ break;
++ }
++ pPT++;
++ }
++
++ /* figure out the address of the function we need to invoke */
++ off = nVtableIndex + 2; // first two slots are empty
++ off = off * 4; // 4 bytes per slot
++ mfunc = *((unsigned long **)pThis); // get the address of the vtable
++ mfunc = (unsigned long *)((char *)mfunc + off); // get the address from the vtable entry at offset
++ mfunc = *((unsigned long **)mfunc); // the function is stored at the address
++ ptr = (void (*)())mfunc;
++
++ try {
++
++ /* Set up the machine registers and invoke the function */
++
++ __asm__ __volatile__ (
++ "lwz 3, 0(%0)\n\t"
++ "lwz 4, 4(%0)\n\t"
++ "lwz 5, 8(%0)\n\t"
++ "lwz 6, 12(%0)\n\t"
++ "lwz 7, 16(%0)\n\t"
++ "lwz 8, 20(%0)\n\t"
++ "lwz 9, 24(%0)\n\t"
++ "lwz 10, 28(%0)\n\t"
++ "lfd 1, 0(%1)\n\t"
++ "lfd 2, 8(%1)\n\t"
++ "lfd 3, 16(%1)\n\t"
++ "lfd 4, 24(%1)\n\t"
++ "lfd 5, 32(%1)\n\t"
++ "lfd 6, 40(%1)\n\t"
++ "lfd 7, 48(%1)\n\t"
++ "lfd 8, 56(%1)\n\t"
++ : : "r" (gpr), "r" (fpr)
++ : "0", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"
++ );
++
++ (*ptr)();
++
++ __asm__ __volatile__ (
++ "mr %1, 3\n\t"
++ "mr %2, 4\n\t"
++ "fmr %0, 1\n\t"
++ : "=f" (dret), "=r" (iret), "=r" (iret2) : );
++
++ *pExc = 0;
++ }
++
++ catch( ... )
++ {
++ pX = (cp_eh_info*)__cp_eh_info();
++ gcc291_netbsd_powerpc_fillUnoException( pX, *pExc, pCpp2uno );
++ }
++
++ switch( eReturnType )
++ {
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ ((long*)pRegisterReturn)[0] = iret;
++ ((long*)pRegisterReturn)[1] = iret2;
++ case typelib_TypeClass_LONG:
++ case typelib_TypeClass_UNSIGNED_LONG:
++ case typelib_TypeClass_ENUM:
++ ((long*)pRegisterReturn)[0] = iret;
++ break;
++ case typelib_TypeClass_CHAR:
++ case typelib_TypeClass_SHORT:
++ case typelib_TypeClass_UNSIGNED_SHORT:
++ *(unsigned short*)pRegisterReturn = (unsigned short)iret;
++ break;
++ case typelib_TypeClass_BOOLEAN:
++ case typelib_TypeClass_BYTE:
++ *(unsigned char*)pRegisterReturn = (unsigned char)iret;
++ break;
++ case typelib_TypeClass_FLOAT:
++ *(float*)pRegisterReturn = (float)dret;
++ break;
++ case typelib_TypeClass_DOUBLE:
++ *(double*)pRegisterReturn = dret;
++ break;
++ }
++}
++
++
++//==================================================================================================
++static void cpp_call(
++ cppu_unoInterfaceProxy * pThis,
++ sal_Int32 nVtableCall,
++ typelib_TypeDescriptionReference * pReturnTypeRef,
++ sal_Int32 nParams, typelib_MethodParameter * pParams,
++ void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
++{
++ // max space for: complex ret ptr, this, values|ptr ...
++ char * pCppStack =
++ (char *)alloca( sizeof(sal_Int32) + ((nParams+2) * sizeof(sal_Int64)) );
++ char * pCppStackStart = pCppStack;
++
++ /* KBH: need to know pararmeter types for callVirtualMethod so store then in string */
++ char * pParamType = (char *) alloca(nParams+2);
++ char * pPT = pParamType;
++
++ // return
++ typelib_TypeDescription * pReturnTypeDescr = 0;
++ TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef );
++ OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" );
++
++ void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion
++
++ if (pReturnTypeDescr)
++ {
++ if (cppu_isSimpleType( pReturnTypeDescr ))
++ {
++ pCppReturn = pUnoReturn; // direct way for simple types
++ }
++ else
++ {
++ // complex return via ptr
++ pCppReturn = *(void **)pCppStack = (cppu_relatesToInterface( pReturnTypeDescr )
++ ? alloca( pReturnTypeDescr->nSize )
++ : pUnoReturn); // direct way
++ *pPT++ = 'I'; // signify that complex return type on stack
++ pCppStack += sizeof(void *);
++ }
++ }
++ // push this
++ *(void**)pCppStack = pThis->pCppI;
++ pCppStack += sizeof( void* );
++ *pPT++ = 'I';
++
++ // stack space
++ OSL_ENSURE( sizeof(void *) == sizeof(sal_Int32), "### unexpected size!" );
++ // args
++ void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
++ // indizes of values this have to be converted (interface conversion cpp<=>uno)
++ sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams);
++ // type descriptions for reconversions
++ typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams));
++
++ sal_Int32 nTempIndizes = 0;
++
++ for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
++ {
++ const typelib_MethodParameter & rParam = pParams[nPos];
++ typelib_TypeDescription * pParamTypeDescr = 0;
++ TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
++
++ if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr ))
++ {
++ uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
++ &pThis->pBridge->aUno2Cpp );
++
++ switch (pParamTypeDescr->eTypeClass)
++ {
++ /* KBH: we need to know type of each param so that we know whether to use
++ gpr or fpr to pass in parameters:
++ Key: I - int, long, pointer, etc means pass in gpr
++ B - byte value passed in gpr
++ S - short value passed in gpr
++ F - float value pass in fpr
++ D - double value pass in fpr
++ H - long long int pass in proper pairs of gpr (3,4) (5,6), etc
++ X - indicates end of parameter description string
++ */
++ case typelib_TypeClass_LONG:
++ case typelib_TypeClass_UNSIGNED_LONG:
++ case typelib_TypeClass_ENUM:
++ *pPT++ = 'I';
++ break;
++ case typelib_TypeClass_SHORT:
++ case typelib_TypeClass_CHAR:
++ case typelib_TypeClass_UNSIGNED_SHORT:
++ *pPT++ = 'S';
++ break;
++ case typelib_TypeClass_BOOLEAN:
++ case typelib_TypeClass_BYTE:
++ *pPT++ = 'B';
++ break;
++ case typelib_TypeClass_FLOAT:
++ *pPT++ = 'F';
++ break;
++ case typelib_TypeClass_DOUBLE:
++ *pPT++ = 'D';
++ pCppStack += sizeof(sal_Int32); // extra long
++ break;
++ case typelib_TypeClass_HYPER:
++ case typelib_TypeClass_UNSIGNED_HYPER:
++ *pPT++ = 'H';
++ pCppStack += sizeof(sal_Int32); // extra long
++ }
++ // no longer needed
++ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++ }
++ else // ptr to complex value | ref
++ {
++ if (! rParam.bIn) // is pure out
++ {
++ // cpp out is constructed mem, uno out is not!
++ uno_constructData(
++ *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++ pParamTypeDescr );
++ pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call
++ // will be released at reconversion
++ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
++ }
++ // is in/inout
++ else if (cppu_relatesToInterface( pParamTypeDescr ))
++ {
++ uno_copyAndConvertData(
++ *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
++ pUnoArgs[nPos], pParamTypeDescr, &pThis->pBridge->aUno2Cpp );
++
++ pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
++ // will be released at reconversion
++ ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
++ }
++ else // direct way
++ {
++ *(void **)pCppStack = pCppArgs[nPos] = pUnoArgs[nPos];
++ // no longer needed
++ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++ }
++ /* KBH: fixme is this the right way to pass these */
++ *pPT++='I';
++ }
++ pCppStack += sizeof(sal_Int32); // standard parameter length
++ }
++ /* KBH: terminate the string */
++ *pPT++='X';
++ *pPT=0;
++
++ OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 3), "UNALIGNED STACK !!! (Please DO panic" );
++
++ callVirtualMethod(
++ pThis->pCppI, nVtableCall,
++ pCppReturn, pReturnTypeDescr->eTypeClass, pParamType,
++ (sal_Int32 *)pCppStackStart, ((pCppStack - pCppStackStart) / sizeof(sal_Int32)),
++ ppUnoExc, &pThis->pBridge->aCpp2Uno );
++
++ if (*ppUnoExc == 0) {
++ // NO exception occured...
++
++ // reconvert temporary params
++ for ( ; nTempIndizes--; )
++ {
++ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
++ typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
++
++ if (pParams[nIndex].bIn)
++ {
++ if (pParams[nIndex].bOut) // inout
++ {
++ uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
++ uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
++ &pThis->pBridge->aCpp2Uno );
++ }
++ }
++ else // pure out
++ {
++ uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
++ &pThis->pBridge->aCpp2Uno );
++ }
++ // destroy temp cpp param => cpp: every param was constructed
++ uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
++
++ TYPELIB_DANGER_RELEASE( pParamTypeDescr );
++ }
++ // return value
++ if (pCppReturn && pUnoReturn != pCppReturn)
++ {
++ uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
++ &pThis->pBridge->aCpp2Uno );
++ uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
++
++ }
++ } else {
++ // get exception
++
++ // temporary params
++ for ( ; nTempIndizes--; )
++ {
++ sal_Int32 nIndex = pTempIndizes[nTempIndizes];
++ // destroy temp cpp param => cpp: every param was constructed
++ uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release );
++ TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] );
++ }
++ // return type
++ if (pReturnTypeDescr)
++ TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
++ }
++}
++
++
++//==================================================================================================
++void SAL_CALL cppu_unoInterfaceProxy_dispatch(
++ uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
++ void * pReturn, void * pArgs[], uno_Any ** ppException )
++{
++ // is my surrogate
++ cppu_unoInterfaceProxy * pThis = (cppu_unoInterfaceProxy *)pUnoI;
++ typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
++
++ switch (pMemberDescr->eTypeClass)
++ {
++ case typelib_TypeClass_INTERFACE_ATTRIBUTE:
++ {
++ // determine vtable call index
++ 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!" );
++
++ if (pReturn)
++ {
++ // dependent dispatch
++ cpp_call(
++ pThis, nVtableCall,
++ ((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
++ 0, 0, // no params
++ pReturn, pArgs, ppException );
++ }
++ else
++ {
++ // is SET
++ typelib_MethodParameter aParam;
++ aParam.pTypeRef =
++ ((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef;
++ aParam.bIn = sal_True;
++ aParam.bOut = sal_False;
++
++ typelib_TypeDescriptionReference * pReturnTypeRef = 0;
++ OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") );
++ typelib_typedescriptionreference_new(
++ &pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
++
++ // dependent dispatch
++ cpp_call(
++ pThis, nVtableCall +1, // get, then set method
++ pReturnTypeRef,
++ 1, &aParam,
++ pReturn, pArgs, ppException );
++
++ typelib_typedescriptionreference_release( pReturnTypeRef );
++ }
++
++ break;
++ }
++ case typelib_TypeClass_INTERFACE_METHOD:
++ {
++ // determine vtable call index
++ 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!" );
++
++ switch (nVtableCall)
++ {
++ // standard calls
++ case 1: // acquire uno interface
++ (*pUnoI->acquire)( pUnoI );
++ *ppException = 0;
++ break;
++ case 2: // release uno interface
++ (*pUnoI->release)( pUnoI );
++ *ppException = 0;
++ break;
++ case 0: // queryInterface() opt
++ {
++ typelib_TypeDescription * pTD = 0;
++ TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() );
++ if (pTD)
++ {
++ uno_Interface * pInterface = 0;
++ (*pThis->pBridge->pUnoEnv->getRegisteredInterface)(
++ pThis->pBridge->pUnoEnv,
++ (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
++
++ if (pInterface)
++ {
++ ::uno_any_construct(
++ reinterpret_cast< uno_Any * >( pReturn ),
++ &pInterface, pTD, 0 );
++ (*pInterface->release)( pInterface );
++ TYPELIB_DANGER_RELEASE( pTD );
++ *ppException = 0;
++ break;
++ }
++ TYPELIB_DANGER_RELEASE( pTD );
++ }
++ } // else perform queryInterface()
++ default:
++ // dependent dispatch
++ cpp_call(
++ pThis, nVtableCall,
++ ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
++ ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
++ ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
++ pReturn, pArgs, ppException );
++ }
++ break;
++ }
++ default:
++ {
++ ::com::sun::star::uno::RuntimeException aExc(
++ OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ),
++ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
++
++ Type const & rExcType = ::getCppuType( &aExc );
++ // binary identical null reference
++ ::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 );
++ }
++ }
++}
++
++}
++
diff --git a/misc/openoffice/patches/patch-am b/misc/openoffice/patches/patch-am
new file mode 100644
index 00000000000..3b9dbb061e9
--- /dev/null
+++ b/misc/openoffice/patches/patch-am
@@ -0,0 +1,15 @@
+$NetBSD: patch-am,v 1.1.1.1 2002/02/13 18:09:23 mrauch Exp $
+
+--- ../bridges/source/prot_uno/makefile.mk.orig Tue Jan 1 14:08:48 2002
++++ ../bridges/source/prot_uno/makefile.mk
+@@ -85,8 +85,8 @@
+ SHL1TARGET= $(TARGET)
+
+ SHL1STDLIBS= \
+- $(CPPULIB) \
+- $(SALLIB)
++ $(SALLIB) \
++ $(CPPULIB)
+
+ SHL1DEPN=
+ SHL1IMPLIB= i$(TARGET)
diff --git a/misc/openoffice/patches/patch-an b/misc/openoffice/patches/patch-an
new file mode 100644
index 00000000000..6bc2cfa5f73
--- /dev/null
+++ b/misc/openoffice/patches/patch-an
@@ -0,0 +1,17 @@
+$NetBSD: patch-an,v 1.1.1.1 2002/02/13 18:09:23 mrauch Exp $
+
+--- ../comphelper/util/makefile.mk.orig Tue Jan 1 14:08:53 2002
++++ ../comphelper/util/makefile.mk
+@@ -85,11 +85,11 @@
+
+ SHL1TARGET=$(COMPHLP_TARGET)$(COMPHLP_MAJOR)
+ SHL1STDLIBS=\
++ $(SALLIB) \
+ $(CPPULIB) \
+ $(CPPUHELPERLIB) \
+ $(VOSLIB) \
+ $(OSLLIB) \
+- $(SALLIB) \
+ $(CPPRTLLIB)
+
+ SHL1DEPN=
diff --git a/misc/openoffice/patches/patch-ao b/misc/openoffice/patches/patch-ao
new file mode 100644
index 00000000000..54a1bd3b85c
--- /dev/null
+++ b/misc/openoffice/patches/patch-ao
@@ -0,0 +1,63 @@
+$NetBSD: patch-ao,v 1.1.1.1 2002/02/13 18:09:23 mrauch Exp $
+
+--- configure.in.orig Sat Jan 19 15:29:38 2002
++++ configure.in Sat Jan 19 17:31:49 2002
+@@ -204,12 +204,14 @@
+ dnl ******************************************
+ dnl Check whether the gnu gcc compiler is used.
+ if test -z "$with_gcc_home"; then
+- if test "$CC" = "gcc"; then
+- AC_PATH_PROG(GCC, gcc)
+- COMPATH=`echo $GCC | $SED -n "s/\/gcc//p"`
++ dnl NetBSD pkgsrc is guaranteed to have gcc.
++ dnl if test "$CC" = "gcc"; then
++ GCC=$CC
++ COMPATH=`echo $GCC | $AWK '{print $1}' | xargs dirname `
++ CCFLAGS=$LDFLAGS; export CCFLAGS;
+ _gcc_include_start=/usr/lib/gcc-lib
+ _gxx_include_start=/usr/include
+- fi
++ dnl fi
+ else
+ dnl Compiler has been installed to its own directory and it's home is arg with_gcc_home
+ _gcc_path="$with_gcc_home/bin/gcc"
+@@ -256,6 +258,9 @@
+ dnl find include paths now
+ AC_MSG_CHECKING([the GNU gcc include paths])
+ _gcc_include_path=`find $_gcc_include_start -name $_gcc_version -print 2> /dev/null`
++ if test "$_os" = "NetBSD" -a -z "$_gcc_include_path"; then
++ _gcc_include_path="/usr"
++ fi
+ if test "$_gcc_include_path"; then
+ _multiple=`echo $_gcc_include_path | $AWK '{ if ($2) print "true"; else print "false" }'`
+ if test "$_multiple" = "false"; then
+@@ -305,7 +310,7 @@
+ _gcc_include_path="NO_GCC_INCLUDE"
+ fi
+ else
+- if test "$_os" = "FreeBSD" -o "$_os" = "NetBSD" ; then
++ if test "$_os" = "FreeBSD" ; then
+ _gcc_include_path="/usr/include/g++"
+ else
+ AC_MSG_WARN([could not find 2.95.2/include directory of the gcc compiler])
+@@ -740,6 +745,11 @@
+ fi
+ if test "$_os" = "FreeBSD" -o "$_os" = "NetBSD"; then
+ _jdk_middle=`echo $_jdk | $AWK -F. '{ if ($2 != 2) print "false"; else print "true" }'`
++ _jdk_middle3=`echo $_jdk | $AWK -F. '{ if ($2 != 3) print "false"; else print "true" }'`
++
++ if test "$_jdk_middle" = "false" -a "$_jdk_middle3" = "true"; then
++ _jdk_minor="true"
++ fi
+ fi
+ if test "$_os" = "Linux" -a "$_machine_type" = "sparc"; then
+ _jdk_middle=`echo $_jdk | $AWK -F. '{ if ($2 != 2) print "false"; else print "true" }'`
+@@ -982,7 +992,7 @@
+ HAVE_GPC_C="yes"
+ fi
+
+-if test "$HAVE_GPC_H" == "yes" -a "$HAVE_GPC_C" == "yes"; then
++if test "$HAVE_GPC_H" = "yes" -a "$HAVE_GPC_C" = "yes"; then
+ AC_MSG_RESULT([GPC files found])
+ else
+ AC_MSG_ERROR([GPC files not found])
diff --git a/misc/openoffice/patches/patch-ap b/misc/openoffice/patches/patch-ap
new file mode 100644
index 00000000000..ff660d0def5
--- /dev/null
+++ b/misc/openoffice/patches/patch-ap
@@ -0,0 +1,1287 @@
+$NetBSD: patch-ap,v 1.1.1.1 2002/02/13 18:09:23 mrauch Exp $
+
+--- configure.orig Sat Jan 19 15:29:43 2002
++++ configure Sat Jan 19 17:34:42 2002
+@@ -845,13 +845,20 @@
+ fi
+ fi
+ if test "$_os" = "SunOS" -o "$_os" = "IRIX" -o "$_os" = "IRIX64" -o "$_os" = "OSF1"; then
+- CC=cc; export CC;
++ if test "$_os" = "IRIX" -o "$_os" = "IRIX64"; then
++ if test "$CC" != "gcc"; then
++ CC=cc; export CC;
++ CXX=CC; export CXX;
++ fi
++ else
++ CC=cc; export CC;
++ fi
+ fi
+ if test "$_os" != "WINNT" && test -z "$with_gcc_home"; then
+ # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:855: checking for $ac_word" >&5
++echo "configure:862: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -881,7 +888,7 @@
+ # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:885: checking for $ac_word" >&5
++echo "configure:892: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -932,7 +939,7 @@
+ # Extract the first word of "cl", so it can be a program name with args.
+ set dummy cl; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:936: checking for $ac_word" >&5
++echo "configure:943: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -964,7 +971,7 @@
+ fi
+
+ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+-echo "configure:968: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
++echo "configure:975: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ ac_ext=c
+ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+@@ -975,12 +982,12 @@
+
+ cat > conftest.$ac_ext << EOF
+
+-#line 979 "configure"
++#line 986 "configure"
+ #include "confdefs.h"
+
+ main(){return(0);}
+ EOF
+-if { (eval echo configure:984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+@@ -1006,12 +1013,12 @@
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+ fi
+ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+-echo "configure:1010: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
++echo "configure:1017: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+ echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+ cross_compiling=$ac_cv_prog_cc_cross
+
+ echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+-echo "configure:1015: checking whether we are using GNU C" >&5
++echo "configure:1022: checking whether we are using GNU C" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1020,7 +1027,7 @@
+ yes;
+ #endif
+ EOF
+-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1024: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1031: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+ else
+ ac_cv_prog_gcc=no
+@@ -1039,7 +1046,7 @@
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS=
+ echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+-echo "configure:1043: checking whether ${CC-cc} accepts -g" >&5
++echo "configure:1050: checking whether ${CC-cc} accepts -g" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1071,49 +1078,14 @@
+ fi
+
+ fi
+-if test "$_os" = "Linux" -o "$_os" = "FreeBSD" -o "$_os" = "NetBSD" ; then
++if test "$_os" = "Linux" -o "$_os" = "FreeBSD" -o "$_os" = "NetBSD" -o \( \( "$_os" = "IRIX" -o "$_os" = "IRIX64" \) -a "$CC" = "gcc" \) ; then
+ if test -z "$with_gcc_home"; then
+- if test "$CC" = "gcc"; then
+- # Extract the first word of "gcc", so it can be a program name with args.
+-set dummy gcc; ac_word=$2
+-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1081: checking for $ac_word" >&5
+-if eval "test \"`echo '$''{'ac_cv_path_GCC'+set}'`\" = set"; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+- case "$GCC" in
+- /*)
+- ac_cv_path_GCC="$GCC" # Let the user override the test with a path.
+- ;;
+- ?:/*)
+- ac_cv_path_GCC="$GCC" # Let the user override the test with a dos path.
+- ;;
+- *)
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+- ac_dummy="$PATH"
+- for ac_dir in $ac_dummy; do
+- test -z "$ac_dir" && ac_dir=.
+- if test -f $ac_dir/$ac_word; then
+- ac_cv_path_GCC="$ac_dir/$ac_word"
+- break
+- fi
+- done
+- IFS="$ac_save_ifs"
+- ;;
+-esac
+-fi
+-GCC="$ac_cv_path_GCC"
+-if test -n "$GCC"; then
+- echo "$ac_t""$GCC" 1>&6
+-else
+- echo "$ac_t""no" 1>&6
+-fi
+-
+- COMPATH=`echo $GCC | $SED -n "s/\/gcc//p"`
++ GCC=$CC
++ COMPATH=`echo $GCC | $AWK '{print $1}' | xargs dirname `
++ CCFLAGS=$LDFLAGS; export CCFLAGS;
+ _gcc_include_start=/usr/lib/gcc-lib
+ _gxx_include_start=/usr/include
+- fi
+- else
++ else
+ _gcc_path="$with_gcc_home/bin/gcc"
+ if test -x $_gcc_path; then
+ CC=gcc; export CC;
+@@ -1127,7 +1099,7 @@
+
+ if test $GCC; then
+ echo $ac_n "checking the GNU gcc compiler version""... $ac_c" 1>&6
+-echo "configure:1131: checking the GNU gcc compiler version" >&5
++echo "configure:1103: checking the GNU gcc compiler version" >&5
+ _gcc_releasetype=`$GCC --version | $AWK -F"-" '{ print \$1 }'`
+ if test "$_gcc_releasetype" = "egcs"; then
+ echo "configure: warning: found egcs- version, use (stable=gcc-) version of the compiler" 1>&2
+@@ -1156,8 +1128,11 @@
+ else
+ echo "$ac_t""checked (gcc $_gcc_version)" 1>&6
+ echo $ac_n "checking the GNU gcc include paths""... $ac_c" 1>&6
+-echo "configure:1160: checking the GNU gcc include paths" >&5
++echo "configure:1132: checking the GNU gcc include paths" >&5
+ _gcc_include_path=`find $_gcc_include_start -name $_gcc_version -print 2> /dev/null`
++ if test "$_os" = "NetBSD" -a -z "$_gcc_include_path"; then
++ _gcc_include_path="/usr"
++ fi
+ if test "$_gcc_include_path"; then
+ _multiple=`echo $_gcc_include_path | $AWK '{ if ($2) print "true"; else print "false" }'`
+ if test "$_multiple" = "false"; then
+@@ -1207,7 +1182,7 @@
+ _gcc_include_path="NO_GCC_INCLUDE"
+ fi
+ else
+- if test "$_os" = "FreeBSD" -o "$_os" = "NetBSD" ; then
++ if test "$_os" = "FreeBSD" ; then
+ _gcc_include_path="/usr/include/g++"
+ else
+ echo "configure: warning: could not find 2.95.2/include directory of the gcc compiler" 1>&2
+@@ -1231,7 +1206,7 @@
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1235: checking for $ac_word" >&5
++echo "configure:1210: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path__cc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1268,7 +1243,7 @@
+
+ COMPATH=`echo $_cc | $SED -n "s/\/bin\/cc//p"`
+ echo $ac_n "checking the SUN Workshop C compiler version""... $ac_c" 1>&6
+-echo "configure:1272: checking the SUN Workshop C compiler version" >&5
++echo "configure:1247: checking the SUN Workshop C compiler version" >&5
+ _workshop_version=`$CC -V 2>&1 | $AWK '/^cc/ { print $7 }'`
+ if test "$_workshop_version" = "C"; then
+ _workshop_version=`$CC -V 2>&1 | $AWK '/^cc/ { print $8 }'`
+@@ -1297,7 +1272,7 @@
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1301: checking for $ac_word" >&5
++echo "configure:1276: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path__cc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1334,7 +1309,7 @@
+
+ COMPATH=`echo $_cc | $SED -n "s/\/cc//p"`
+ echo $ac_n "checking the gcc compiler version""... $ac_c" 1>&6
+-echo "configure:1338: checking the gcc compiler version" >&5
++echo "configure:1313: checking the gcc compiler version" >&5
+ cc_version=`$CC -v 2>&1 | $AWK '/Apple Computer/ { print $15 }'`
+ cc_major=`echo $cc_version | $AWK -F. '{ print $1 }'`
+ if test "$cc_major" != "2"; then
+@@ -1367,7 +1342,7 @@
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1371: checking for $ac_word" >&5
++echo "configure:1346: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path__cc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1404,7 +1379,7 @@
+
+ COMPATH=`echo $_cc | $SED -n "s/\/usr\/bin\/cc//p"`
+ echo $ac_n "checking the SGI MIPSpro C compiler version""... $ac_c" 1>&6
+-echo "configure:1408: checking the SGI MIPSpro C compiler version" >&5
++echo "configure:1383: checking the SGI MIPSpro C compiler version" >&5
+ _mipspro_version=`$CC -version 2>&1 | $AWK '{ print $4 }'`
+ _mipspro_major=`echo $_mipspro_version | $AWK -F. '{ print $1 }'`
+ if test "$_mipspro_major" != "7"; then
+@@ -1431,7 +1406,7 @@
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1435: checking for $ac_word" >&5
++echo "configure:1410: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path__cc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1469,7 +1444,7 @@
+ COMPATH=`echo $_cc | $SED -n "s/\/usr\/bin\/cc//p"`
+ echo "configure: warning: ******* $_cc , $COMPATH" 1>&2
+ echo $ac_n "checking the Compaq C compiler version""... $ac_c" 1>&6
+-echo "configure:1473: checking the Compaq C compiler version" >&5
++echo "configure:1448: checking the Compaq C compiler version" >&5
+ _compaqc_version=`$CC -V 2>&1 | $AWK '{ print $3 }'`
+ _compaqc_major=`echo $_compaqc_version | $AWK -F. '{ print $1 }'`
+ if test "$_compaqc_major" != "T6"; then
+@@ -1484,7 +1459,7 @@
+
+ if test "$_os" = "WINNT"; then
+ echo $ac_n "checking the Microsoft C/C++ Compiler""... $ac_c" 1>&6
+-echo "configure:1488: checking the Microsoft C/C++ Compiler" >&5
++echo "configure:1463: checking the Microsoft C/C++ Compiler" >&5
+ if test -x $with_cl_home/bin/cl; then
+ COMPATH=$with_cl_home
+ echo "$ac_t""found." 1>&6
+@@ -1496,7 +1471,7 @@
+
+ if test "$_os" != "WINNT"; then
+ echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+-echo "configure:1500: checking how to run the C preprocessor" >&5
++echo "configure:1475: checking how to run the C preprocessor" >&5
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+@@ -1511,13 +1486,13 @@
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp.
+ cat > conftest.$ac_ext <<EOF
+-#line 1515 "configure"
++#line 1490 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1521: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1496: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -1528,13 +1503,13 @@
+ rm -rf conftest*
+ CPP="${CC-cc} -E -traditional-cpp"
+ cat > conftest.$ac_ext <<EOF
+-#line 1532 "configure"
++#line 1507 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1538: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1513: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -1545,13 +1520,13 @@
+ rm -rf conftest*
+ CPP="${CC-cc} -nologo -E"
+ cat > conftest.$ac_ext <<EOF
+-#line 1549 "configure"
++#line 1524 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1555: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1530: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -1576,12 +1551,12 @@
+ echo "$ac_t""$CPP" 1>&6
+
+ echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+-echo "configure:1580: checking for ANSI C header files" >&5
++echo "configure:1555: checking for ANSI C header files" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1585 "configure"
++#line 1560 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -1589,7 +1564,7 @@
+ #include <float.h>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1593: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1568: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -1606,7 +1581,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat > conftest.$ac_ext <<EOF
+-#line 1610 "configure"
++#line 1585 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+ EOF
+@@ -1624,7 +1599,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat > conftest.$ac_ext <<EOF
+-#line 1628 "configure"
++#line 1603 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ EOF
+@@ -1645,7 +1620,7 @@
+ :
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1649 "configure"
++#line 1624 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+@@ -1656,7 +1631,7 @@
+ exit (0); }
+
+ EOF
+-if { (eval echo configure:1660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:1635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+ :
+ else
+@@ -1683,7 +1658,7 @@
+
+ if test "$_os" = "Linux" -o "$_os" = "FreeBSD"; then
+ echo $ac_n "checking pam_appl.h""... $ac_c" 1>&6
+-echo "configure:1687: checking pam_appl.h" >&5
++echo "configure:1662: checking pam_appl.h" >&5
+ if test -f "/usr/include/security/pam_appl.h"; then
+ echo "$ac_t""yes" 1>&6
+ else
+@@ -1697,7 +1672,7 @@
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1701: checking for $ac_word" >&5
++echo "configure:1676: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1729,7 +1704,7 @@
+
+
+ echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+-echo "configure:1733: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
++echo "configure:1708: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+
+ ac_ext=C
+ # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+@@ -1740,12 +1715,12 @@
+
+ cat > conftest.$ac_ext << EOF
+
+-#line 1744 "configure"
++#line 1719 "configure"
+ #include "confdefs.h"
+
+ int main(){return(0);}
+ EOF
+-if { (eval echo configure:1749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:1724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cxx_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+@@ -1771,12 +1746,12 @@
+ { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
+ fi
+ echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+-echo "configure:1775: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
++echo "configure:1750: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+ echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
+ cross_compiling=$ac_cv_prog_cxx_cross
+
+ echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
+-echo "configure:1780: checking whether we are using GNU C++" >&5
++echo "configure:1755: checking whether we are using GNU C++" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1785,7 +1760,7 @@
+ yes;
+ #endif
+ EOF
+-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1789: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
++if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1764: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gxx=yes
+ else
+ ac_cv_prog_gxx=no
+@@ -1804,7 +1779,7 @@
+ ac_save_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS=
+ echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
+-echo "configure:1808: checking whether ${CXX-g++} accepts -g" >&5
++echo "configure:1783: checking whether ${CXX-g++} accepts -g" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1835,10 +1810,10 @@
+ fi
+ fi
+
+-if test "$_os" = "Linux" -o "$_os" = "FreeBSD" -o "$_os" = "NetBSD" ; then
++if test "$_os" = "Linux" -o "$_os" = "FreeBSD" -o "$_os" = "NetBSD" -o "$_os" = "IRIX" -o "$_os" = "IRIX64" ; then
+ if test "$CC" = "gcc"; then
+ echo $ac_n "checking g++ Compiler""... $ac_c" 1>&6
+-echo "configure:1842: checking g++ Compiler" >&5
++echo "configure:1817: checking g++ Compiler" >&5
+ if test -z "$GXX"; then
+ echo "configure: warning: GNU g++/c++ was not found" 1>&2
+ echo "configure: warning: GNU g++/c++ was not found" 1>&2 >> warn
+@@ -1851,7 +1826,7 @@
+ CXX=CC; export CXX;
+ if test "$CC" = "cc"; then
+ echo $ac_n "checking Sun Workshop C++ Compiler""... $ac_c" 1>&6
+-echo "configure:1855: checking Sun Workshop C++ Compiler" >&5
++echo "configure:1830: checking Sun Workshop C++ Compiler" >&5
+ if test "$CXX" != "CC"; then
+ echo "configure: warning: Sun Workshop C++ was not found" 1>&2
+ echo "configure: warning: Sun Worlshop C++ was not found" 1>&2 >> warn
+@@ -1864,7 +1839,7 @@
+ CXX=c++; export CXX;
+ if test "$CC" = "cc"; then
+ echo $ac_n "checking Macosx c++ Compiler""... $ac_c" 1>&6
+-echo "configure:1868: checking Macosx c++ Compiler" >&5
++echo "configure:1843: checking Macosx c++ Compiler" >&5
+ if test "$CXX" != "c++"; then
+ echo "configure: warning: Macosx C++ was not found" 1>&2
+ echo "configure: warning: Macosx C++ was not found" 1>&2 >> warn
+@@ -1874,10 +1849,10 @@
+ fi
+ fi
+ if test "$_os" = "IRIX" -o "$_os" = "IRIX64"; then
+- CXX=CC; export CXX;
+ if test "$CC" = "cc"; then
+- echo $ac_n "checking SGI MIPSpro C++ Compiler""... $ac_c" 1>&6
+-echo "configure:1881: checking SGI MIPSpro C++ Compiler" >&5
++ CXX=CC; export CXX;
++ echo $ac_n "checking SGI MIPSpro C++ Compiler""... $ac_c" 1>&6
++echo "configure:1856: checking SGI MIPSpro C++ Compiler" >&5
+ if test "$CXX" != "CC"; then
+ echo "configure: warning: SGI MIPSpro C++ was not found" 1>&2
+ echo "configure: warning: SGI MIPSpro C++ was not found" 1>&2 >> warn
+@@ -1889,7 +1864,7 @@
+ if test "$_os" = "OSF1"; then
+ CXX="cxx"; export CXX;
+ echo $ac_n "checking Compaq C++ compiler version""... $ac_c" 1>&6
+-echo "configure:1893: checking Compaq C++ compiler version" >&5
++echo "configure:1868: checking Compaq C++ compiler version" >&5
+ _compaqcxx_version=`$CXX -V 2>&1 | $AWK '{ print $3 }'`
+ _compaqcxx_major=`echo $_compaqcxx_version | $AWK -F. '{ print $1 }'`
+ if test "$_compaqcxx_major" != "V6"; then
+@@ -1904,7 +1879,7 @@
+ _temp=`showrev -p | $AWK -F" " '{ print $2 }'`
+ if test "$_os_release" = "7"; then
+ echo $ac_n "checking for patch 106327-06 or greater""... $ac_c" 1>&6
+-echo "configure:1908: checking for patch 106327-06 or greater" >&5
++echo "configure:1883: checking for patch 106327-06 or greater" >&5
+ _patch=`echo $_temp | $AWK '/106327-06/ { print "found" }'`
+ _patch="false"
+ for i in $_temp
+@@ -1924,7 +1899,7 @@
+ echo "configure: warning: patch 106327-06 not found, please install compiler patch 106327-06 or greater" 1>&2 >> warn
+ fi
+ echo $ac_n "checking for patch 106950-11 or greater""... $ac_c" 1>&6
+-echo "configure:1928: checking for patch 106950-11 or greater" >&5
++echo "configure:1903: checking for patch 106950-11 or greater" >&5
+ _patch=`echo $_temp | $AWK '/106950-11/ { print "found" }'`
+ _patch="false"
+ for i in $_temp
+@@ -1946,7 +1921,7 @@
+ else
+ if test "$_os_release" = "6"; then
+ echo $ac_n "checking for patch 105591-09 or greater""... $ac_c" 1>&6
+-echo "configure:1950: checking for patch 105591-09 or greater" >&5
++echo "configure:1925: checking for patch 105591-09 or greater" >&5
+ _patch=`echo $_temp | $AWK '/105591-09/ { print "found" }'`
+ _patch="false"
+ for i in $_temp
+@@ -1966,7 +1941,7 @@
+ echo "configure: warning: patch 105591-09 not found, please install compiler patch 105591-09 or greater" 1>&2 >> warn
+ fi
+ echo $ac_n "checking for patch 107733-08 or greater""... $ac_c" 1>&6
+-echo "configure:1970: checking for patch 107733-08 or greater" >&5
++echo "configure:1945: checking for patch 107733-08 or greater" >&5
+ _patch=`echo $_temp | $AWK '/107733-08/ { print "found" }'`
+ _patch="false"
+ for i in $_temp
+@@ -1998,7 +1973,7 @@
+ cross_compiling=$ac_cv_prog_cxx_cross
+
+ echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
+-echo "configure:2002: checking how to run the C++ preprocessor" >&5
++echo "configure:1977: checking how to run the C++ preprocessor" >&5
+ if test -z "$CXXCPP"; then
+ if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -2011,12 +1986,12 @@
+ cross_compiling=$ac_cv_prog_cxx_cross
+ CXXCPP="${CXX-g++} -E"
+ cat > conftest.$ac_ext <<EOF
+-#line 2015 "configure"
++#line 1990 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2020: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1995: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -2041,12 +2016,12 @@
+ echo "$ac_t""$CXXCPP" 1>&6
+
+ cat > conftest.$ac_ext <<EOF
+-#line 2045 "configure"
++#line 2020 "configure"
+ #include "confdefs.h"
+ ""
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2050: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2025: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -2061,7 +2036,7 @@
+ if test -n "$enable_sgistl"; then
+ if test "$_os" = "IRIX" -o "$_os" = "IRIX64"; then
+ echo $ac_n "checking for SGI STL""... $ac_c" 1>&6
+-echo "configure:2065: checking for SGI STL" >&5
++echo "configure:2040: checking for SGI STL" >&5
+ if test -d /usr/include/CC ; then
+ echo "$ac_t""yes." 1>&6
+
+@@ -2074,17 +2049,17 @@
+ else
+
+ echo $ac_n "checking for STLport4 headers""... $ac_c" 1>&6
+-echo "configure:2078: checking for STLport4 headers" >&5
++echo "configure:2053: checking for STLport4 headers" >&5
+ if test -d "$with_stlport4_home"; then
+ STLPORT4=$with_stlport4_home
+ if test "$_os" != "WINNT"; then
+ cat > conftest.$ac_ext <<EOF
+-#line 2083 "configure"
++#line 2058 "configure"
+ #include "confdefs.h"
+ $STLPORT4/stlport/hash_map
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2088: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2063: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -2106,7 +2081,7 @@
+ fi
+ if test "$_os" != "WINNT"; then
+ echo $ac_n "checking for STLport4 libraries""... $ac_c" 1>&6
+-echo "configure:2110: checking for STLport4 libraries" >&5
++echo "configure:2085: checking for STLport4 libraries" >&5
+ if test "$_os" = "SunOS"; then
+ if test -f "$STLPORT4/lib/libstlport_sunpro.so"; then
+ echo "$ac_t""checked" 1>&6
+@@ -2123,7 +2098,11 @@
+ if test -f "$STLPORT4/lib/libstlport_mipspro_41.so"; then
+ echo "$ac_t""checked" 1>&6
+ else
+- { echo "configure: error: STLport4 libraries not found" 1>&2; exit 1; }
++ if test -f "$STLPORT4/lib/libstlport_gcc.so"; then
++ echo "$ac_t""checked" 1>&6
++ else
++ { echo "configure: error: STLport4 libraries not found" 1>&2; exit 1; }
++ fi
+ fi
+ else
+ if test -f "$STLPORT4/lib/libstlport_gcc.so"; then
+@@ -2143,7 +2122,7 @@
+ # Extract the first word of "javac", so it can be a program name with args.
+ set dummy javac; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:2147: checking for $ac_word" >&5
++echo "configure:2126: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_JAVA'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -2182,7 +2161,7 @@
+ fi
+ fi
+ echo $ac_n "checking the installed JDK""... $ac_c" 1>&6
+-echo "configure:2186: checking the installed JDK" >&5
++echo "configure:2165: checking the installed JDK" >&5
+ if test "$JAVA"; then
+ _correct_jdk_exists="false"
+ _jdk=`$JAVA -J-version 2>&1 | $AWK -F'"' '{ print \$2 }'`
+@@ -2199,6 +2178,11 @@
+ fi
+ if test "$_os" = "FreeBSD" -o "$_os" = "NetBSD"; then
+ _jdk_middle=`echo $_jdk | $AWK -F. '{ if ($2 != 2) print "false"; else print "true" }'`
++ _jdk_middle3=`echo $_jdk | $AWK -F. '{ if ($2 != 3) print "false"; else print "true" }'`
++
++ if test "$_jdk_middle" = "false" -a "$_jdk_middle3" = "true"; then
++ _jdk_minor="true"
++ fi
+ fi
+ if test "$_os" = "Linux" -a "$_machine_type" = "sparc"; then
+ _jdk_middle=`echo $_jdk | $AWK -F. '{ if ($2 != 2) print "false"; else print "true" }'`
+@@ -2266,7 +2250,7 @@
+ fi
+ if test "$_os" = "Linux" -o "$_os" = "FreeBSD" -o "$_os" = "NetBSD" ; then
+ echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+-echo "configure:2270: checking how to run the C preprocessor" >&5
++echo "configure:2254: checking how to run the C preprocessor" >&5
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+@@ -2281,13 +2265,13 @@
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp.
+ cat > conftest.$ac_ext <<EOF
+-#line 2285 "configure"
++#line 2269 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2291: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2275: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -2298,13 +2282,13 @@
+ rm -rf conftest*
+ CPP="${CC-cc} -E -traditional-cpp"
+ cat > conftest.$ac_ext <<EOF
+-#line 2302 "configure"
++#line 2286 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2308: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2292: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -2315,13 +2299,13 @@
+ rm -rf conftest*
+ CPP="${CC-cc} -nologo -E"
+ cat > conftest.$ac_ext <<EOF
+-#line 2319 "configure"
++#line 2303 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2325: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2309: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -2348,7 +2332,7 @@
+ fi
+ if test "$_os" = "Linux" -o "$_os" = "FreeBSD" -o "$_os" = "NetBSD" ; then
+ echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
+-echo "configure:2352: checking how to run the C++ preprocessor" >&5
++echo "configure:2336: checking how to run the C++ preprocessor" >&5
+ if test -z "$CXXCPP"; then
+ if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -2361,12 +2345,12 @@
+ cross_compiling=$ac_cv_prog_cxx_cross
+ CXXCPP="${CXX-g++} -E"
+ cat > conftest.$ac_ext <<EOF
+-#line 2365 "configure"
++#line 2349 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2370: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2354: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -2395,7 +2379,7 @@
+ # Extract the first word of "perl", so it can be a program name with args.
+ set dummy perl; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:2399: checking for $ac_word" >&5
++echo "configure:2383: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -2435,7 +2419,7 @@
+ fi
+ if test "$PERL"; then
+ echo $ac_n "checking the Perl version""... $ac_c" 1>&6
+-echo "configure:2439: checking the Perl version" >&5
++echo "configure:2423: checking the Perl version" >&5
+ _perl_temp=`$PERL -version 2> /dev/null | $AWK -F" " '/built for/ { print $4 }'`
+ if test "$_perl_temp" = "version"; then
+ _perl_version=`$PERL -version 2> /dev/null | $AWK -F" " '/built for/ { print $5 }'`
+@@ -2461,7 +2445,7 @@
+ # Extract the first word of "tcsh", so it can be a program name with args.
+ set dummy tcsh; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:2465: checking for $ac_word" >&5
++echo "configure:2449: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_TCSH'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -2509,7 +2493,7 @@
+ # Uses ac_ vars as temps to allow command line to override cache and checks.
+ # --without-x overrides everything else, but does not touch the cache.
+ echo $ac_n "checking for X""... $ac_c" 1>&6
+-echo "configure:2513: checking for X" >&5
++echo "configure:2497: checking for X" >&5
+
+ # Check whether --with-x or --without-x was given.
+ if test "${with_x+set}" = set; then
+@@ -2571,12 +2555,12 @@
+
+ # First, try using that file with no special directory specified.
+ cat > conftest.$ac_ext <<EOF
+-#line 2575 "configure"
++#line 2559 "configure"
+ #include "confdefs.h"
+ #include <$x_direct_test_include>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2580: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2564: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -2645,14 +2629,14 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-l$x_direct_test_library $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 2649 "configure"
++#line 2633 "configure"
+ #include "confdefs.h"
+
+ int main() {
+ ${x_direct_test_function}()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ LIBS="$ac_save_LIBS"
+ # We can link X programs with no special library path.
+@@ -2758,17 +2742,17 @@
+ case "`(uname -sr) 2>/dev/null`" in
+ "SunOS 5"*)
+ echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
+-echo "configure:2762: checking whether -R must be followed by a space" >&5
++echo "configure:2746: checking whether -R must be followed by a space" >&5
+ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
+ cat > conftest.$ac_ext <<EOF
+-#line 2765 "configure"
++#line 2749 "configure"
+ #include "confdefs.h"
+
+ int main() {
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_R_nospace=yes
+ else
+@@ -2784,14 +2768,14 @@
+ else
+ LIBS="$ac_xsave_LIBS -R $x_libraries"
+ cat > conftest.$ac_ext <<EOF
+-#line 2788 "configure"
++#line 2772 "configure"
+ #include "confdefs.h"
+
+ int main() {
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2795: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_R_space=yes
+ else
+@@ -2823,7 +2807,7 @@
+ # libraries were built with DECnet support. And karl@cs.umb.edu says
+ # the Alpha needs dnet_stub (dnet does not exist).
+ echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
+-echo "configure:2827: checking for dnet_ntoa in -ldnet" >&5
++echo "configure:2811: checking for dnet_ntoa in -ldnet" >&5
+ ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -2831,7 +2815,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-ldnet $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 2835 "configure"
++#line 2819 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+@@ -2845,7 +2829,7 @@
+ dnet_ntoa()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -2867,7 +2851,7 @@
+
+ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+ echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
+-echo "configure:2871: checking for dnet_ntoa in -ldnet_stub" >&5
++echo "configure:2855: checking for dnet_ntoa in -ldnet_stub" >&5
+ ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -2875,7 +2859,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-ldnet_stub $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 2879 "configure"
++#line 2863 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+@@ -2889,7 +2873,7 @@
+ dnet_ntoa()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2893: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2877: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -2918,12 +2902,12 @@
+ # The nsl library prevents programs from opening the X display
+ # on Irix 5.2, according to dickey@clark.net.
+ echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
+-echo "configure:2922: checking for gethostbyname" >&5
++echo "configure:2906: checking for gethostbyname" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2927 "configure"
++#line 2911 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char gethostbyname(); below. */
+@@ -2949,7 +2933,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_gethostbyname=yes"
+ else
+@@ -2970,7 +2954,7 @@
+
+ if test $ac_cv_func_gethostbyname = no; then
+ echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
+-echo "configure:2974: checking for gethostbyname in -lnsl" >&5
++echo "configure:2958: checking for gethostbyname in -lnsl" >&5
+ ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -2978,7 +2962,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lnsl $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 2982 "configure"
++#line 2966 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+@@ -2992,7 +2976,7 @@
+ gethostbyname()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -3022,12 +3006,12 @@
+ # -lsocket must be given before -lnsl if both are needed.
+ # We assume that if connect needs -lnsl, so does gethostbyname.
+ echo $ac_n "checking for connect""... $ac_c" 1>&6
+-echo "configure:3026: checking for connect" >&5
++echo "configure:3010: checking for connect" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3031 "configure"
++#line 3015 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char connect(); below. */
+@@ -3053,7 +3037,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_connect=yes"
+ else
+@@ -3074,7 +3058,7 @@
+
+ if test $ac_cv_func_connect = no; then
+ echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
+-echo "configure:3078: checking for connect in -lsocket" >&5
++echo "configure:3062: checking for connect in -lsocket" >&5
+ ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -3082,7 +3066,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 3086 "configure"
++#line 3070 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+@@ -3096,7 +3080,7 @@
+ connect()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -3120,12 +3104,12 @@
+
+ # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
+ echo $ac_n "checking for remove""... $ac_c" 1>&6
+-echo "configure:3124: checking for remove" >&5
++echo "configure:3108: checking for remove" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3129 "configure"
++#line 3113 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char remove(); below. */
+@@ -3151,7 +3135,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3155: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3139: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_remove=yes"
+ else
+@@ -3172,7 +3156,7 @@
+
+ if test $ac_cv_func_remove = no; then
+ echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
+-echo "configure:3176: checking for remove in -lposix" >&5
++echo "configure:3160: checking for remove in -lposix" >&5
+ ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -3180,7 +3164,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lposix $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 3184 "configure"
++#line 3168 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+@@ -3194,7 +3178,7 @@
+ remove()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -3218,12 +3202,12 @@
+
+ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+ echo $ac_n "checking for shmat""... $ac_c" 1>&6
+-echo "configure:3222: checking for shmat" >&5
++echo "configure:3206: checking for shmat" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3227 "configure"
++#line 3211 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shmat(); below. */
+@@ -3249,7 +3233,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_shmat=yes"
+ else
+@@ -3270,7 +3254,7 @@
+
+ if test $ac_cv_func_shmat = no; then
+ echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
+-echo "configure:3274: checking for shmat in -lipc" >&5
++echo "configure:3258: checking for shmat in -lipc" >&5
+ ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -3278,7 +3262,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lipc $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 3282 "configure"
++#line 3266 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+@@ -3292,7 +3276,7 @@
+ shmat()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -3325,7 +3309,7 @@
+ # libraries we check for below, so use a different variable.
+ # --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
+ echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
+-echo "configure:3329: checking for IceConnectionNumber in -lICE" >&5
++echo "configure:3313: checking for IceConnectionNumber in -lICE" >&5
+ ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -3333,7 +3317,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 3337 "configure"
++#line 3321 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+@@ -3347,7 +3331,7 @@
+ IceConnectionNumber()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3335: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -3386,7 +3370,7 @@
+ CFLAGS=$X_CFLAGS
+ LDFLAGS="$X_LDFLAGS $X_LIBS"
+ echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
+-echo "configure:3390: checking for XOpenDisplay in -lX11" >&5
++echo "configure:3374: checking for XOpenDisplay in -lX11" >&5
+ ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -3394,7 +3378,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lX11 $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 3398 "configure"
++#line 3382 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+@@ -3408,7 +3392,7 @@
+ XOpenDisplay()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -3435,7 +3419,7 @@
+ fi
+ if test "$_os" = "Linux"; then
+ echo $ac_n "checking for gnu_get_libc_version in -lc""... $ac_c" 1>&6
+-echo "configure:3439: checking for gnu_get_libc_version in -lc" >&5
++echo "configure:3423: checking for gnu_get_libc_version in -lc" >&5
+ ac_lib_var=`echo c'_'gnu_get_libc_version | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -3443,7 +3427,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lc $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 3447 "configure"
++#line 3431 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+@@ -3457,7 +3441,7 @@
+ gnu_get_libc_version()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3461: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -3478,7 +3462,7 @@
+ fi
+
+ echo $ac_n "checking the installed libc is at least version 2.1.1""... $ac_c" 1>&6
+-echo "configure:3482: checking the installed libc is at least version 2.1.1" >&5
++echo "configure:3466: checking the installed libc is at least version 2.1.1" >&5
+ if test "$HAVE_LIBC"; then
+ echo "$ac_t""checked" 1>&6
+ else
+@@ -3488,7 +3472,7 @@
+ # Extract the first word of "bison", so it can be a program name with args.
+ set dummy bison; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:3492: checking for $ac_word" >&5
++echo "configure:3476: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_BISON'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -3526,7 +3510,7 @@
+ # Extract the first word of "flex", so it can be a program name with args.
+ set dummy flex; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:3530: checking for $ac_word" >&5
++echo "configure:3514: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_FLEX'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -3564,7 +3548,7 @@
+ # Extract the first word of "patch", so it can be a program name with args.
+ set dummy patch; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:3568: checking for $ac_word" >&5
++echo "configure:3552: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_PATCH'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -3603,7 +3587,7 @@
+ # Extract the first word of "bash", so it can be a program name with args.
+ set dummy bash; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:3607: checking for $ac_word" >&5
++echo "configure:3591: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_CYGWIN'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -3642,7 +3626,7 @@
+ # Extract the first word of "ml.exe", so it can be a program name with args.
+ set dummy ml.exe; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:3646: checking for $ac_word" >&5
++echo "configure:3630: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_ML_EXE'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -3688,7 +3672,7 @@
+ # Extract the first word of "unzip.exe", so it can be a program name with args.
+ set dummy unzip.exe; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:3692: checking for $ac_word" >&5
++echo "configure:3676: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_UNZIP_EXE'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -3732,7 +3716,7 @@
+
+
+ echo $ac_n "checking GPC files""... $ac_c" 1>&6
+-echo "configure:3736: checking GPC files" >&5
++echo "configure:3720: checking GPC files" >&5
+ if test -e ../external/gpc/gpc.h; then
+ HAVE_GPC_H="yes"
+ fi
+@@ -3740,7 +3724,7 @@
+ HAVE_GPC_C="yes"
+ fi
+
+-if test "$HAVE_GPC_H" == "yes" -a "$HAVE_GPC_C" == "yes"; then
++if test "$HAVE_GPC_H" = "yes" -a "$HAVE_GPC_C" = "yes"; then
+ echo "$ac_t""GPC files found" 1>&6
+ else
+ { echo "configure: error: GPC files not found" 1>&2; exit 1; }
+@@ -4006,7 +3990,6 @@
+ s%@AWK@%$AWK%g
+ s%@SED@%$SED%g
+ s%@CC@%$CC%g
+-s%@GCC@%$GCC%g
+ s%@_cc@%$_cc%g
+ s%@CPP@%$CPP%g
+ s%@CXX@%$CXX%g
diff --git a/misc/openoffice/patches/patch-aq b/misc/openoffice/patches/patch-aq
new file mode 100644
index 00000000000..9346a4c48d6
--- /dev/null
+++ b/misc/openoffice/patches/patch-aq
@@ -0,0 +1,12 @@
+$NetBSD: patch-aq,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../connectivity/prj/build.lst.orig Thu Nov 8 16:14:54 2001
++++ ../connectivity/prj/build.lst
+@@ -8,6 +8,7 @@
+ cn connectivity\source\sdbcx nmake - all cn_sdbcx cn_types NULL
+ cn connectivity\source\drivers\ado nmake - w cn_ado cn_dbtools NULL
+ cn connectivity\source\drivers\mozab\mozillasrc nmake - all cn_mozab_mozillasrc cn_file NULL
++cn connectivity\source\drivers\mozab\mozillasrc\nortti nmake - all cn_mozab_mozillasrc_nortti cn_mozab_mozillasrc NULL
+ cn connectivity\source\drivers\mozab nmake - all cn_mozab cn_mozab_mozillasrc cn_dbtools NULL
+ cn connectivity\source\drivers\calc nmake - all cn_calc cn_file NULL
+ cn connectivity\source\drivers\odbc nmake - all cn_odbc cn_dbtools NULL
diff --git a/misc/openoffice/patches/patch-ar b/misc/openoffice/patches/patch-ar
new file mode 100644
index 00000000000..98eb9845929
--- /dev/null
+++ b/misc/openoffice/patches/patch-ar
@@ -0,0 +1,33 @@
+$NetBSD: patch-ar,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../connectivity/source/drivers/mozab/mozillasrc/makefile.mk.orig Tue Jan 1 14:08:59 2002
++++ ../connectivity/source/drivers/mozab/mozillasrc/makefile.mk
+@@ -92,10 +92,12 @@
+ $(SLO)$/MQueryHelper.obj \
+ $(SLO)$/MDatabaseMetaDataHelper.obj \
+ $(SLO)$/MQuery.obj \
+- $(SLO)$/MTypeConverter.obj \
+ $(SLO)$/MNameMapper.obj
+
+-
++.IF "$(OS)" != "NETBSD"
++SLOFILES += \
++ $(SLO)$/MTypeConverter.obj
++.ENDIF
+
+ .IF "$(GUI)" == "WNT"
+ .IF "$(DEBUG)" == ""
+@@ -132,6 +134,13 @@
+ -fno-rtti -Wall -Wconversion -Wpointer-arith \
+ -Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth \
+ -Wno-long-long -pthread
++CDEFS += -DTRACING
++.ELIF "$(OS)" == "NETBSD"
++CFLAGS += -fPIC
++CFLAGSCXX += \
++ -Wall -Wconversion -Wpointer-arith \
++ -Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth \
++ -Wno-long-long
+ CDEFS += -DTRACING
+ .ENDIF
+ .ENDIF
diff --git a/misc/openoffice/patches/patch-as b/misc/openoffice/patches/patch-as
new file mode 100644
index 00000000000..c4bf42367ef
--- /dev/null
+++ b/misc/openoffice/patches/patch-as
@@ -0,0 +1,117 @@
+$NetBSD: patch-as,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../connectivity/source/drivers/mozab/mozillasrc/nortti/MTypeConverter.cxx.orig Sun Jan 6 11:44:27 2002
++++ ../connectivity/source/drivers/mozab/mozillasrc/nortti/MTypeConverter.cxx
+@@ -0,0 +1,112 @@
++
++#include <MNSInclude.hxx>
++
++#ifndef _CONNECTIVITY_MAB_TYPECONVERTER_HXX_
++#include "MTypeConverter.hxx"
++#endif
++#ifndef _UCBHELPER_CONTENT_HXX
++#include <ucbhelper/content.hxx>
++#endif
++
++using namespace connectivity::mozab;
++
++// -------------------------------------------------------------------------
++void MTypeConverter::ouStringToNsString(::rtl::OUString const &ous, nsString &nss)
++{
++ OSL_TRACE( "IN MTypeConverter::OUStringToNsString()\n" );
++
++ // Convert to ::rtl::OString (utf-8 encoding).
++ ::rtl::OString os(ous,ous.getLength(), RTL_TEXTENCODING_UTF8);
++
++ const char *cs = os.getStr();
++ PRUint32 csLen = os.getLength();
++
++ NS_ConvertUTF8toUCS2 mozString(cs, csLen);
++ //const PRUnichar* uniMozString = (const PRUnichar*) mozString;
++ nss = mozString; // temp.
++
++ OSL_TRACE( "\tOUT MTypeConverter::OUStringToNsString()\n" );
++}
++// -------------------------------------------------------------------------
++void MTypeConverter::nsStringToOUString(nsString const &nss, ::rtl::OUString &ous)
++{
++ OSL_TRACE( "IN MTypeConverter::nsStringToOUString()\n" );
++
++ // Get clone of buffer.
++ PRUnichar *uc = nss.ToNewUnicode();
++ sal_Int32 nssLen = nss.Length();
++
++ // TODO check if this is ok.
++ ::rtl::OUString _ous(uc, nssLen);
++ ous = _ous;
++
++ nsMemory::Free(uc);
++
++ OSL_TRACE( "\tOUT MTypeConverter::nsStringToOUString()\n" );
++}
++// -------------------------------------------------------------------------
++void MTypeConverter::prUnicharToOUString(PRUnichar const *pru, ::rtl::OUString &ous)
++{
++ OSL_TRACE( "IN MTypeConverter::prUniCharToOUString()\n" );
++
++ // TODO, specify length.
++ ::rtl::OUString _ous(pru);
++ ous = _ous;
++
++ OSL_TRACE( "\tOUT MTypeConverter::prUniCharToOUString()\n" );
++}
++// -------------------------------------------------------------------------
++char *MTypeConverter::ouStringToCCharStringUtf8(::rtl::OUString const &ous)
++{
++ OSL_TRACE( "IN MTypeConverter::OUStringToCCharStringUtf8()\n" );
++
++ // Convert to ::rtl::OString,
++ ::rtl::OString os(ous,ous.getLength(), RTL_TEXTENCODING_UTF8);
++
++ const char *cs = os.getStr();
++
++ OSL_TRACE( "\tOUT MTypeConverter::OUStringToCCharStringUtf8()\n" );
++ return(strdup(cs));
++}
++// -------------------------------------------------------------------------
++char *MTypeConverter::ouStringToCCharStringAscii(::rtl::OUString const &ous)
++{
++ OSL_TRACE( "IN MTypeConverter::OUStringToCCharStringAscii()\n" );
++
++ // Convert ::rtl::OUString to ::rtl::OString,
++ ::rtl::OString os(ous,ous.getLength(), RTL_TEXTENCODING_ASCII_US);
++
++ OSL_TRACE( "\tOUT MTypeConverter::OUStringToCCharStringAscii()\n" );
++ return(strdup(os.getStr()));
++}
++// -------------------------------------------------------------------------
++char *MTypeConverter::nsStringToCCharStringAscii(nsString const &nss)
++{
++ OSL_TRACE( "IN MTypeConverter::nsStringToCCharStringAscii()\n" );
++
++ char cs[1024];
++ nss.ToCString(cs, 1024);
++
++ OSL_TRACE( "\tOUT MTypeConverter::nsStringToCCharStringAscii()\n" );
++ return(strdup(cs));
++}
++// -------------------------------------------------------------------------
++::std::string MTypeConverter::ouStringToStlString(::rtl::OUString const &ous)
++{
++ OSL_TRACE( "IN MTypeConverter::ouStringToStlString()\n" );
++
++ // Convert ::rtl::OUString to ::rtl::OString.
++ ::rtl::OString os(ous,ous.getLength(),RTL_TEXTENCODING_ASCII_US);
++
++ OSL_TRACE( "\tOUT MTypeConverter::ouStringToStlString()\n" );
++ return( ::std::string(os.getStr()));
++}
++// -------------------------------------------------------------------------
++::std::string MTypeConverter::nsStringToStlString(nsString const &nss)
++{
++ OSL_TRACE( "IN MTypeConverter::nsStringToStlString()\n" );
++
++ OSL_TRACE( "\tOUT MTypeConverter::nsStringToStlString()\n" );
++ return( ::std::string(nss.GetBuffer()));
++}
++// -------------------------------------------------------------------------
diff --git a/misc/openoffice/patches/patch-at b/misc/openoffice/patches/patch-at
new file mode 100644
index 00000000000..02cde76812d
--- /dev/null
+++ b/misc/openoffice/patches/patch-at
@@ -0,0 +1,97 @@
+$NetBSD: patch-at,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../connectivity/source/drivers/mozab/mozillasrc/nortti/makefile.mk.orig Sun Jan 6 11:44:36 2002
++++ ../connectivity/source/drivers/mozab/mozillasrc/nortti/makefile.mk
+@@ -0,0 +1,92 @@
++CALL_CDECL=TRUE
++
++#mozilla specific stuff.
++MOZ_LIB=$(SOLARVERSION)$/$(INPATH)$/lib$(UPDMINOREXT)
++MOZ_INC=$(SOLARVERSION)$/$(INPATH)$/inc$(UPDMINOREXT)/$/mozilla
++#End of mozilla specific stuff.
++
++PRJ=..$/..$/..$/..$/..
++PRJINC=..$/..$/..$/..
++PRJNAME=connectivity
++TARGET=mozabsrc
++
++USE_LDUMP2=TRUE
++USE_DEFFILE=TRUE
++ENABLE_EXCEPTIONS=TRUE
++LDUMP=ldump2.exe
++
++# --- Settings ----------------------------------
++.IF "$(DBGUTIL_OJ)"!=""
++ENVCFLAGS+=/FR$(SLO)$/
++.ENDIF
++
++.INCLUDE : settings.mk
++.INCLUDE : $(PRJ)$/version.mk
++
++#mozilla specific stuff.
++# --- Files -------------------------------------
++
++SLOFILES = \
++ $(SLO)$/MTypeConverter.obj
++
++
++
++.IF "$(GUI)" == "WNT"
++.IF "$(DEBUG)" == ""
++INCPRE += . -I.. -I$(MOZ_INC) -I$(MOZ_INC)$/nspr
++CDEFS += -DWINVER=0x400 -DMOZILLA_CLIENT \
++ -DNS_NET_FILE -DCookieManagement -DSingleSignon -DClientWallet \
++ -DTRACING -DXP_PC -DXP_WIN -DXP_WIN32 -DHW_THREADS \
++ -DDMSVC4 -DNS_MT_SUPPORTED -DNETLIB_THREAD \
++ -DOJI -DWIN32 -D_X86_ -D_WINDOWS \
++ -DMOZ_XUL -DMOZ_REFLOW_PERF -DMOZ_REFLOW_PERF_DSP \
++ -DNSPR20 -DOS_HAS_DLL -DNO_JNI_STUBS \
++ -DNETSCAPE -DMOZILLA_CLIENT -DJS_THREADSAFE -DNECKO -DINCLUDE_XUL
++CFLAGS += -GR- -W3 -Gy -MD -UDEBUG
++.ELSE
++INCPRE += . -I.. -I$(MOZ_INC) -I$(MOZ_INC)$/nspr
++CDEFS += -DDEBUG -DWINVER=0x400 -DMOZILLA_CLIENT \
++ -DNS_NET_FILE -DCookieManagement -DSingleSignon -DClientWallet \
++ -DTRACING -DXP_PC -DXP_WIN -DXP_WIN32 -DHW_THREADS \
++ -DDMSVC4 -DDEVELOPER_DEBUG -DNS_MT_SUPPORTED -DNETLIB_THREAD \
++ -DOJI -D_DEBUG -DWIN32 -D_X86_ -D_WINDOWS \
++ -DMOZ_XUL -DMOZ_REFLOW_PERF -DMOZ_REFLOW_PERF_DSP \
++ -DDEBUG_Administrator -DNSPR20 -DOS_HAS_DLL -DNO_JNI_STUBS \
++ -DNETSCAPE -DMOZILLA_CLIENT -DJS_THREADSAFE -DNECKO -DINCLUDE_XUL
++CFLAGS += -Zi -GR- -W3 -Gy -MDd -UNDEBUG
++.ENDIF
++.ENDIF
++.IF "$(GUI)" == "UNX"
++INCPRE += . -I.. -I..$/.. -I$(MOZ_INC) -I$(MOZ_INC)$/nspr
++CDEFS+= -DMOZILLA_CLIENT \
++ -DOSTYPE=\"Linux2.2.14-5\" -DOJI
++.IF "$(OS)" == "LINUX"
++CFLAGS += -fPIC -g
++CFLAGSCXX += \
++ -fno-rtti -Wall -Wconversion -Wpointer-arith \
++ -Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth \
++ -Wno-long-long -pthread
++CDEFS += -DTRACING
++.ELIF "$(OS)" == "NETBSD"
++CFLAGS += -fPIC
++CFLAGSCXX += \
++ -fno-rtti -Wall -Wconversion -Wpointer-arith \
++ -Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth \
++ -Wno-long-long
++CDEFS += -DTRACING
++.ENDIF
++.ENDIF
++
++SHL1TARGET_NAME=$(TARGET)$(MOZAB_MAJOR)
++
++
++# --- Targets ----------------------------------
++
++.INCLUDE : target.mk
++
++
++killdpc:
++ -+$(RM) $(DPCTARGET)
++ -+$(RM) $(DEPFILES)
++ @+echo Dependency files removed
++
diff --git a/misc/openoffice/patches/patch-au b/misc/openoffice/patches/patch-au
new file mode 100644
index 00000000000..2eeea8558d5
--- /dev/null
+++ b/misc/openoffice/patches/patch-au
@@ -0,0 +1,17 @@
+$NetBSD: patch-au,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../connectivity/source/drivers/mozaddressbook/mozillasrc/makefile.mk.orig Tue Jan 1 14:08:59 2002
++++ ../connectivity/source/drivers/mozaddressbook/mozillasrc/makefile.mk
+@@ -165,6 +165,12 @@
+ -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith \
+ -Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth \
+ -Wno-long-long -pthread -DTRACING -g
++.ELIF "$(OS)" == "NETBSD"
++# INCPRE += -I.. -I$(MOZ_INC) -DDEBUG -DMOZILLA_CLIENT
++INCPRE += -fPIC \
++ -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith \
++ -Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth \
++ -Wno-long-long -DTRACING
+ .ENDIF
+ .ENDIF
+
diff --git a/misc/openoffice/patches/patch-av b/misc/openoffice/patches/patch-av
new file mode 100644
index 00000000000..68edb8d19bd
--- /dev/null
+++ b/misc/openoffice/patches/patch-av
@@ -0,0 +1,18 @@
+$NetBSD: patch-av,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../connectivity/source/manager/makefile.mk.orig Tue Jan 1 14:09:00 2002
++++ ../connectivity/source/manager/makefile.mk
+@@ -92,11 +92,11 @@
+ .ENDIF
+ SHL1OBJS=$(SLOFILES)
+ SHL1STDLIBS=\
++ $(SALLIB) \
+ $(CPPULIB) \
+ $(CPPUHELPERLIB) \
+ $(VOSLIB) \
+- $(OSLLIB) \
+- $(SALLIB)
++ $(OSLLIB)
+
+ SHL1DEPN=
+ SHL1IMPLIB= i$(SHL1TARGET)
diff --git a/misc/openoffice/patches/patch-aw b/misc/openoffice/patches/patch-aw
new file mode 100644
index 00000000000..7e95cd56304
--- /dev/null
+++ b/misc/openoffice/patches/patch-aw
@@ -0,0 +1,15 @@
+$NetBSD: patch-aw,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../cppuhelper/source/makefile.mk.orig Tue Jan 1 14:09:04 2002
++++ ../cppuhelper/source/makefile.mk
+@@ -149,8 +149,8 @@
+ SHL1TARGET=$(TARGET)$(UDK_MAJOR)$(COM)
+
+ SHL1STDLIBS= \
+- $(CPPULIB) \
+- $(SALLIB)
++ $(SALLIB) \
++ $(CPPULIB)
+
+ SHL1DEPN=
+ SHL1IMPLIB=i$(TARGET)
diff --git a/misc/openoffice/patches/patch-ax b/misc/openoffice/patches/patch-ax
new file mode 100644
index 00000000000..862b1bea640
--- /dev/null
+++ b/misc/openoffice/patches/patch-ax
@@ -0,0 +1,26 @@
+$NetBSD: patch-ax,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../dtrans/source/X11/X11_selection.cxx.orig Tue Sep 11 11:23:56 2001
++++ ../dtrans/source/X11/X11_selection.cxx
+@@ -63,7 +63,7 @@
+ #include <stdio.h>
+ #include <X11/Xatom.h>
+ #include <X11/keysym.h>
+-#ifdef LINUX
++#if defined(LINUX) || defined(NETBSD)
+ #include <sys/poll.h>
+ #else
+ #include <poll.h>
+@@ -2681,7 +2681,12 @@
+ aPollFD.revents = 0;
+
+ // wait for activity (outside the xlib)
++#if defined(NETBSD)
++ // PSEUDOTHREADS: never block as this stops the complete program
++ if( poll( &aPollFD, 1, 0 ) > 0 )
++#else
+ if( poll( &aPollFD, 1, millisec ) > 0 )
++#endif
+ {
+ // now acquire the mutex to prevent other threads
+ // from using the same X connection
diff --git a/misc/openoffice/patches/patch-ay b/misc/openoffice/patches/patch-ay
new file mode 100644
index 00000000000..79c379c6427
--- /dev/null
+++ b/misc/openoffice/patches/patch-ay
@@ -0,0 +1,17 @@
+$NetBSD: patch-ay,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../eventattacher/source/makefile.mk.orig Tue Jan 1 14:09:28 2002
++++ ../eventattacher/source/makefile.mk
+@@ -110,10 +110,10 @@
+ SHL1TARGET= $(TARGET)
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+ $(CPPUHELPERLIB) \
+- $(VOSLIB) \
+- $(SALLIB)
++ $(VOSLIB)
+
+ SHL1DEPN=
+ SHL1IMPLIB= i$(TARGET)
diff --git a/misc/openoffice/patches/patch-az b/misc/openoffice/patches/patch-az
new file mode 100644
index 00000000000..8a824a45712
--- /dev/null
+++ b/misc/openoffice/patches/patch-az
@@ -0,0 +1,13 @@
+$NetBSD: patch-az,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../extensions/source/plugin/unx/makefile.mk.orig Tue Jan 1 14:09:38 2002
++++ ../extensions/source/plugin/unx/makefile.mk
+@@ -90,6 +90,8 @@
+ $(SALLIB)
+ .IF "$(OS)"=="SOLARIS" || "$(OS)"=="SCO" || "$(OS)"=="HPUX"
+ APP1STDLIBS+=-lXm -lXt -lX11 -ldl
++.ELIF "$(OS)"=="NETBSD"
++APP1STDLIBS+=-lXaw -lXt -lX11
+ .ELSE
+ APP1STDLIBS+=-lXaw -lXt -lX11 -ldl
+ .ENDIF
diff --git a/misc/openoffice/patches/patch-ba b/misc/openoffice/patches/patch-ba
new file mode 100644
index 00000000000..05a33a326da
--- /dev/null
+++ b/misc/openoffice/patches/patch-ba
@@ -0,0 +1,13 @@
+$NetBSD: patch-ba,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../external/prj/d.lst.orig Tue Sep 4 22:51:08 2001
++++ ../external/prj/d.lst
+@@ -60,6 +60,8 @@
+ ..\%__SRC%\lib\libascii_expat_xmlparse.a %_DEST%\lib%_EXT%\libascii_expat_xmlparse.a
+ ..\%__SRC%\slb\gnu_getopt.lib %_DEST%\lib%_EXT%\gnu_getopt.lib
+ ..\%__SRC%\lib\libgnu_getopt.a %_DEST%\lib%_EXT%\libgnu_getopt.a
++..\%__SRC%\slb\gnu_readdir_r.lib %_DEST%\lib%_EXT%\gnu_readdir_r.lib
++..\%__SRC%\lib\libgnu_readdir_r.a %_DEST%\lib%_EXT%\libgnu_readdir_r.a
+ ..\%__SRC%\slb\zlib.lib %_DEST%\lib%_EXT%\zlib.lib
+ ..\%__SRC%\lib\libzlib.a %_DEST%\lib%_EXT%\libzlib.a
+ ..\%__SRC%\lib\libfreetype.a %_DEST%\lib%_EXT%\libfreetype.a
diff --git a/misc/openoffice/patches/patch-bb b/misc/openoffice/patches/patch-bb
new file mode 100644
index 00000000000..5d9fe6f2403
--- /dev/null
+++ b/misc/openoffice/patches/patch-bb
@@ -0,0 +1,16 @@
+$NetBSD: patch-bb,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../javaunohelper/source/makefile.mk.orig Tue Jan 1 14:10:20 2002
++++ ../javaunohelper/source/makefile.mk
+@@ -110,9 +110,9 @@
+ SHL1TARGET= $(TARGET)
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+- $(CPPUHELPERLIB) \
+- $(SALLIB)
++ $(CPPUHELPERLIB)
+
+ SHL1DEPN=
+ SHL1IMPLIB= i$(TARGET)
diff --git a/misc/openoffice/patches/patch-bc b/misc/openoffice/patches/patch-bc
new file mode 100644
index 00000000000..baf372e6b3b
--- /dev/null
+++ b/misc/openoffice/patches/patch-bc
@@ -0,0 +1,13 @@
+$NetBSD: patch-bc,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../product/inc/scp/udk_bridgesfiles.scp.orig Mon Jul 9 15:10:14 2001
++++ ../product/inc/scp/udk_bridgesfiles.scp
+@@ -21,7 +21,7 @@
+ End
+ */
+
+-#if defined(LINUX) || defined(FREEBSD) // ACHUNG: Hier reine Linux-Dateien
++#if defined(LINUX) || defined(FREEBSD) || defined(NETBSD) // ACHUNG: Hier reine Linux-Dateien
+
+ File gid_File_Lib_Gcc2_Uno
+ BIN_FILE_BODY;
diff --git a/misc/openoffice/patches/patch-bd b/misc/openoffice/patches/patch-bd
new file mode 100644
index 00000000000..9de1948337c
--- /dev/null
+++ b/misc/openoffice/patches/patch-bd
@@ -0,0 +1,32 @@
+$NetBSD: patch-bd,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../product/util/makefile.mk.orig Tue Jan 1 14:10:58 2002
++++ ../product/util/makefile.mk
+@@ -101,6 +101,16 @@
+ STLPORTLIBNAME=libstlport_gcc.so
+ BINDINGDLL=gcc2_uno
+
++.ELIF "$(OS)"=="NETBSD"
++###########
++# NETBSD
++###########
++DESTDIRBIN=$(DESTDIR)$/netbsd$/bin
++DESTDIRLIB=$(DESTDIR)$/netbsd$/lib
++DESTDIRDLL=$(DESTDIRLIB)
++STLPORTLIBNAME=libstlport_gcc.so
++BINDINGDLL=gcc2_uno
++
+ .ELIF "$(OS)"=="WNT"
+ ###############
+ # WINDOWS
+@@ -360,8 +370,8 @@
+ $(GNUCOPY) -p $(DLLOUT)$/$(@:f) $@
+
+ $(DESTDIRDLL)$/%$(MY_VERSION_LINKPOSTFIX) : $(DESTDIRDLL)$/%$(MY_VERSION_DLLPOSTFIX) $(DIRLIST)
+- +ln -s $(@:f)$(MY_VERSION_LINKTARGETPOSTFIX) $@
+- +ln -s $(@:f)$(MY_VERSION_LINKTARGETPOSTFIX) $(@:db)
++ +ln -sf $(@:f)$(MY_VERSION_LINKTARGETPOSTFIX) $@
++ +ln -sf $(@:f)$(MY_VERSION_LINKTARGETPOSTFIX) $(@:db)
+
+ $(DESTDIRJAR)$/%.jar : $(BINOUT)$/%.jar $(DIRLIST)
+ $(GNUCOPY) -p $(BINOUT)$/$(@:f) $@
diff --git a/misc/openoffice/patches/patch-be b/misc/openoffice/patches/patch-be
new file mode 100644
index 00000000000..8188f2655c1
--- /dev/null
+++ b/misc/openoffice/patches/patch-be
@@ -0,0 +1,20 @@
+$NetBSD: patch-be,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../readlicense/source/readme/unxbsdi/README.orig Sun Jan 6 11:30:15 2002
++++ ../readlicense/source/readme/unxbsdi/README
+@@ -0,0 +1,14 @@
++(Temporary readme text file)
++
++To be used for changes / corrections made after copy deadline or very important notices.
++
++For latest information please visit:
++
++http://www.openoffice.org/
++
++
++Your OpenOffice.org Team
++
++
++------------------------------------
++Copyright 2000 OpenOffice.org. All rights reserved.
+\ No newline at end of file
diff --git a/misc/openoffice/patches/patch-bf b/misc/openoffice/patches/patch-bf
new file mode 100644
index 00000000000..13c8b8e7ba6
--- /dev/null
+++ b/misc/openoffice/patches/patch-bf
@@ -0,0 +1,20 @@
+$NetBSD: patch-bf,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../readlicense/source/readme/unxbsdppc/README.orig Sun Jan 6 11:30:19 2002
++++ ../readlicense/source/readme/unxbsdppc/README
+@@ -0,0 +1,14 @@
++(Temporary readme text file)
++
++To be used for changes / corrections made after copy deadline or very important notices.
++
++For latest information please visit:
++
++http://www.openoffice.org/
++
++
++Your OpenOffice.org Team
++
++
++------------------------------------
++Copyright 2000 OpenOffice.org. All rights reserved.
+\ No newline at end of file
diff --git a/misc/openoffice/patches/patch-bg b/misc/openoffice/patches/patch-bg
new file mode 100644
index 00000000000..1793bbfe3e5
--- /dev/null
+++ b/misc/openoffice/patches/patch-bg
@@ -0,0 +1,16 @@
+$NetBSD: patch-bg,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../remotebridges/source/unourl_resolver/makefile.mk.orig Tue Jan 1 14:11:01 2002
++++ ../remotebridges/source/unourl_resolver/makefile.mk
+@@ -102,9 +102,9 @@
+ SHL1VERSIONMAP= $(TARGET).map
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+- $(CPPUHELPERLIB) \
+- $(SALLIB)
++ $(CPPUHELPERLIB)
+
+ SHL1DEPN=
+ SHL1IMPLIB= i$(TARGET)
diff --git a/misc/openoffice/patches/patch-bh b/misc/openoffice/patches/patch-bh
new file mode 100644
index 00000000000..5844bce662e
--- /dev/null
+++ b/misc/openoffice/patches/patch-bh
@@ -0,0 +1,27 @@
+$NetBSD: patch-bh,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../sablot/Sablot-0.52.patch.orig Sun Jan 6 13:12:45 2002
++++ ../sablot/Sablot-0.52.patch
+@@ -4,5 +4,5 @@
+ *** 1 ****
+ ! dummy
+---- 1,147 ----
++--- 1,151 ----
+ ! #*************************************************************************
+ ! #
+@@ -86,10 +86,14 @@
+ ! .ENDIF
+ !
+-! .IF "$(OS)"=="LINUX" || "$(OS)"=="MACOSX" || "$(OS)"=="IRIX"
++! .IF "$(OS)"=="LINUX" || "$(OS)"=="MACOSX" || "$(OS)"=="IRIX" || "$(OS)"=="NETBSD"
+ ! CFLAGS+= -DHAVE_UNISTD_H
+ ! .ENDIF
+ !
+ ! .IF "$(GUI)"=="UNX"
++! .IF "$(OS)"=="NETBSD"
++! CFLAGS+= -DHAVE_SYS_TIMEB_H -DHAVE_GETTIMEOFDAY -DHAVE_ISNAN -DHAVE_FINITE
++! .ELSE
+ ! CFLAGS+= -DHAVE_SYS_TIMEB_H -DHAVE_FTIME -DHAVE_ISNAN -DHAVE_FINITE
++! .ENDIF
+ ! .ENDIF
+ !
diff --git a/misc/openoffice/patches/patch-bi b/misc/openoffice/patches/patch-bi
new file mode 100644
index 00000000000..7e36b6a2d37
--- /dev/null
+++ b/misc/openoffice/patches/patch-bi
@@ -0,0 +1,75 @@
+$NetBSD: patch-bi,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../sal/osl/unx/file.c.orig Thu Oct 4 15:09:21 2001
++++ ../sal/osl/unx/file.c
+@@ -123,11 +123,16 @@
+ #include <ctype.h>
+ static const sal_Char* MOUNTTAB="/etc/mtab";
+
+-#elif defined(NETBSD)
++#elif defined(NETBSD) || defined(FREEBSD)
++#include <sys/param.h>
++#include <sys/ucred.h>
+ #include <sys/mount.h>
+ #include <ufs/ufs/quota.h>
+ #include <ctype.h>
+-static const sal_Char* MOUNTTAB="/etc/mtab";
++#define HAVE_STATFS_H
++/* No mounting table on *BSD
++ * This information is stored only in the kernel. */
++/* static const sal_Char* MOUNTTAB="/etc/mtab"; */
+
+ #elif defined(IRIX)
+ #include <mntent.h>
+@@ -137,7 +142,7 @@
+ #include <ctype.h>
+ static const sal_Char* MOUNTTAB="/etc/mtab";
+
+-#elif defined(MACOSX) || defined(FREEBSD)
++#elif defined(MACOSX)
+ #include <ufs/ufs/quota.h>
+ #include <ctype.h>
+ static const sal_Char* MOUNTTAB="/etc/mtab";
+@@ -4224,10 +4229,20 @@
+ mntfile = fopen(MOUNTTAB,"r");
+ #endif /* SOLARIS */
+
++#if defined(NETBSD) || defined(FREEBSD)
++ struct statfs *mntbufp;
++ int mntentries,i;
++ mntentries = getmntinfo(&mntbufp,MNT_WAIT);
+
+ buffer[0] = '\0';
+
++ if(mntentries == 0)
++#else
++
++ buffer[0] = '\0';
++
+ if ( mntfile == 0 )
++#endif
+ {
+ nRet=errno;
+ #ifdef DEBUG_OSL_FILE
+@@ -4286,7 +4301,21 @@
+ }
+ #endif /* SOLARIS */
+
++#if defined(NETBSD) || defined(FREEBSD)
++ i=0;
++ while ( i < mntentries )
++ {
++ if ( strcmp(mntbufp[i].f_mntonname,buffer) == 0 )
++ {
++ *bMountPoint=sal_True;
++ return osl_File_E_None;
++ }
++ i++;
++ }
++#endif
++#if ! ( defined(NETBSD) || defined(FREEBSD) )
+ fclose(mntfile);
++#endif
+ *bMountPoint=sal_False;
+ return osl_File_E_None;
+ }
diff --git a/misc/openoffice/patches/patch-bj b/misc/openoffice/patches/patch-bj
new file mode 100644
index 00000000000..33ac92a60a0
--- /dev/null
+++ b/misc/openoffice/patches/patch-bj
@@ -0,0 +1,105 @@
+$NetBSD: patch-bj,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../sal/osl/unx/nlsupport.c.orig Mon Nov 12 21:21:31 2001
++++ ../sal/osl/unx/nlsupport.c
+@@ -63,7 +63,7 @@
+ #include <osl/diagnose.h>
+ #include <osl/process.h>
+
+-#if defined(LINUX) || defined(SOLARIS)
++#if defined(LINUX) || defined(SOLARIS) || defined(NETBSD)
+ #include <pthread.h>
+ #include <locale.h>
+ #include <langinfo.h>
+@@ -242,7 +242,7 @@
+ return NULL;
+ }
+
+-#if defined(LINUX) || defined(SOLARIS)
++#if defined(LINUX) || defined(SOLARIS) || defined(NETBSD)
+
+ /*
+ * This implementation of osl_getTextEncodingFromLocale maps
+@@ -296,7 +296,7 @@
+ /* XXX MS-874 is an extension to tis620, so this is not
+ * really equivalent */
+
+-#elif defined(LINUX)
++#elif defined(LINUX) || defined(NETBSD)
+
+ const _pair _nl_language_list[] = {
+ { "ANSI_X3.110-1983", RTL_TEXTENCODING_DONTKNOW }, /* ISO-IR-99 NAPLPS */
+@@ -477,7 +477,7 @@
+ { "WIN-SAMI-2", RTL_TEXTENCODING_DONTKNOW } /* WS2 */
+ };
+
+-#endif /* ifdef LINUX */
++#endif /* ifdef LINUX || NETBSD */
+
+ static pthread_mutex_t aLocalMutex = PTHREAD_MUTEX_INITIALIZER;
+
+@@ -516,7 +516,11 @@
+ }
+
+ /* get the charset as indicated by the LC_CTYPE locale */
++#if defined(NETBSD) && !defined(CODESET)
++ codeset = NULL;
++#else
+ codeset = nl_langinfo( CODESET );
++#endif
+
+ if ( codeset != NULL )
+ {
+@@ -595,7 +599,7 @@
+ return ret;
+ }
+
+-#elif defined(MACOSX) /* ifdef LINUX || SOLARIS */
++#elif defined(MACOSX) /* ifdef LINUX || SOLARIS || NETBSD */
+
+ /*
+ * FIXME: the MacOS X implemetation is missing
+@@ -628,7 +632,7 @@
+ return 0;
+ }
+
+-#else /* ifdef LINUX || SOLARIS || MACOSX */
++#else /* ifdef LINUX || SOLARIS || MACOSX || NETBSD */
+
+ /*
+ * This implementation of osl_getTextEncodingFromLocale maps
+@@ -829,7 +833,7 @@
+ snprintf(env_buf, sizeof(env_buf), "LC_ALL=%s", locale_buf);
+ env_buf[sizeof(env_buf)] = '\0';
+ putenv(env_buf);
+-#elif defined( FREEBSD ) || defined( NETBSD )
++#elif defined( FREEBSD )
+ setenv( "LC_ALL", locale_buf, 1);
+ #else
+ setenv( "LC_ALL", locale_buf );
+@@ -841,7 +845,7 @@
+ snprintf(env_buf, sizeof(env_buf), "LC_CTYPE=%s", locale_buf);
+ env_buf[sizeof(env_buf)] = '\0';
+ putenv(env_buf);
+-#elif defined( FREEBAD ) || defined( NETBSD )
++#elif defined( FREEBAD )
+ setenv("LC_CTYPE", locale_buf, 1 );
+ #else
+ setenv( "LC_CTYPE", locale_buf );
+@@ -853,7 +857,7 @@
+ snprintf(env_buf, sizeof(env_buf), "LANG=%s", locale_buf);
+ env_buf[sizeof(env_buf)] = '\0';
+ putenv(env_buf);
+-#elif defined( FREEBAD ) || defined( NETBSD )
++#elif defined( FREEBAD )
+ setenv("LC_CTYPE", locale_buf, 1 );
+ #else
+ setenv( "LANG", locale_buf );
+@@ -864,6 +868,6 @@
+ return 0;
+ }
+
+-#endif /* ifdef LINUX || SOLARIS || MACOSX*/
++#endif /* ifdef LINUX || SOLARIS || MACOSX || NETBSD */
+
+
diff --git a/misc/openoffice/patches/patch-bk b/misc/openoffice/patches/patch-bk
new file mode 100644
index 00000000000..e57b53fa094
--- /dev/null
+++ b/misc/openoffice/patches/patch-bk
@@ -0,0 +1,16 @@
+$NetBSD: patch-bk,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../sal/osl/unx/pipe.c.orig Tue May 29 07:38:32 2001
++++ ../sal/osl/unx/pipe.c
+@@ -264,7 +264,11 @@
+
+ addr.sun_family = AF_UNIX;
+ strcpy(addr.sun_path, name);
++#if defined(NETBSD)
++ len = sizeof(addr);
++#else
+ len = sizeof(addr.sun_family) + strlen(addr.sun_path);
++#endif
+
+ if ( Options & osl_Pipe_CREATE )
+ {
diff --git a/misc/openoffice/patches/patch-bl b/misc/openoffice/patches/patch-bl
new file mode 100644
index 00000000000..ba02479735f
--- /dev/null
+++ b/misc/openoffice/patches/patch-bl
@@ -0,0 +1,13 @@
+$NetBSD: patch-bl,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../sal/osl/unx/socket.c.orig Thu Nov 22 15:14:54 2001
++++ ../sal/osl/unx/socket.c
+@@ -82,7 +82,7 @@
+ #undef HAVE_POLL_H
+ #endif
+
+-#if defined(LINUX) || defined (IRIX)
++#if defined(LINUX) || defined (IRIX) || defined(NETBSD)
+ #include <sys/poll.h>
+ #define HAVE_POLL_H
+ #endif /* HAVE_POLL_H */
diff --git a/misc/openoffice/patches/patch-bm b/misc/openoffice/patches/patch-bm
new file mode 100644
index 00000000000..c5216d535fb
--- /dev/null
+++ b/misc/openoffice/patches/patch-bm
@@ -0,0 +1,129 @@
+$NetBSD: patch-bm,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../sal/osl/unx/system.c.orig Wed Feb 28 13:08:45 2001
++++ ../sal/osl/unx/system.c
+@@ -126,6 +126,73 @@
+ return res;
+ }
+
++int getpwuid_r(uid_t uid, struct passwd *pwd, char *buffer,
++ size_t buflen, struct passwd **result)
++{
++ struct passwd* res;
++
++ pthread_mutex_lock(&getrtl_mutex);
++
++ if ( res = getpwuid(uid) )
++ {
++ size_t pw_name, pw_passwd, pw_class, pw_gecos, pw_dir, pw_shell;
++
++ pw_name = strlen(res->pw_name)+1;
++ pw_passwd = strlen(res->pw_passwd)+1;
++ pw_class = strlen(res->pw_class)+1;
++ pw_gecos = strlen(res->pw_gecos)+1;
++ pw_dir = strlen(res->pw_dir)+1;
++ pw_shell = strlen(res->pw_shell)+1;
++
++ if (pw_name+pw_passwd+pw_class+pw_gecos
++ +pw_dir+pw_shell < buflen)
++ {
++ memcpy(pwd, res, sizeof(struct passwd));
++
++ strncpy(buffer, res->pw_name, pw_name);
++ pwd->pw_name = buffer;
++ buffer += pw_name;
++
++ strncpy(buffer, res->pw_passwd, pw_passwd);
++ pwd->pw_passwd = buffer;
++ buffer += pw_passwd;
++
++ strncpy(buffer, res->pw_class, pw_class);
++ pwd->pw_class = buffer;
++ buffer += pw_class;
++
++ strncpy(buffer, res->pw_gecos, pw_gecos);
++ pwd->pw_gecos = buffer;
++ buffer += pw_gecos;
++
++ strncpy(buffer, res->pw_dir, pw_dir);
++ pwd->pw_dir = buffer;
++ buffer += pw_dir;
++
++ strncpy(buffer, res->pw_shell, pw_shell);
++ pwd->pw_shell = buffer;
++ buffer += pw_shell;
++
++ *result = pwd ;
++ res = 0 ;
++
++ } else {
++
++ res = ENOMEM ;
++
++ }
++
++ } else {
++
++ res = errno ;
++
++ }
++
++ pthread_mutex_unlock(&getrtl_mutex);
++
++ return res;
++}
++
+ struct tm *localtime_r(const time_t *timep, struct tm *buffer)
+ {
+ struct tm* res;
+@@ -449,3 +516,50 @@
+ }
+ #endif
+
++#if defined(NETBSD) || defined(FREEBSD)
++char *fcvt(double value, int ndigit, int *decpt, int *sign)
++{
++ static char ret[256];
++ char buf[256],zahl[256],format[256]="%";
++ char *v1,*v2;
++
++ if (value==0.0) value=1e-30;
++
++ if (value<0.0) *sign=1; else *sign=0;
++
++ if (value<1.0)
++ {
++ *decpt=(int)log10(value);
++ value*=pow(10.0,1-*decpt);
++ ndigit+=*decpt-1;
++ if (ndigit<0) ndigit=0;
++ }
++ else
++ {
++ *decpt=(int)log10(value)+1;
++ }
++
++ sprintf(zahl,"%d",ndigit);
++ strcat(format,zahl);
++ strcat(format,".");
++ strcat(format,zahl);
++ strcat(format,"f");
++
++ sprintf(buf,format,value);
++
++ if (ndigit!=0)
++ {
++ v1=strtok(buf,".");
++ v2=strtok(NULL,".");
++ strcpy(ret,v1);
++ strcat(ret,v2);
++ }
++ else
++ {
++ strcpy(ret,buf);
++ }
++
++ return(ret);
++}
++
++#endif
diff --git a/misc/openoffice/patches/patch-bn b/misc/openoffice/patches/patch-bn
new file mode 100644
index 00000000000..ed0fd899364
--- /dev/null
+++ b/misc/openoffice/patches/patch-bn
@@ -0,0 +1,21 @@
+$NetBSD: patch-bn,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../sal/util/makefile.mk.orig Tue Jan 1 14:11:15 2002
++++ ../sal/util/makefile.mk
+@@ -148,9 +148,13 @@
+ SHL1STDLIBS= -lpthread -lposix4
+ .IF "$(COM)" == "C50"
+ SHL1STDLIBS+= -z allextract -staticlib=Crun -z defaultextract
+-.ENDIF
+-.ENDIF
+-.ENDIF
++.ENDIF # COM == C50
++.ENDIF # OS == SOLARIS
++.IF "$(OS)"=="NETBSD"
++SHL1STDLIBS+= -Wl,--whole-archive -lgnu_readdir_r -Wl,--no-whole-archive
++.ENDIF # OS == NETBSD
++.ENDIF # GUI == UNX
++
+
+ .IF "$(GUI)"=="OS2"
+ SHL1STDLIBS=n:\toolkit4\lib\so32dll.lib\
diff --git a/misc/openoffice/patches/patch-bo b/misc/openoffice/patches/patch-bo
new file mode 100644
index 00000000000..afdbbe42d8e
--- /dev/null
+++ b/misc/openoffice/patches/patch-bo
@@ -0,0 +1,20 @@
+$NetBSD: patch-bo,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../sal/util/sal.map.orig Tue Sep 25 08:49:38 2001
++++ ../sal/util/sal.map
+@@ -478,6 +478,15 @@
+ rtl_tres_destroy;
+ osl_getProcessLocale;
+ osl_setProcessLocale;
++
++ readdir_r;
++ gethostbyname_r;
++ getpwnam_r;
++ getpwuid_r;
++ gmtime_r;
++ localtime_r;
++ fcvt;
++
+ local:
+ *;
+ };
diff --git a/misc/openoffice/patches/patch-bp b/misc/openoffice/patches/patch-bp
new file mode 100644
index 00000000000..4af62657472
--- /dev/null
+++ b/misc/openoffice/patches/patch-bp
@@ -0,0 +1,39 @@
+$NetBSD: patch-bp,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../scp/source/global/setupzip.scp.orig Wed Nov 14 15:01:30 2001
++++ ../scp/source/global/setupzip.scp
+@@ -113,13 +113,24 @@
+ Name = "libstlport_sunpro.so";
+ #endif
+ #ifdef GCC
+- Name = "libstlport_gcc.so";
++ Name = "libstlport_gcc.so.0";
+ #endif
+ #else
+ Name = "stlport_vc6.dll";
+ #endif
+ End
+
++File GID_FILE_LIB_STLPORT2
++ BIN_FILE_BODY;
++ Styles = (PACKED, SETUPZIP);
++ Dir = GCFG_BINARY_DIR;
++#ifdef UNX
++#ifdef GCC
++ Name = "libstlport2_gcc.so";
++#endif
++#endif
++End
++
+ #if !defined(OSL_PRODUCT) && !defined(IPL_PRODUCT) && !defined(OPL_PRODUCT)
+
+ #ifndef WEM_PRODUCT
+@@ -225,7 +236,7 @@
+
+ #if defined (CLASSIC_FAT_PRODUCT) || defined (OSL_PRODUCT)
+
+-STD_SETUPZIP_LIB_FILE( GID_FILE_LIB_REGMIMETYPES, regmimetypes )
++// STD_SETUPZIP_LIB_FILE( GID_FILE_LIB_REGMIMETYPES, regmimetypes )
+
+ #endif
+
diff --git a/misc/openoffice/patches/patch-bq b/misc/openoffice/patches/patch-bq
new file mode 100644
index 00000000000..f9be13c4f92
--- /dev/null
+++ b/misc/openoffice/patches/patch-bq
@@ -0,0 +1,12 @@
+$NetBSD: patch-bq,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../setup2/script/setupserver.orig Fri Nov 17 11:29:29 2000
++++ ../setup2/script/setupserver
+@@ -234,6 +234,7 @@
+ sd_platform=`uname -s`
+ case $sd_platform in
+ SCO_SV) test=/bin/test ;;
++ NetBSD) test=/bin/test ;;
+ *) test=/usr/bin/test ;;
+ esac
+ sd_cwd="`pwd`"
diff --git a/misc/openoffice/patches/patch-br b/misc/openoffice/patches/patch-br
new file mode 100644
index 00000000000..c560240955f
--- /dev/null
+++ b/misc/openoffice/patches/patch-br
@@ -0,0 +1,13 @@
+$NetBSD: patch-br,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../setup2/source/agenda/agenda.cxx.orig Thu Oct 18 09:25:12 2001
++++ ../setup2/source/agenda/agenda.cxx
+@@ -1447,7 +1447,7 @@
+
+ #ifdef UNX
+ char passwd[1024];
+- #if defined (LINUX) || defined(IRIX) || defined(FREEBSD)
++ #if defined (LINUX) || defined(IRIX) || defined(FREEBSD) || defined(NETBSD)
+ strcpy( passwd, getpass("Enter administrator password for configuration server: "));
+ #elif MACOSX
+ strcpy( passwd, getpass("Enter administrator password for configuration server: "));
diff --git a/misc/openoffice/patches/patch-bs b/misc/openoffice/patches/patch-bs
new file mode 100644
index 00000000000..2a3acedb9c2
--- /dev/null
+++ b/misc/openoffice/patches/patch-bs
@@ -0,0 +1,12 @@
+$NetBSD: patch-bs,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../setup2/source/custom/jvmsetup/loader/jvmsetup.sh.orig Thu Mar 1 16:35:57 2001
++++ ../setup2/source/custom/jvmsetup/loader/jvmsetup.sh
+@@ -65,6 +65,7 @@
+ sd_platform=`uname -s`
+ case $sd_platform in
+ SCO_SV) test=/bin/test ;;
++ NetBSD) test=/bin/test ;;
+ *) test=/usr/bin/test ;;
+ esac
+
diff --git a/misc/openoffice/patches/patch-bt b/misc/openoffice/patches/patch-bt
new file mode 100644
index 00000000000..b3f5f2b65f4
--- /dev/null
+++ b/misc/openoffice/patches/patch-bt
@@ -0,0 +1,16 @@
+$NetBSD: patch-bt,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../setup2/source/ui/pages/paddr.cxx.orig Fri Sep 14 09:56:31 2001
++++ ../setup2/source/ui/pages/paddr.cxx
+@@ -178,7 +178,10 @@
+ m_aCountryList.SetDropDownLineCount( 5 );
+
+ #ifdef UNX
+- m_aShortName.SetText( UniString::CreateFromAscii(getenv("LOGNAME")) );
++ // LOGNAME may be unset -- passed down pointer must not be NULL
++ sal_Char* getlogname = getenv("LOGNAME");
++ if (getlogname == NULL) { getlogname = ""; };
++ m_aShortName.SetText( UniString::CreateFromAscii(getlogname) );
+ #else
+ m_aFirstName.SetModifyHdl( LINK( this, PageAddress, ModifyHdl ) );
+ m_aName.SetModifyHdl( LINK( this, PageAddress, ModifyHdl ) );
diff --git a/misc/openoffice/patches/patch-bu b/misc/openoffice/patches/patch-bu
new file mode 100644
index 00000000000..c3cad13b3db
--- /dev/null
+++ b/misc/openoffice/patches/patch-bu
@@ -0,0 +1,18 @@
+$NetBSD: patch-bu,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../shell/source/cmdmail/makefile.mk.orig Tue Jan 1 14:11:38 2002
++++ ../shell/source/cmdmail/makefile.mk
+@@ -81,9 +81,10 @@
+
+ SHL1TARGET=$(TARGET)
+
+-SHL1STDLIBS=$(CPPULIB)\
+- $(CPPUHELPERLIB)\
+- $(SALLIB)
++SHL1STDLIBS=\
++ $(SALLIB)\
++ $(CPPULIB)\
++ $(CPPUHELPERLIB)
+
+ SHL1LIBS=
+
diff --git a/misc/openoffice/patches/patch-bv b/misc/openoffice/patches/patch-bv
new file mode 100644
index 00000000000..269830b70c5
--- /dev/null
+++ b/misc/openoffice/patches/patch-bv
@@ -0,0 +1,18 @@
+$NetBSD: patch-bv,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../shell/source/proxysettings/makefile.mk.orig Tue Jan 1 14:11:38 2002
++++ ../shell/source/proxysettings/makefile.mk
+@@ -85,9 +85,10 @@
+
+ SHL1TARGET=$(TARGET)
+
+-SHL1STDLIBS=$(CPPULIB)\
+- $(CPPUHELPERLIB)\
+- $(SALLIB)
++SHL1STDLIBS=\
++ $(SALLIB)\
++ $(CPPULIB)\
++ $(CPPUHELPERLIB)
+
+ SHL1LIBS=
+
diff --git a/misc/openoffice/patches/patch-bw b/misc/openoffice/patches/patch-bw
new file mode 100644
index 00000000000..3f78c9d4777
--- /dev/null
+++ b/misc/openoffice/patches/patch-bw
@@ -0,0 +1,18 @@
+$NetBSD: patch-bw,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../shell/source/unix/exec/makefile.mk.orig Tue Jan 1 14:11:38 2002
++++ ../shell/source/unix/exec/makefile.mk
+@@ -79,9 +79,10 @@
+
+ SHL1TARGET=$(TARGET)
+
+-SHL1STDLIBS=$(CPPULIB)\
+- $(CPPUHELPERLIB)\
+- $(SALLIB)
++SHL1STDLIBS=\
++ $(SALLIB)\
++ $(CPPULIB)\
++ $(CPPUHELPERLIB)
+
+ SHL1LIBS=
+
diff --git a/misc/openoffice/patches/patch-bx b/misc/openoffice/patches/patch-bx
new file mode 100644
index 00000000000..27852c7cd77
--- /dev/null
+++ b/misc/openoffice/patches/patch-bx
@@ -0,0 +1,22 @@
+$NetBSD: patch-bx,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../solenv/bin/checkdll.sh.orig Tue Jun 19 13:07:46 2001
++++ ../solenv/bin/checkdll.sh
+@@ -7,7 +7,7 @@
+ # Copyright (c) 2000, Sun Microsystems, Inc.
+ #
+
+-set -- `getopt "L:" "$@"` || {
++set -- `getopt "L:R:W:" "$@"` || {
+ echo "Usage: `basename $0` [-L library_path] <shared_library>" 1>&2
+ exit 1
+ }
+@@ -19,6 +19,8 @@
+ do
+ case $1 in
+ -L) shift; option=$1;;
++ -R) shift;;
++ -W) shift;;
+ --) break;;
+ esac
+ case "${libpath+X}" in
diff --git a/misc/openoffice/patches/patch-by b/misc/openoffice/patches/patch-by
new file mode 100644
index 00000000000..0f3210e23da
--- /dev/null
+++ b/misc/openoffice/patches/patch-by
@@ -0,0 +1,16 @@
+$NetBSD: patch-by,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../solenv/inc/tg_ext.mk.orig Tue Jan 1 14:11:58 2002
++++ ../solenv/inc/tg_ext.mk
+@@ -145,7 +145,11 @@
+ .IF "$(GUI)"=="WNT"
+ +cd $(PACKAGE_DIR) && $(TYPE) $(BACK_PATH)$(PATCH_FILE_NAME) | tr -d "\015" | patch -b -p2 && $(TOUCH) $(PATCH_FLAG_FILE)
+ .ELSE # "$(GUI)"=="WNT"
++.IF "$(OS)"=="NETBSD"
++ +cd $(PACKAGE_DIR) && $(TYPE) $(BACK_PATH)$(PATCH_FILE_NAME) | patch -p2 && $(TOUCH) $(PATCH_FLAG_FILE)
++.ELSE
+ +cd $(PACKAGE_DIR) && $(TYPE) $(BACK_PATH)$(PATCH_FILE_NAME) | patch -b -p2 && $(TOUCH) $(PATCH_FLAG_FILE)
++.ENDIF # "$(OS)"=="NETBSD"
+ .ENDIF # "$(GUI)"=="WNT"
+ .ENDIF # "$(PATCH_FILE_NAME)"=="none" || "$(PATCH_FILE_NAME)"==""
+
diff --git a/misc/openoffice/patches/patch-bz b/misc/openoffice/patches/patch-bz
new file mode 100644
index 00000000000..adc7a86a713
--- /dev/null
+++ b/misc/openoffice/patches/patch-bz
@@ -0,0 +1,207 @@
+$NetBSD: patch-bz,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../solenv/inc/unxbsdi.mk.orig Tue Jan 1 14:11:59 2002
++++ ../solenv/inc/unxbsdi.mk
+@@ -1,77 +1,131 @@
+-# mak file fuer unxbsdi
+
+-ASM=
+-AFLAGS=
++# mk file for unxbsdi
++ASM=gcc
++AFLAGS=-x assembler-with-cpp -c $(CDEFS)
++
++SOLAR_JAVA=TRUE
++JAVAFLAGSDEBUG=-g
++
++# filter for supressing verbose messages from linker
++#not needed at the moment
++#LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
++
++# _PTHREADS is needed for the stl
++CDEFS+=-D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DX86
++
++# this is a platform with JAVA support
++.IF "$(SOLAR_JAVA)"!=""
++JAVADEF=-DSOLAR_JAVA
++.IF "$(debug)"==""
++JAVA_RUNTIME=-ljava
++.ELSE
++JAVA_RUNTIME=-ljava_g
++.ENDIF
++.ENDIF
+
+-cc=gcc -c
+-CC=g++ -c
+-CDEFS+=-D_PTHREADS -D_REENTRANT
+-CDEFS+=-D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE
+-CDEFS+=-DNO_INET_ON_DEMAND -DX86 -DNEW_SOLAR -DNCIfeature
+-CFLAGS+=-w -c $(INCLUDE)
+-CFLAGSCC=-pipe -mpentium
++# name of C++ Compiler
++CC=g++
++# name of C Compiler
++cc=gcc
++# flags for C and C++ Compiler
++CFLAGS=-w -c $(INCLUDE) -I$(SOLARENV)/unxbsdi/usr/include
++# flags for the C++ Compiler
++CFLAGSCC= -pipe
++
++# Flags for enabling exception handling
+ CFLAGSEXCEPTIONS=-fexceptions
++# Flags for disabling exception handling
+ CFLAGS_NO_EXCEPTIONS=-fno-exceptions
+-CFLAGSCXX=-pipe -mpentium -fguiding-decls -frtti
+
+-CFLAGSOBJGUIST=
+-CFLAGSOBJCUIST=
+-CFLAGSOBJGUIMT=
+-CFLAGSOBJCUIMT=
++# -fpermissive should be removed as soon as possible
++CFLAGSCXX= -pipe -fno-for-scope -fpermissive
++
++# Compiler flags for compiling static object in single threaded environment with graphical user interface
++CFLAGSOBJGUIST= -fPIC
++# Compiler flags for compiling static object in single threaded environment with character user interface
++CFLAGSOBJCUIST= -fPIC
++# Compiler flags for compiling static object in multi threaded environment with graphical user interface
++CFLAGSOBJGUIMT= -fPIC
++# Compiler flags for compiling static object in multi threaded environment with character user interface
++CFLAGSOBJCUIMT= -fPIC
++# Compiler flags for compiling shared object in multi threaded environment with graphical user interface
+ CFLAGSSLOGUIMT= -fPIC
++# Compiler flags for compiling shared object in multi threaded environment with character user interface
+ CFLAGSSLOCUIMT= -fPIC
+-CFLAGSPROF= -pg
+-CFLAGSDEBUG= -g
++# Compiler flags for profiling
++CFLAGSPROF=
++# Compiler flags for debugging
++CFLAGSDEBUG=-g
+ CFLAGSDBGUTIL=
+-# die zusaetzlichen Optimierungsschalter schalten alle Optimierungen ein, die zwischen -O und -O2 liegen und
+-# per Schalter einschaltbar sind. Dennoch gibt es einen Unterschied: einige Files im Writer werden
+-# misoptimiert wenn -O2 eingeschaltet ist und waehrend die untenstehenden Schalter funktionieren.
+-CFLAGSOPT=-O -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations -fstrength-reduce -fforce-mem -fcaller-saves -fgcse -frerun-cse-after-loop -frerun-loop-opt -fschedule-insns2 -fregmove -foptimize-register-move
+-#CFLAGSOPT=-O2
++# Compiler flags for enabling optimazations
++CFLAGSOPT=-O2
++# Compiler flags for disabling optimazations
+ CFLAGSNOOPT=-O
++# Compiler flags for discibing the output path
+ CFLAGSOUTOBJ=-o
+
+-STATIC= -Bstatic
+-DYNAMIC= -Bdynamic
+-
+-THREADLIB=
+-LINK= gcc
++# switches for dynamic and static linking
++STATIC = -Wl,-Bstatic
++DYNAMIC = -Wl,-Bdynamic
++
++# name of linker
++LINK=gcc
++# default linker flags
+ LINKFLAGS=
+-.IF "$(PRJNAME)"=="osl" || "$(PRJNAME)"=="rtl"
+-LINKFLAGSSHLGUI= -shared -nostdlib
+-LINKFLAGSSHLCUI= -shared -nostdlib
+-.ELSE
+-LINKFLAGSSHLGUI= -shared -nostdlib /usr/lib/c++rt0.o
+-LINKFLAGSSHLCUI= -shared -nostdlib /usr/lib/c++rt0.o
+-.ENDIF
+-LINKFLAGSAPPGUI= -L/nw386/dev/s/solenv/unxbsdi/lib -lpthread_init -lpthread
+-LINKFLAGSAPPCUI= -L/nw386/dev/s/solenv/unxbsdi/lib -lpthread_init -lpthread
++
++# linker flags for linking applications
++LINKFLAGSAPPGUI= -Wl,-export-dynamic
++LINKFLAGSAPPCUI= -Wl,-export-dynamic
++# linker flags for linking shared libraries
++LINKFLAGSSHLGUI= -Wl,-export-dynamic -shared
++LINKFLAGSSHLCUI= -Wl,-export-dynamic -shared
++
+ LINKFLAGSTACK=
+ LINKFLAGSPROF=
+-LINKFLAGSDEBUG=
+-LINKFLAGSOPT=
++LINKFLAGSDEBUG=-g
++LINKFLAGSOPT=
++
++.IF "$(NO_BSYMBOLIC)"==""
++.IF "$(PRJNAME)" != "envtest"
++LINKFLAGSSHLGUI+=-Wl,-Bsymbolic
++LINKFLAGSSHLCUI+=-Wl,-Bsymbolic
++.ENDIF
++.ENDIF # "$(NO_BSYMBOLIC)"==""
+
+-_SYSLIBS= -lpthread -lgcc -lc -lm
+-_X11LIBS= -L/usr/X11R6/lib -lXext -lXt -lX11
++LINKVERSIONMAPFLAG=-Wl,--version-script
+
+-STDLIBCPP= -lstdc++
++SONAME_SWITCH=-Wl,-h
+
++# Sequence of libs does matter !
++
++STDLIBCPP=-lstdc++
++
++# default objectfilenames to link
+ STDOBJGUI=
+ STDSLOGUI=
+ STDOBJCUI=
+ STDSLOCUI=
+
+-STDLIBGUIST= ${_X11LIBS} ${_SYSLIBS}
+-STDLIBCUIST= ${_SYSLIBS}
+-STDLIBGUIMT= ${_X11LIBS} ${_SYSLIBS}
+-STDLIBCUIMT= ${_SYSLIBS}
+-STDSHLGUIMT=
+-STDSHLCUIMT=
+-
+-LIBMGR= ar
+-LIBFLAGS= -r
+-LIBEXT= .a
++# libraries for linking applications
++STDLIBCUIST=-lm
++STDLIBGUIMT=-lXaw -lXt -lX11 -lpthread -lm
++STDLIBCUIMT=-lpthread -lm
++STDLIBGUIST=-lXaw -lXt -lX11 -lm
++# libraries for linking shared libraries
++STDSHLGUIMT=-lXaw -lXt -lX11 -lXext -lpthread -lm -lgcc
++STDSHLCUIMT=-lpthread -lm -lgcc
++
++# STLport always needs pthread. This may yield some redundant -lpthread
++# but that doesn't matter.
++LIBSTLPORT=$(DYNAMIC) -lstlport2_gcc -lpthread
++LIBSTLPORTST=$(STATIC) -lstlport_gcc $(DYNAMIC) -lpthread
++
++
++# name of library manager
++LIBMGR=ar
++LIBFLAGS=-r
+
++# tool for generating import libraries
+ IMPLIB=
+ IMPLIBFLAGS=
+
+@@ -79,14 +133,13 @@
+ MAPSYMFLAGS=
+
+ RC=irc
+-RCFLAGS= -fo$@ $(RCFILES)
++RCFLAGS=-fo$@ $(RCFILES)
+ RCLINK=
+ RCLINKFLAGS=
+ RCSETVERSION=
+
+-DLLPOSTFIX= bi
+-DLLPRE= lib
+-DLLPOST= .so.1.0
+-
+-LDUMP=
++# platform specific identifier for shared libs
++DLLPOSTFIX=bi
++DLLPRE=lib
++DLLPOST=.so
+
diff --git a/misc/openoffice/patches/patch-ca b/misc/openoffice/patches/patch-ca
new file mode 100644
index 00000000000..2431090f595
--- /dev/null
+++ b/misc/openoffice/patches/patch-ca
@@ -0,0 +1,150 @@
+$NetBSD: patch-ca,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../solenv/inc/unxbsdppc.mk.orig Sun Jan 6 11:30:53 2002
++++ ../solenv/inc/unxbsdppc.mk
+@@ -0,0 +1,145 @@
++
++# mk file for unxbsdppc
++ASM=gcc
++AFLAGS= -x assembler-with-cpp -c $(CDEFS)
++
++SOLAR_JAVA=TRUE
++JAVAFLAGSDEBUG=-g
++
++# filter for supressing verbose messages from linker
++#not needed at the moment
++#LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
++
++# _PTHREADS is needed for the stl
++CDEFS+=-D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DPPC -DPOWERPC
++
++# this is a platform with JAVA support
++.IF "$(SOLAR_JAVA)"!=""
++JAVADEF=-DSOLAR_JAVA
++.IF "$(debug)"==""
++JAVA_RUNTIME=-ljava
++.ELSE
++JAVA_RUNTIME=-ljava_g
++.ENDIF
++.ENDIF
++
++# name of C++ Compiler
++CC=g++
++# name of C Compiler
++cc=gcc
++# flags for C and C++ Compiler
++CFLAGS=-w -c $(INCLUDE) -I$(SOLARENV)/unxbsdppc/usr/include
++# flags for the C++ Compiler
++CFLAGSCC= -pipe
++
++# Flags for enabling exception handling
++CFLAGSEXCEPTIONS=-fexceptions
++# Flags for disabling exception handling
++CFLAGS_NO_EXCEPTIONS=-fno-exceptions
++
++# -fpermissive should be removed as soon as possible
++CFLAGSCXX= -pipe -fno-for-scope -fpermissive
++
++# Compiler flags for compiling static object in single threaded environment with graphical user interface
++CFLAGSOBJGUIST= -fPIC
++# Compiler flags for compiling static object in single threaded environment with character user interface
++CFLAGSOBJCUIST= -fPIC
++# Compiler flags for compiling static object in multi threaded environment with graphical user interface
++CFLAGSOBJGUIMT= -fPIC
++# Compiler flags for compiling static object in multi threaded environment with character user interface
++CFLAGSOBJCUIMT= -fPIC
++# Compiler flags for compiling shared object in multi threaded environment with graphical user interface
++CFLAGSSLOGUIMT= -fPIC
++# Compiler flags for compiling shared object in multi threaded environment with character user interface
++CFLAGSSLOCUIMT= -fPIC
++# Compiler flags for profiling
++CFLAGSPROF=
++# Compiler flags for debugging
++CFLAGSDEBUG=-g
++CFLAGSDBGUTIL=
++# Compiler flags for enabling optimazations
++CFLAGSOPT=-O2
++# Compiler flags for disabling optimazations
++CFLAGSNOOPT=-O
++# Compiler flags for discibing the output path
++CFLAGSOUTOBJ=-o
++
++# switches for dynamic and static linking
++STATIC = -Wl,-Bstatic
++DYNAMIC = -Wl,-Bdynamic
++
++# name of linker
++LINK=gcc
++# default linker flags
++LINKFLAGS=
++
++# linker flags for linking applications
++LINKFLAGSAPPGUI= -Wl,-export-dynamic
++LINKFLAGSAPPCUI= -Wl,-export-dynamic
++# linker flags for linking shared libraries
++LINKFLAGSSHLGUI= -Wl,-export-dynamic -shared
++LINKFLAGSSHLCUI= -Wl,-export-dynamic -shared
++
++LINKFLAGSTACK=
++LINKFLAGSPROF=
++LINKFLAGSDEBUG=-g
++LINKFLAGSOPT=
++
++.IF "$(NO_BSYMBOLIC)"==""
++.IF "$(PRJNAME)" != "envtest"
++LINKFLAGSSHLGUI+=-Wl,-Bsymbolic
++LINKFLAGSSHLCUI+=-Wl,-Bsymbolic
++.ENDIF
++.ENDIF # "$(NO_BSYMBOLIC)"==""
++
++LINKVERSIONMAPFLAG=-Wl,--version-script
++
++SONAME_SWITCH=-Wl,-h
++
++# Sequence of libs does matter !
++
++STDLIBCPP=-lstdc++
++
++# default objectfilenames to link
++STDOBJGUI=
++STDSLOGUI=
++STDOBJCUI=
++STDSLOCUI=
++
++# libraries for linking applications
++STDLIBCUIST=-lm
++STDLIBGUIMT=-lXaw -lXt -lX11 -lpthread -lm
++STDLIBCUIMT=-lpthread -lm
++STDLIBGUIST=-lXaw -lXt -lX11 -lm
++# libraries for linking shared libraries
++STDSHLGUIMT=-lXaw -lXt -lX11 -lXext -lpthread -lm
++STDSHLCUIMT=-lpthread -lm
++
++# STLport always needs pthread. This may yield some redundant -lpthread
++# but that doesn't matter.
++LIBSTLPORT=$(DYNAMIC) -lstlport_gcc -lpthread
++LIBSTLPORTST=$(STATIC) -lstlport_gcc $(DYNAMIC) -lpthread
++
++
++# name of library manager
++LIBMGR=ar
++LIBFLAGS=-r
++
++# tool for generating import libraries
++IMPLIB=
++IMPLIBFLAGS=
++
++MAPSYM=
++MAPSYMFLAGS=
++
++RC=irc
++RCFLAGS=-fo$@ $(RCFILES)
++RCLINK=
++RCLINKFLAGS=
++RCSETVERSION=
++
++# platform specific identifier for shared libs
++DLLPOSTFIX=bp
++DLLPRE=lib
++DLLPOST=.so
++
diff --git a/misc/openoffice/patches/patch-cb b/misc/openoffice/patches/patch-cb
new file mode 100644
index 00000000000..c448816d847
--- /dev/null
+++ b/misc/openoffice/patches/patch-cb
@@ -0,0 +1,42 @@
+$NetBSD: patch-cb,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../solenv/inc/unxbsds.mk.orig Tue Jan 1 14:11:59 2002
++++ ../solenv/inc/unxbsds.mk
+@@ -73,7 +73,7 @@
+ #LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
+
+ # _PTHREADS is needed for the stl
+-CDEFS+=-D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DOSL_USE_SYS_V_SEMAPHORE
++CDEFS+=-D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
+
+ # this is a platform with JAVA support
+ .IF "$(SOLAR_JAVA)"!=""
+@@ -139,8 +139,8 @@
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic
+ LINKFLAGSAPPCUI= -Wl,-export-dynamic
+ # linker flags for linking shared libraries
+-LINKFLAGSSHLGUI= -shared
+-LINKFLAGSSHLCUI= -shared
++LINKFLAGSSHLGUI= -Wl,-export-dynamic -shared
++LINKFLAGSSHLCUI= -Wl,-export-dynamic -shared
+
+ LINKFLAGSTACK=
+ LINKFLAGSPROF=
+@@ -156,6 +156,8 @@
+
+ LINKVERSIONMAPFLAG=-Wl,--version-script
+
++SONAME_SWITCH=-Wl,-h
++
+ # Sequence of libs does matter !
+
+ STDLIBCPP=-lstdc++
+@@ -172,7 +174,7 @@
+ STDLIBCUIMT=-lpthread -lm
+ STDLIBGUIST=-lXaw -lXt -lX11 -lm
+ # libraries for linking shared libraries
+-STDSHLGUIMT=-lXaw -lXt -lX11 -lXext -lpthread -lm
++STDSHLGUIMT=-lXaw -lXt -lX11 -lXext -lpthread -lm
+ STDSHLCUIMT=-lpthread -lm
+
+ # STLport always needs pthread. This may yield some redundant -lpthread
diff --git a/misc/openoffice/patches/patch-cc b/misc/openoffice/patches/patch-cc
new file mode 100644
index 00000000000..39a5699533a
--- /dev/null
+++ b/misc/openoffice/patches/patch-cc
@@ -0,0 +1,24 @@
+$NetBSD: patch-cc,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stlport/makefile.mk.orig Tue Jan 1 14:12:01 2002
++++ ../stlport/makefile.mk
+@@ -66,11 +66,17 @@
+ TARGET=so_stlport
+
+ .IF "$(STLPORT4)"!="NO_STLPORT4"
+-all:
++all: $(INPATH)$/misc$/so_copied
++
++$(INPATH)$/misc$/so_copied:
+ @echo " An already available installatin 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)
++ +$(COPY) $(STLPORT4)$/lib$/*stlport_gcc$(DLLPOST)* $(DLLDEST)
++.IF "$(OS)"=="NETBSD"
++ +$(LINK) $(LINKFLAGSSHLCUI) $(STLPORT4)$/lib$/$(DLLPRE)stlport_gcc$(DLLPOST) -o $(DLLDEST)$/$(DLLPRE)stlport2_gcc$(DLLPOST) -lgcc
++.ENDIF
++ +$(TOUCH) $(INPATH)$/misc$/so_copied
+ .ENDIF
+
+ # --- Settings -----------------------------------------------------
diff --git a/misc/openoffice/patches/patch-cd b/misc/openoffice/patches/patch-cd
new file mode 100644
index 00000000000..c49b210ffa9
--- /dev/null
+++ b/misc/openoffice/patches/patch-cd
@@ -0,0 +1,13 @@
+$NetBSD: patch-cd,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stlport/prj/d.lst.orig Mon Sep 24 16:05:55 2001
++++ ../stlport/prj/d.lst
+@@ -17,7 +17,7 @@
+ ..\%__SRC%\inc\stlport\using\h\* %_DEST%\inc%_EXT%\stl\using\h\*
+ ..\%__SRC%\inc\stlport\wrap_std\* %_DEST%\inc%_EXT%\stl\wrap_std\*
+ ..\%__SRC%\inc\stlport\wrap_std\h\* %_DEST%\inc%_EXT%\stl\wrap_std\h\*
+-..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%\lib*.so
++..\%__SRC%\lib\lib*.so* %_DEST%\lib%_EXT%\lib*.so*
+ ..\%__SRC%\lib\lib*.a %_DEST%\lib%_EXT%\lib*.a
+ ..\%__SRC%\lib\*.lib %_DEST%\lib%_EXT%\*.lib
+ ..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\*.dll
diff --git a/misc/openoffice/patches/patch-ce b/misc/openoffice/patches/patch-ce
new file mode 100644
index 00000000000..8222e8c6de4
--- /dev/null
+++ b/misc/openoffice/patches/patch-ce
@@ -0,0 +1,16 @@
+$NetBSD: patch-ce,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/corereflection/makefile.mk.orig Tue Jan 1 14:12:02 2002
++++ ../stoc/source/corereflection/makefile.mk
+@@ -87,9 +87,9 @@
+ SHL1TARGET= $(TARGET)
+ SHL1VERSIONMAP= $(TARGET).map
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+- $(CPPUHELPERLIB) \
+- $(SALLIB)
++ $(CPPUHELPERLIB)
+
+ SHL1DEPN=
+ SHL1IMPLIB= i$(TARGET)
diff --git a/misc/openoffice/patches/patch-cf b/misc/openoffice/patches/patch-cf
new file mode 100644
index 00000000000..a34f1d5c590
--- /dev/null
+++ b/misc/openoffice/patches/patch-cf
@@ -0,0 +1,16 @@
+$NetBSD: patch-cf,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/defaultregistry/makefile.mk.orig Tue Jan 1 14:12:02 2002
++++ ../stoc/source/defaultregistry/makefile.mk
+@@ -84,9 +84,9 @@
+ SHL1TARGET= $(TARGET)
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+- $(CPPUHELPERLIB) \
+- $(SALLIB)
++ $(CPPUHELPERLIB)
+
+ SHL1VERSIONMAP= $(TARGET).map
+ SHL1DEPN=
diff --git a/misc/openoffice/patches/patch-cg b/misc/openoffice/patches/patch-cg
new file mode 100644
index 00000000000..80513faa77a
--- /dev/null
+++ b/misc/openoffice/patches/patch-cg
@@ -0,0 +1,16 @@
+$NetBSD: patch-cg,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/implementationregistration/makefile.mk.orig Tue Jan 1 14:12:02 2002
++++ ../stoc/source/implementationregistration/makefile.mk
+@@ -85,9 +85,9 @@
+ SHL1VERSIONMAP=$(TARGET).map
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+- $(CPPUHELPERLIB) \
+- $(SALLIB)
++ $(CPPUHELPERLIB)
+
+ SHL1DEPN=
+ SHL1IMPLIB= i$(TARGET)
diff --git a/misc/openoffice/patches/patch-ch b/misc/openoffice/patches/patch-ch
new file mode 100644
index 00000000000..41c77b8a2c9
--- /dev/null
+++ b/misc/openoffice/patches/patch-ch
@@ -0,0 +1,16 @@
+$NetBSD: patch-ch,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/inspect/makefile.mk.orig Tue Jan 1 14:12:02 2002
++++ ../stoc/source/inspect/makefile.mk
+@@ -82,9 +82,9 @@
+ SHL1TARGET= $(TARGET)
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+- $(CPPUHELPERLIB) \
+- $(SALLIB)
++ $(CPPUHELPERLIB)
+
+ SHL1DEPN=
+ SHL1IMPLIB= i$(TARGET)
diff --git a/misc/openoffice/patches/patch-ci b/misc/openoffice/patches/patch-ci
new file mode 100644
index 00000000000..2534f2f7d89
--- /dev/null
+++ b/misc/openoffice/patches/patch-ci
@@ -0,0 +1,16 @@
+$NetBSD: patch-ci,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/invocation/makefile.mk.orig Tue Jan 1 14:12:02 2002
++++ ../stoc/source/invocation/makefile.mk
+@@ -82,9 +82,9 @@
+ SHL1TARGET= $(TARGET)
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+- $(CPPUHELPERLIB) \
+- $(SALLIB)
++ $(CPPUHELPERLIB)
+
+ SHL1VERSIONMAP=$(TARGET).map
+ SHL1DEPN=
diff --git a/misc/openoffice/patches/patch-cj b/misc/openoffice/patches/patch-cj
new file mode 100644
index 00000000000..123bbdc7ede
--- /dev/null
+++ b/misc/openoffice/patches/patch-cj
@@ -0,0 +1,16 @@
+$NetBSD: patch-cj,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/invocation_adapterfactory/makefile.mk.orig Tue Jan 1 14:12:02 2002
++++ ../stoc/source/invocation_adapterfactory/makefile.mk
+@@ -82,9 +82,9 @@
+ SHL1TARGET= $(TARGET)
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+- $(CPPUHELPERLIB) \
+- $(SALLIB)
++ $(CPPUHELPERLIB)
+
+ SHL1VERSIONMAP= $(TARGET).map
+
diff --git a/misc/openoffice/patches/patch-ck b/misc/openoffice/patches/patch-ck
new file mode 100644
index 00000000000..9c1696e9b29
--- /dev/null
+++ b/misc/openoffice/patches/patch-ck
@@ -0,0 +1,17 @@
+$NetBSD: patch-ck,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/javaloader/makefile.mk.orig Tue Jan 1 14:12:02 2002
++++ ../stoc/source/javaloader/makefile.mk
+@@ -83,9 +83,10 @@
+ SHL1TARGET= $(TARGET)
+
+ SHL1STDLIBS=\
++ $(SALLIB) \
+ $(CPPUHELPERLIB) \
+- $(CPPULIB) \
+- $(SALLIB)
++ $(CPPULIB)
++
+ SHL1VERSIONMAP=$(TARGET).map
+ SHL1DEPN=
+ SHL1IMPLIB= i$(TARGET)
diff --git a/misc/openoffice/patches/patch-cl b/misc/openoffice/patches/patch-cl
new file mode 100644
index 00000000000..70c437c11e9
--- /dev/null
+++ b/misc/openoffice/patches/patch-cl
@@ -0,0 +1,17 @@
+$NetBSD: patch-cl,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/javavm/makefile.mk.orig Tue Jan 1 14:12:02 2002
++++ ../stoc/source/javavm/makefile.mk
+@@ -91,10 +91,10 @@
+ SHL1TARGET= $(TARGET)
+ SHL1VERSIONMAP=$(TARGET).map
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPUHELPERLIB) \
+ $(CPPULIB) \
+- $(UNOLIB) \
+- $(SALLIB)
++ $(UNOLIB)
+
+ .IF "$(GUI)"=="WNT"
+ SHL1STDLIBS += advapi32.lib
diff --git a/misc/openoffice/patches/patch-cm b/misc/openoffice/patches/patch-cm
new file mode 100644
index 00000000000..ced34e381aa
--- /dev/null
+++ b/misc/openoffice/patches/patch-cm
@@ -0,0 +1,16 @@
+$NetBSD: patch-cm,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/loader/makefile.mk.orig Tue Jan 1 14:12:02 2002
++++ ../stoc/source/loader/makefile.mk
+@@ -83,9 +83,9 @@
+ SHL1TARGET= $(TARGET)
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+- $(CPPUHELPERLIB) \
+- $(SALLIB)
++ $(CPPUHELPERLIB)
+
+ SHL1VERSIONMAP=$(TARGET).map
+ SHL1DEPN=
diff --git a/misc/openoffice/patches/patch-cn b/misc/openoffice/patches/patch-cn
new file mode 100644
index 00000000000..f7be40221f1
--- /dev/null
+++ b/misc/openoffice/patches/patch-cn
@@ -0,0 +1,16 @@
+$NetBSD: patch-cn,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/namingservice/makefile.mk.orig Tue Jan 1 14:12:02 2002
++++ ../stoc/source/namingservice/makefile.mk
+@@ -82,9 +82,9 @@
+ SHL1TARGET= $(TARGET)
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+- $(CPPUHELPERLIB) \
+- $(SALLIB)
++ $(CPPUHELPERLIB)
+
+ SHL1VERSIONMAP=$(TARGET).map
+
diff --git a/misc/openoffice/patches/patch-co b/misc/openoffice/patches/patch-co
new file mode 100644
index 00000000000..8aedaf4957c
--- /dev/null
+++ b/misc/openoffice/patches/patch-co
@@ -0,0 +1,16 @@
+$NetBSD: patch-co,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/proxy_factory/makefile.mk.orig Tue Jan 1 14:12:02 2002
++++ ../stoc/source/proxy_factory/makefile.mk
+@@ -85,9 +85,9 @@
+ SHL1VERSIONMAP=$(TARGET).map
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+- $(CPPUHELPERLIB) \
+- $(SALLIB)
++ $(CPPUHELPERLIB)
+
+ SHL1DEPN=
+ SHL1IMPLIB=i$(TARGET)
diff --git a/misc/openoffice/patches/patch-cp b/misc/openoffice/patches/patch-cp
new file mode 100644
index 00000000000..8025b57d846
--- /dev/null
+++ b/misc/openoffice/patches/patch-cp
@@ -0,0 +1,17 @@
+$NetBSD: patch-cp,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/registry_tdprovider/makefile.mk.orig Tue Jan 1 14:12:02 2002
++++ ../stoc/source/registry_tdprovider/makefile.mk
+@@ -88,10 +88,10 @@
+ SHL1TARGET= $(TARGET)
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+ $(CPPUHELPERLIB) \
+- $(SALHELPERLIB) \
+- $(SALLIB)
++ $(SALHELPERLIB)
+
+ SHL1DEPN=
+ SHL1VERSIONMAP=$(TARGET).map
diff --git a/misc/openoffice/patches/patch-cq b/misc/openoffice/patches/patch-cq
new file mode 100644
index 00000000000..4677ffac9cf
--- /dev/null
+++ b/misc/openoffice/patches/patch-cq
@@ -0,0 +1,16 @@
+$NetBSD: patch-cq,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/servicemanager/makefile.mk.orig Tue Jan 1 14:12:03 2002
++++ ../stoc/source/servicemanager/makefile.mk
+@@ -84,9 +84,9 @@
+ SHL1VERSIONMAP=$(TARGET).map
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+- $(CPPUHELPERLIB) \
+- $(SALLIB)
++ $(CPPUHELPERLIB)
+
+ SHL1DEPN=
+ SHL1IMPLIB= i$(TARGET)
diff --git a/misc/openoffice/patches/patch-cr b/misc/openoffice/patches/patch-cr
new file mode 100644
index 00000000000..5393869c6bf
--- /dev/null
+++ b/misc/openoffice/patches/patch-cr
@@ -0,0 +1,17 @@
+$NetBSD: patch-cr,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/tdmanager/makefile.mk.orig Tue Jan 1 14:12:03 2002
++++ ../stoc/source/tdmanager/makefile.mk
+@@ -83,9 +83,10 @@
+ SHL1TARGET= $(TARGET)
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+- $(CPPUHELPERLIB) \
+- $(SALLIB)
++ $(CPPUHELPERLIB)
++
+ SHL1VERSIONMAP=$(TARGET).map
+
+ SHL1DEPN=
diff --git a/misc/openoffice/patches/patch-cs b/misc/openoffice/patches/patch-cs
new file mode 100644
index 00000000000..1eea88f969a
--- /dev/null
+++ b/misc/openoffice/patches/patch-cs
@@ -0,0 +1,16 @@
+$NetBSD: patch-cs,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../stoc/source/typeconv/makefile.mk.orig Tue Jan 1 14:12:03 2002
++++ ../stoc/source/typeconv/makefile.mk
+@@ -82,9 +82,9 @@
+ SHL1TARGET= $(TARGET)
+
+ SHL1STDLIBS= \
++ $(SALLIB) \
+ $(CPPULIB) \
+- $(CPPUHELPERLIB) \
+- $(SALLIB)
++ $(CPPUHELPERLIB)
+
+ SHL1DEPN=
+ SHL1VERSIONMAP= $(TARGET).map
diff --git a/misc/openoffice/patches/patch-ct b/misc/openoffice/patches/patch-ct
new file mode 100644
index 00000000000..3f8f71e7a13
--- /dev/null
+++ b/misc/openoffice/patches/patch-ct
@@ -0,0 +1,15 @@
+$NetBSD: patch-ct,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../sw/source/filter/ww8/ww8par.hxx.orig Wed Oct 17 09:35:21 2001
++++ ../sw/source/filter/ww8/ww8par.hxx
+@@ -378,7 +378,9 @@
+ void Restore( SwWW8ImplReader* pRdr );
+ };
+
+-
++#if defined(NETBSD)
++#undef F_OK
++#endif
+
+ enum eF_ResT{ F_OK, F_TEXT, F_TAGIGN, F_TAGTXT, F_READ_FSPA };
+
diff --git a/misc/openoffice/patches/patch-cu b/misc/openoffice/patches/patch-cu
new file mode 100644
index 00000000000..bd945980391
--- /dev/null
+++ b/misc/openoffice/patches/patch-cu
@@ -0,0 +1,12 @@
+$NetBSD: patch-cu,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../sysui/unix/office/scripts/soffice.sh.orig Wed Sep 19 11:24:33 2001
++++ ../sysui/unix/office/scripts/soffice.sh
+@@ -81,6 +81,7 @@
+ sd_platform=`uname -s`
+ case $sd_platform in
+ SCO_SV) test=/bin/test ;;
++ NetBSD) test=/bin/test ;;
+ FreeBSD) test=/bin/test ;;
+ *) test=/usr/bin/test ;;
+ esac
diff --git a/misc/openoffice/patches/patch-cv b/misc/openoffice/patches/patch-cv
new file mode 100644
index 00000000000..c268f49d7b7
--- /dev/null
+++ b/misc/openoffice/patches/patch-cv
@@ -0,0 +1,25 @@
+$NetBSD: patch-cv,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../tools/bootstrp/makefile.mk.orig Tue Jan 1 14:12:19 2002
++++ ../tools/bootstrp/makefile.mk
+@@ -83,6 +83,15 @@
+ @echo No bootstrp for Mac OS
+ .ELSE # "$(OS)"=="MACOS"
+
++.IF "$(OS)"=="NETBSD"
++ALLTAR2: $(LB)$/libgcc_pic.a $(LB)$/libgcc.a ALLTAR
++ @echo ""
++$(LB)$/libgcc_pic.a:
++ -objcopy -L set_new_handler__FPFv_v /usr/lib/libgcc_pic.a $(LB)$/libgcc_pic.a
++$(LB)$/libgcc.a:
++ objcopy -L set_new_handler__FPFv_v `gcc -print-libgcc-file-name` $(LB)$/libgcc.a
++.ENDIF
++
+ OBJFILES= \
+ $(OBJ)$/sstring.obj \
+ $(OBJ)$/appdef.obj \
+@@ -172,3 +181,4 @@
+ # --- Targets ------------------------------------------------------
+
+ .INCLUDE : target.mk
++
diff --git a/misc/openoffice/patches/patch-cw b/misc/openoffice/patches/patch-cw
new file mode 100644
index 00000000000..2a204624275
--- /dev/null
+++ b/misc/openoffice/patches/patch-cw
@@ -0,0 +1,14 @@
+$NetBSD: patch-cw,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../tools/inc/solar.h.orig Fri Oct 12 15:11:03 2001
++++ ../tools/inc/solar.h
+@@ -443,6 +443,9 @@
+ #elif defined NETBSD && defined SPARC
+ #define __DLLEXTENSION "bs.so"
+ #define SYSTEM_ID SYSTEM_UNXBSDS
++#elif defined NETBSD && defined POWERPC
++ #define __DLLEXTENSION "bp.so"
++ #define SYSTEM_ID SYSTEM_UNXBSDP
+ #elif defined LINUX && defined X86
+ #define __DLLEXTENSION "li.so"
+ #define SYSTEM_ID SYSTEM_UNXLNXI
diff --git a/misc/openoffice/patches/patch-cx b/misc/openoffice/patches/patch-cx
new file mode 100644
index 00000000000..001d8e0476a
--- /dev/null
+++ b/misc/openoffice/patches/patch-cx
@@ -0,0 +1,75 @@
+$NetBSD: patch-cx,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../tools/source/string/charset.cxx.orig Thu May 10 13:35:20 2001
++++ ../tools/source/string/charset.cxx
+@@ -64,7 +64,7 @@
+ #elif defined( OS2 )
+ #define INCL_DOSNLS
+ #include <svpm.h>
+-#elif defined(LINUX) || defined(SOLARIS)
++#elif defined(LINUX) || defined(SOLARIS) || defined(NETBSD)
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <strings.h>
+@@ -126,7 +126,7 @@
+
+ // -----------------------------------------------------------------------
+
+-#if defined(NETBSD) || defined(SCO)
++#if defined(SCO)
+
+ // check if there is a charset qualifier at the end of the given locale string
+ // e.g. de.ISO8859-15 or de.ISO8859-15@euro which strongly indicates what
+@@ -323,7 +323,7 @@
+ return RTL_TEXTENCODING_DONTKNOW;
+ }
+
+-#elif defined(LINUX) || defined(SOLARIS)
++#elif defined(LINUX) || defined(SOLARIS) || defined(NETBSD)
+
+ typedef struct {
+ const char *key;
+@@ -363,7 +363,7 @@
+ /* XXX MS-874 is an extension to tis620, so this is not
+ * really equivalent */
+
+-#elif defined(LINUX)
++#elif defined(LINUX) || defined(NETBSD)
+
+ const _pair _nl_language_list[] = {
+ { "ANSI_X3.110-1983", RTL_TEXTENCODING_DONTKNOW },/* ISO-IR-99 NAPLPS */
+@@ -541,7 +541,7 @@
+
+ };
+
+-#endif /* LINUX, SOLARIS */
++#endif /* LINUX, SOLARIS, NETBSD */
+
+ static int
+ _pair_compare (const char *key, const _pair *pair)
+@@ -601,7 +601,11 @@
+
+ /* get the charset as indicated by the LC_CTYPE locale */
+ char *ctype_locale = setlocale( LC_CTYPE, "" );
++#if defined(NETBSD) && !defined(CODESET)
++ char *codeset = NULL;
++#else
+ char *codeset = nl_langinfo( CODESET );
++#endif
+
+ if ( codeset != NULL )
+ {
+@@ -707,11 +711,11 @@
+ #ifdef UNX
+ CharSet nTextEncoding;
+
+-#if defined(NETBSD) || defined(SCO)
++#if defined(SCO)
+ nTextEncoding = GetSystemCharSetFromEnvironment();
+ if (nTextEncoding == RTL_TEXTENCODING_DONTKNOW)
+ nTextEncoding = GetSystemCharSetFromSystemLanguage();
+-#elif defined(LINUX) || defined(SOLARIS)
++#elif defined(LINUX) || defined(SOLARIS) || defined(NETBSD)
+ nTextEncoding = GetSystemCharsetFromNLLanginfo();
+ #elif defined(MACOSX)
+ nTextEncoding = RTL_TEXTENCODING_DONTKNOW;
diff --git a/misc/openoffice/patches/patch-cy b/misc/openoffice/patches/patch-cy
new file mode 100644
index 00000000000..794e65e738d
--- /dev/null
+++ b/misc/openoffice/patches/patch-cy
@@ -0,0 +1,13 @@
+$NetBSD: patch-cy,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../unzip/source/file_io.c.orig Wed May 2 01:11:49 2001
++++ ../unzip/source/file_io.c
+@@ -864,7 +864,7 @@
+ #ifndef __386BSD__
+ static struct timeb tbp;
+ #endif /* !__386BSD__ */
+-#else /* !BSD */
++#elif !defined(NETBSD) /* !BSD */
+ extern long timezone;
+ #endif /* ?BSD */
+ #endif /* ?AMIGA */
diff --git a/misc/openoffice/patches/patch-cz b/misc/openoffice/patches/patch-cz
new file mode 100644
index 00000000000..720b67c2c2b
--- /dev/null
+++ b/misc/openoffice/patches/patch-cz
@@ -0,0 +1,13 @@
+$NetBSD: patch-cz,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../unzip/source/misc.c.orig Wed May 2 01:13:26 2001
++++ ../unzip/source/misc.c
+@@ -300,7 +300,7 @@
+ static short yday[]={0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
+ int yr, mo, dy, hh, mm, ss, leap;
+ long m_time, days=0;
+-#if (!defined(MACOS) && !defined(MSC) && !defined(__GO32__))
++#if (!defined(MACOS) && !defined(MSC) && !defined(__GO32__) && !defined(NETBSD))
+ #if (defined(BSD) || defined(MTS))
+ #ifndef __386BSD__
+ static struct timeb tbp;
diff --git a/misc/openoffice/patches/patch-da b/misc/openoffice/patches/patch-da
new file mode 100644
index 00000000000..84ce4073375
--- /dev/null
+++ b/misc/openoffice/patches/patch-da
@@ -0,0 +1,13 @@
+$NetBSD: patch-da,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../vcl/unx/source/gdi/salprn.cxx.orig Fri Jul 13 17:39:42 2001
++++ ../vcl/unx/source/gdi/salprn.cxx
+@@ -1259,7 +1259,7 @@
+ if( getPrinterPort( pJobSetup->maPrinterName ).EqualsIgnoreCaseAscii( "fax_queue" ) )
+ {
+ char tmpNam[ L_tmpnam ];
+-#if defined(FREEBSD) || defined(IRIX)
++#if defined(FREEBSD) || defined(IRIX) || defined(NETBSD)
+ mkstemp( tmpNam );
+ #else
+ tmpnam_r( tmpNam );
diff --git a/misc/openoffice/patches/patch-db b/misc/openoffice/patches/patch-db
new file mode 100644
index 00000000000..7e5808f0890
--- /dev/null
+++ b/misc/openoffice/patches/patch-db
@@ -0,0 +1,13 @@
+$NetBSD: patch-db,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../vcl/unx/source/gdi/salprnpsp.cxx.orig Wed Oct 17 13:22:31 2001
++++ ../vcl/unx/source/gdi/salprnpsp.cxx
+@@ -805,7 +805,7 @@
+ static inline String getTmpName()
+ {
+ char tmpNam[ L_tmpnam ];
+-#if defined( FREEBSD ) || defined (IRIX)
++#if defined( FREEBSD ) || defined (IRIX) || defined(NETBSD)
+ mkstemp ( tmpNam );
+ #else
+ tmpnam_r( tmpNam );
diff --git a/misc/openoffice/patches/patch-dc b/misc/openoffice/patches/patch-dc
new file mode 100644
index 00000000000..fe21b01f53c
--- /dev/null
+++ b/misc/openoffice/patches/patch-dc
@@ -0,0 +1,30 @@
+$NetBSD: patch-dc,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../vcl/util/makefile.mk.orig Tue Jan 1 14:12:31 2002
++++ ../vcl/util/makefile.mk
+@@ -190,12 +190,6 @@
+ $(SLB)$/salapp.lib
+ .ENDIF # "$(remote)" != ""
+
+-.IF "$(GUI)" == "UNX"
+-.IF "$(USE_XPRINT)" != "TRUE"
+- SHL1STDLIBS=-lpsp$(VERSION)$(DLLPOSTFIX)
+-.ENDIF
+-.ENDIF
+-
+ .IF "$(USE_BUILTIN_RASTERIZER)"!=""
+ LIB1FILES += $(SLB)$/glyphs.lib
+ SHL1STDLIBS+= $(FREETYPELIBST)
+@@ -214,6 +208,12 @@
+ $(UNOTOOLSLIB) \
+ $(COMPHELPERLIB) \
+ $(GPC3RDLIB)
++
++.IF "$(GUI)" == "UNX"
++.IF "$(USE_XPRINT)" != "TRUE"
++ SHL1STDLIBS+=-lpsp$(VERSION)$(DLLPOSTFIX)
++.ENDIF
++.ENDIF
+
+ .IF "$(remote)" != ""
+ SHL1STDLIBS+= $(UNOLIB)
diff --git a/misc/openoffice/patches/patch-dd b/misc/openoffice/patches/patch-dd
new file mode 100644
index 00000000000..88654f01511
--- /dev/null
+++ b/misc/openoffice/patches/patch-dd
@@ -0,0 +1,12 @@
+$NetBSD: patch-dd,v 1.1.1.1 2002/02/13 18:09:22 mrauch Exp $
+
+--- ../xmlhelp/source/com/sun/star/help/helpserver.sh.orig Thu Jul 12 08:20:41 2001
++++ ../xmlhelp/source/com/sun/star/help/helpserver.sh
+@@ -124,6 +124,7 @@
+ sd_platform=`uname -s`
+ case $sd_platform in
+ SCO_SV) test=/bin/test ;;
++ NetBSD) test=/bin/test ;;
+ *) test=/usr/bin/test ;;
+ esac
+ sd_cwd="`pwd`"
diff --git a/misc/openoffice/patches/patch-de b/misc/openoffice/patches/patch-de
new file mode 100644
index 00000000000..2fa26a01b20
--- /dev/null
+++ b/misc/openoffice/patches/patch-de
@@ -0,0 +1,101 @@
+$NetBSD: patch-de,v 1.1.1.1 2002/02/13 18:09:24 mrauch Exp $
+
+--- set_soenv.1.orig Tue Nov 20 18:26:33 2001
++++ set_soenv.1 Mon Feb 11 23:19:01 2002
+@@ -35,0 +36 @@
++$| = 1; # Don't cache.
+@@ -283 +284,11 @@
+-{ print "Setting NetBSD Sparc specific values... ";
++{
++if ( $machine_type eq "i386" )
++{ print "Setting NetBSD i386 specific values... ";
++ $outfile = "NetBSDIntelEnv.Set";
++ $CPU = "I";
++ $CPUNAME = "INTEL";
++ $DLLSUFFIX = "bi";
++ $OUTPATH = "unxbsdi";
++}
++elsif ( $machine_type eq "sparc" )
++{ print "Setting NetBSD sparc specific values... ";
+@@ -284,0 +296,18 @@
++ $CPU = "S";
++ $CPUNAME = "SPARC";
++ $DLLSUFFIX = "bs";
++ $OUTPATH = "unxbsds";
++}
++elsif ( $machine_type eq "powerpc" )
++{ print "Setting NetBSD powerpc specific values... ";
++ $outfile = "NetBSDPPCEnv.Set";
++ $CPU = "P";
++ $CPUNAME = "POWERPC";
++ $DLLSUFFIX = "bp";
++ $OUTPATH = "unxbsdppc";
++}
++else
++{
++ print "This NetBSD architecture ($machine_type) is currently not supported.\n";
++ exit(1);
++}
+@@ -288,2 +316,0 @@
+- $CPU = "S";
+- $CPUNAME = "SPARC";
+@@ -291 +317,0 @@
+- $DLLSUFFIX = "bs";
+@@ -296 +321,0 @@
+- $OUTPATH = "unxbsds";
+@@ -591 +616 @@
+- my $answer = <STDIN>;
++ exit(1);
+@@ -816 +840,0 @@
+- $ps.$USR_LOCAL.$LIB.
+@@ -817,0 +842 @@
++ $ps.'$SOLARVER'.$ds.'$UPD'.$ds.'$INPATH'.$LIB.
+@@ -819 +844 @@
+- $ps.'$SOLARVER'.$ds.'$UPD'.$ds.'$INPATH'.$LIB;
++ $ps.$USR_LOCAL.$LIB;
+@@ -968 +993 @@
+- $ps.$USR.$BIN.$ds."X11".
++ $ps.$USR.$ds."X11R6".$BIN.
+@@ -1057,0 +1083,18 @@
++if ($platform eq "${NetBSD}")
++{ my $libgcc=`$COMPATH/gcc -print-libgcc-file-name | xargs dirname`;
++ chomp($libgcc);
++ $SOLARLIB = '"'.$L.$par_dir.$LIB.
++ $L.'$SOLARENV'.$ds.'$OUTPATH'.$LIB.
++ $L.'$SOLARVER'.$ds.'$UPD'.$ds.'$INPATH'.$LIB.
++ $L.'$SOLARENV'.$ds.'$OUTPATH'.$LIB.
++ $L.'$JAVA_HOME'.$LIB.
++ $L_STLPORT_LIB.
++ $L.$XLIB.
++ $L.$USR_LOCAL.$LIB.
++ $L.$libgcc.
++ $L.$USR_LIB.
++ $L.$LIB.
++ " ".$ENV{'BUILDLINK_LDFLAGS'}.
++ " ".$ENV{'CCFLAGS'}.'"';
++}
++
+@@ -1065,0 +1109,5 @@
++if ($platform eq "${NetBSD}")
++{
++$SOLARINC .= " ".$ENV{'BUILDLINK_CPPFLAGS'}." ";
++}
++
+@@ -1068,3 +1116,2 @@
+-$SOLARINC .= $I.$USR.$INCLUDE.
+- $STLPORT_stlport;
+-if ($platform eq "$Linux")
++$SOLARINC .= $STLPORT_stlport;
++if (($platform eq "$Linux") or ($platform eq "${NetBSD}"))
+@@ -1104,0 +1152,2 @@
++ $SOLARINC .=$I.'$JAVA_HOME'.$INCLUDE.$ds."linux";
++ $SOLARINC .=$I.'$JAVA_HOME'.$INCLUDE.$ds."solaris";
+@@ -1418 +1467 @@
+- $answer = <STDIN>;
++ exit(1);
+@@ -1514 +1563 @@
+- $value = <STDIN>;
++ exit(1);
+@@ -1555 +1604 @@
+- my $answer = <STDIN>;
++ exit(1);
diff --git a/misc/openoffice/patches/patch-df b/misc/openoffice/patches/patch-df
new file mode 100644
index 00000000000..c18c44cbb37
--- /dev/null
+++ b/misc/openoffice/patches/patch-df
@@ -0,0 +1,116 @@
+$NetBSD: patch-df,v 1.1.1.1 2002/02/13 18:09:25 mrauch Exp $
+
+--- ../readlicense/source/license/unx/license.html.orig Tue Jan 8 22:25:38 2002
++++ ../readlicense/source/license/unx/license.html Tue Jan 8 22:25:16 2002
+@@ -0,0 +1,111 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
++<HTML>
++<HEAD>
++ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
++ <TITLE></TITLE>
++ <META NAME="GENERATOR" CONTENT="StarOffice 6.0 (Win32)">
++ <META NAME="AUTHOR" CONTENT="Frank Loehmann">
++ <META NAME="CREATED" CONTENT="20011115;17153310">
++ <META NAME="CHANGEDBY" CONTENT="Frank Loehmann">
++ <META NAME="CHANGED" CONTENT="20011115;17215774">
++</HEAD>
++<BODY LANG="de-DE">
++<H1>(Temporary license text file)</H1>
++<P>You may only copy and distribute this program consistent with the
++requirements and distribute this Program consistent with the
++requirements of either the GNU General Public License (GPL) and GNU
++Lesser General Public License (LGPL) or the Sun Industry Standards
++Source License (SISSL), respectively, depending on whether you
++elected to obtain access to this program via the GPL/LGPL Option or
++the SISSL Option. Copies of the GPL, LGPL and SISSL licenses can be
++found http://www.openoffice.org/project/www/license.html</P>
++<H2>The program uses Berkely DB software:</H2>
++<P>Copyright (c) 1990-1999</P>
++<P>Sleepycat Software. All rights reserved.</P>
++<P>Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions
++are met:</P>
++<P>1. Redistributions of source code must retain the above copyright
++notice, this list of conditions and the following disclaimer.</P>
++<P>2. Redistributions in binary form must reproduce the above
++copyright notice, this list of conditions and the following
++disclaimer in the documentation and/or other materials provided with
++the distribution.</P>
++<P>3. Redistributions in any form must be accompanied by information
++on how to obtain complete source code for the DB software and any
++accompanying software that uses the DB software. The source code
++must either be included in the distribution or be available for no
++more than the cost of distribution plus a nominal fee, and must be
++freely redistributable under reasonable conditions. For an
++executable file, complete source code means the source code for all
++modules it contains. It does not include source code for modules or
++files that typically accompany the major components of the operating
++system on which the executable file runs.</P>
++<P>THIS SOFTWARE IS PROVIDED BY SLEEPYCAT SOFTWARE ``AS IS'' AND ANY
++EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
++PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL
++SLEEPYCAT SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</P>
++<P>Copyright (c) 1990, 1993, 1994, 1995</P>
++<P>The Regents of the University of California. All rights reserved.</P>
++<P>Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions
++are met:
++</P>
++<P>1. Redistributions of source code must retain the above copyright
++notice, this list of conditions and the following disclaimer.</P>
++<P>2. Redistributions in binary form must reproduce the above
++copyright notice, this list of conditions and the following
++disclaimer in the documentation and/or other materials provided with
++the distribution.</P>
++<P>3. Neither the name of the University nor the names of its
++contributors may be used to endorse or promote products derived from
++this software without specific prior written permission.</P>
++<P>THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS
++IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS
++OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</P>
++<P>Copyright (c) 1995, 1996</P>
++<P>The President and Fellows of Harvard University. All rights
++reserved. Redistribution and use in source and binary forms, with or
++without modification, are permitted provided that the following
++conditions are met:
++</P>
++<P>1. Redistributions of source code must retain the above copyright
++notice, this list of conditions and the following disclaimer.
++</P>
++<P>2. Redistributions in binary form must reproduce the above
++copyright notice, this list of conditions and the following
++disclaimer in the documentation and/or other materials provided with
++the distribution.</P>
++<P>3. Neither the name of the University nor the names of its
++contributors may be used to endorse or promote products derived from
++this software without specific prior written permission.</P>
++<P>THIS SOFTWARE IS PROVIDED BY HARVARD AND ITS CONTRIBUTORS ``AS
++IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL HARVARD OR
++ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</P>
++<HR>
++<P>Copyright 2001 OpenOffice.org. All rights reserved.</P>
++</BODY>
++</HTML>