summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobody <nobody@gnome.org>2005-05-12 09:16:27 +0000
committernobody <nobody@gnome.org>2005-05-12 09:16:27 +0000
commit17061c9dc4e648b7950b630291ca1267175b0759 (patch)
tree2d6299f95d0b8b9a642227be8b339bfcb1263fe5
parentac2340f0dad18c048fb6ced7504b25b011428619 (diff)
This commit was manufactured by cvs2svn to create tagOOO_BUILD_1_3_12
'OOO_BUILD_1_3_12'.
-rwxr-xr-xbin/build-ooo14
-rwxr-xr-xbin/openoffice-xlate-lang8
-rwxr-xr-xbin/setup.in84
-rw-r--r--doc/internal-libdb-java-issue.txt19
-rw-r--r--patches/OOO_1_1/allow-free-jars.diff116
-rw-r--r--patches/OOO_1_1/basic-array-fix.diff27
-rw-r--r--patches/OOO_1_1/calc-new-acceleration.diff11
-rw-r--r--patches/OOO_1_1/find-xinerama.diff10
-rw-r--r--patches/OOO_1_1/fixup-typedetection-mimetypes.diff209
-rw-r--r--patches/OOO_1_1/fpicker-kde-filter-name.diff21
-rw-r--r--patches/OOO_1_1/fpicker-kde-urls.diff35
-rw-r--r--patches/OOO_1_1/gui-toolbox-large-icons.diff31
-rw-r--r--patches/OOO_1_1/i18n-calc-encoding.diff69
-rw-r--r--patches/OOO_1_1/i18n-indic-default-fonts.diff110
-rw-r--r--patches/OOO_1_1/i18n-lang-italian-fontooowizard.diff11
-rw-r--r--patches/OOO_1_1/ms-interoperability-email-attachment-as-xls-ppt.diff505
-rw-r--r--patches/OOO_1_1/native-fpicker-not-default.diff17
-rw-r--r--patches/OOO_1_1/no-sans-serif-default.diff266
-rw-r--r--patches/OOO_1_1/no-splash-takeover.patch7
-rw-r--r--patches/OOO_1_1/novell-japanese-fonts.diff21
-rw-r--r--patches/OOO_1_1/rpath-origin-python.diff16
-rw-r--r--patches/OOO_1_1/sc-autofilter-empty-nonempty.diff42
-rw-r--r--patches/OOO_1_1/sc-datapilot-autoformat.diff406
-rw-r--r--patches/OOO_1_1/sc-dp-fix.diff63
-rw-r--r--patches/OOO_1_1/sc-no-delete-filteredrows.diff94
-rw-r--r--patches/OOO_1_1/sc-paste-insert-rows.diff13
-rw-r--r--patches/OOO_1_1/sc-standard-filter-options.diff362
-rw-r--r--patches/OOO_1_1/sfx2-no-summary-crash-fix.diff16
-rw-r--r--patches/OOO_1_1/svtools-default-CTL-on.diff11
-rw-r--r--patches/OOO_1_1/svx-default-font-tracks-LANGUAGE_SYSTEM.diff75
-rw-r--r--patches/OOO_1_1/sw-online-layout-crash-fix.diff19
-rw-r--r--patches/OOO_1_1/vba-sc-export.diff207
-rwxr-xr-xpatches/OOO_1_1/win32-gw-send-mail.diff2
-rw-r--r--patches/OOO_1_1/writer-default-as-optimal-page-wrap.diff16
-rw-r--r--patches/evo2/connectivity-source-drivers-evoab1-5-EApi-cxx.diff167
-rw-r--r--patches/order4
-rw-r--r--patches/vclplug/crash-ppd-parse.diff50
-rw-r--r--patches/vclplug/font-substitution-fixups.diff505
-rw-r--r--patches/vclplug/fpicker-gnome-filepicker-hxx.diff19
-rw-r--r--patches/vclplug/fpicker-gnome-folderpicker-cxx.diff14
-rw-r--r--patches/vclplug/fpicker-gnome-vfs-utf-8-encode.diff156
-rw-r--r--patches/vclplug/fpicker-gnome-xml.diff2
-rw-r--r--patches/vclplug/psprint-fontconfigvar.diff11
-rw-r--r--patches/vclplug/vcl-nwf-kde-font-resolving.diff199
-rw-r--r--patches/vclplug/vcl-source-glyphs.diff395
-rw-r--r--patches/vclplug/vcl-unx-source-gdi.diff421
-rw-r--r--src/openabout_mandrakelinux.bmpbin0 -> 118614 bytes
-rw-r--r--src/openintro_ark.bmpbin0 -> 358854 bytes
48 files changed, 3923 insertions, 953 deletions
diff --git a/bin/build-ooo b/bin/build-ooo
index 9e46c4e31..49871449d 100755
--- a/bin/build-ooo
+++ b/bin/build-ooo
@@ -22,13 +22,13 @@ if test "z$FORCE_GCC33" = "zYES"; then
CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS CFLAGS= CXXFLAGS= CC=gcc33 CXX=g++33"
fi
-./configure $CONFIGURE_OPTIONS || exit 1;
+eval "./configure $CONFIGURE_OPTIONS" || exit 1;
# Unfortunately, on when forcing gcc33 on x86, RPM attempts to
# inject its %{optflags} everywhere. Since gcc33 doesn't support
# -mtune, override that here
if test "z$FORCE_GCC33" = "zYES"; then
- if test "z$DISTRO" = "zRHFedora"; then
+ if test "z$DISTRO" = "zFedoraCore3" -o "z$DISTRO" = "zRHEL4"; then
# Set up x86 optimization flags that gcc33 can deal with
ARCH_FLAGS=""
if test "z$INPATH" = "zunxlngi4.pro"; then
@@ -49,7 +49,7 @@ export LANG="C";
if test "z$ENABLE_JAVA" = "zyes"; then
# Many Java's can't cope with the NPTL on Linux.
- LD_ASSUME_KERNEL=2.2.5 /bin/true 2> /dev/null || LD_ASSUME_KERNEL=2.4.10 /bin/true 2> /dev/null || LD_ASSUME_KERNEL=2.6.0 2> /dev/null || unset LD_ASSUME_KERNEL
+ LD_ASSUME_KERNEL=2.2.5 /bin/true 2> /dev/null || LD_ASSUME_KERNEL=2.4.10 /bin/true 2> /dev/null || LD_ASSUME_KERNEL=2.6.0 /bin/true 2> /dev/null || unset LD_ASSUME_KERNEL
export LD_ASSUME_KERNEL
fi
# Don't do a massive painful install
@@ -60,7 +60,7 @@ if test "z$HOME" = "z"; then
fi
cd $OOBUILDDIR
# Import all of the OO.o environment
-if test "z$DISTRO" = "zWin32"; then
+if test "z$BUILD_WIN32" = "zyes"; then
. $OOBUILDDIR/*.set.sh
else
. $OOBUILDDIR/*.Set.sh
@@ -76,7 +76,7 @@ echo 'Verifying environment'
echo "Path: \'$PATH\'"
echo "Shell: \'$SHELL\'"
echo "Lang: \'$LANGS\'"
-if test "z$DISTRO" != "zWin32"; then
+if test "z$BUILD_WIN32" != "zyes"; then
echo "Gcc: "
gcc -dumpversion
fi
@@ -90,7 +90,7 @@ EXTRA_BUILD_FLAGS=
if test $BUILD_NCPUS -gt 1; then
EXTRA_BUILD_FLAGS="-P$BUILD_NCPUS"
fi
-if test "z$BUILD_WIN32"="z"; then
+if test "z$BUILD_WIN32" = "z"; then
EXTRA_BUILD_FLAGS="--dlv_switch link $EXTRA_BUILD_FLAGS"
fi
@@ -104,7 +104,7 @@ fi
unset MAKEFLAGS
# Accelerate straight-through compiles by not building / using dependencies
-export nodep=1
+# export nodep=1
echo "Env:"
set
diff --git a/bin/openoffice-xlate-lang b/bin/openoffice-xlate-lang
index 2fcd9922d..8c1e9f0bb 100755
--- a/bin/openoffice-xlate-lang
+++ b/bin/openoffice-xlate-lang
@@ -114,9 +114,11 @@ __DATA__
01:en:english
03:pt:portuguese
07:ru:russian
+10:eu:basque
26:ns:northernsotho
27:af:afrikaans
28:zu:zulu
+29:tn:tswana
30:el:greek
31:nl:dutch
33:fr:french
@@ -124,6 +126,7 @@ __DATA__
35:fi:finnish
36:hu:hungarian
37:ca:catalan
+38:gl:galician
39:it:italian
42:cs:czech
43:sk:slovak
@@ -135,6 +138,8 @@ __DATA__
50:sl:slovenian
53:cy:welsh
55:pt-BR:portuguese_brazilian
+58:lt:lithuanian
+66:th:thai
77:et:estonian
79:nn:norwegian_nynorsk
81:ja:japanese
@@ -143,5 +148,8 @@ __DATA__
88:zh-TW:chinese_traditional
90:tr:turkish
91:hi:hindi
+92:ta:tamil
+93:kn:kannada
+94:gu:gujarati
96:ar:arabic
97:he:hebrew
diff --git a/bin/setup.in b/bin/setup.in
index 331eda47b..e9f3b7040 100755
--- a/bin/setup.in
+++ b/bin/setup.in
@@ -27,6 +27,8 @@ OOO_ICONS_VERS='@OOO_ICONS_VERS@'
OOO_ICONS_NAMES='@OOO_ICONS_NAMES@'
OOO_WIDGET_FLAGS='@OOO_WIDGET_FLAGS@'
OOO_BUILDVERSION='@OOO_BUILDVERSION@'
+SYSTEM_DB_VERSION='@SYSTEM_DB_VERSION@'
+TOOLSDIR='@TOOLSDIR@'
# shrink this to ENUS,GERM for a faster build
LANGS="ENUS,FREN,GERM,SPAN,ITAL,DTCH,PORT,SWED,POL,RUSS";
@@ -37,68 +39,22 @@ if test "z$VERSION" != "z1.1.0"; then
LANGS="$LANGS,HUNG,ESTONIAN,SLOVENIAN";
fi
-if test "z$DISTRO" = "zRHFedora"; then
- CONFIGURE_OPTIONS="--with-lang=ALL \
- --enable-libart \
- --enable-libsn \
- --enable-crashdump=no \
- --enable-symbols=yes \
- --enable-fontconfig \
- --with-system-zlib \
- --with-system-freetype \
- --with-system-db \
- --with-db-version=4.2 \
- --without-fonts \
- --enable-gtk \
- --enable-kde \
- --disable-mozilla";
-
-elif test "z$DISTRO" = "zRHEL3"; then
- CONFIGURE_OPTIONS="--with-lang=ALL \
- --enable-libart \
- --enable-libsn \
- --enable-crashdump=no \
- --enable-symbols=yes \
- --enable-fontconfig \
- --with-system-zlib \
- --with-system-freetype \
- --with-system-db \
- --with-db-version=4.1 \
- --without-fonts \
- --disable-mozilla";
-
-elif test "z$DISTRO" = "zRHL9"; then
- CONFIGURE_OPTIONS="--with-lang=ALL \
- --enable-libart \
- --enable-libsn \
- --enable-crashdump=no \
- --enable-symbols=yes \
- --enable-fontconfig \
- --with-system-zlib \
- --with-system-freetype \
- --with-system-db \
- --with-db-version=4.1 \
- --without-fonts \
- --disable-mozilla";
-
-elif test "z$DISTRO" = "zArk"; then
- CONFIGURE_OPTIONS="--with-lang=$LANGS \
- --enable-libart --enable-crashdump=no \
- --without-fonts --with-system-zlib --enable-fontconfig \
- --with-system-freetype --with-system-db \
- --with-system-sane-headers \
- --with-system-x11-extensions-headers \
- --with-system-unixodbc-headers \
- --with-system-curl --disable-mozilla\
- --with-python=/usr/bin/python \
- --with-system-xrender \
- --enable-kde"
-
-elif test "z$BUILD_WIN32" != "z"; then
- CONFIGURE_OPTIONS="--with-lang=$LANGS --with-use-shell=tcsh \
- --enable-libart --enable-crashdump=no \
- --disable-mozilla"
+if test "z$DISTRO" = "zNLD" ; then
+ LANGS="$LANGS,PORTBR";
+fi
+# We pull config options in from distro-specific config
+# files, if present
+if test "z$DISTRO" != "z"; then
+ if test -f "$TOOLSDIR/distro-configs/$DISTRO.conf"; then
+ CONFIGURE_OPTIONS="`cat $TOOLSDIR/distro-configs/$DISTRO.conf | xargs`";
+ CONFIGURE_OPTIONS=`eval echo $CONFIGURE_OPTIONS`;
+ else
+ echo "Could not find the distribution specific configure options";
+ echo " file in $TOOLSDIR/distro-configs/. Please add one for this";
+ echo " distribution.";
+ exit 1;
+ fi
else
if test "z$CONFIGURE_OPTIONS" = "z"; then
if [ -s ./setup.configure ]; then
@@ -129,8 +85,8 @@ CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS $OOO_WIDGET_FLAGS"
ENABLE_BONOBO=@ENABLE_BONOBO@
ENABLE_JAVA=@ENABLE_JAVA@
JDK_HOME=@JDK_HOME@
+ANT_HOME=@ANT_HOME@
# Misc. internal
-TOOLSDIR='@TOOLSDIR@'
OOBUILDDIR='@OOBUILDDIR@'
SYSTEM_GCC='@SYSTEM_GCC@'
FORCE_GCC33='@FORCE_GCC33@'
@@ -168,6 +124,10 @@ TCSH=/bin/tcsh
# setup paths
PATH="$BUILDDIR/bin:$PATH:$TOOLSDIR/bin"
if test "z$ENABLE_JAVA" = "zyes"; then
+ if test "z$ANT_HOME" != "z"; then
+ CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS --with-ant-home=$ANT_HOME"
+ PATH="$ANT_HOME:$PATH"
+ fi
if test "z$JDK_HOME" != "z"; then
CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS --with-jdk-home=$JDK_HOME"
PATH="$JDK_HOME:$PATH"
diff --git a/doc/internal-libdb-java-issue.txt b/doc/internal-libdb-java-issue.txt
new file mode 100644
index 000000000..3c71777c4
--- /dev/null
+++ b/doc/internal-libdb-java-issue.txt
@@ -0,0 +1,19 @@
+The internal libdb-4.2 makes problems with java on SL 9.2. There is the same
+libdb-4.2.so installed on the system which provides one more symbol
+(NTPL related path) and OOo setup ends with:
+
+./javaldx: symbol lookup error: /lib/libnss_ldap.so.2: undefined symbol: __db185
+_open
+/usr/lib/ooo-1.1/program/setup.bin: symbol lookup error: /lib/libnss_ldap.so.2:
+undefined symbol: __db185_open
+
+It is because OOo setup sets export LD_LIBRARY_PATH=/usr/lib/ooo-1.1:/usr/lib/ooo-1.1/program,
+so the internal libdb is used also for a java call. The external java is linked
+against the system libnss_ldap.so.2 which is linked against the system libdb-4.2
+and requires the extra symbol.
+
+It would be better to build OOo with the system libdb. Another problem is that
+SUSE's system libdb does not provide the java part.
+
+We actualy rename the internal libdb-4.2.so because the system one
+provides the required symbols. It is done in the SUSE's spec file. \ No newline at end of file
diff --git a/patches/OOO_1_1/allow-free-jars.diff b/patches/OOO_1_1/allow-free-jars.diff
new file mode 100644
index 000000000..d24c83b2d
--- /dev/null
+++ b/patches/OOO_1_1/allow-free-jars.diff
@@ -0,0 +1,116 @@
+--- officecfg/org/openoffice/configuration/XMLDefaultGenerator.java.orig Mon Oct 20 09:53:18 2003
++++ officecfg/org/openoffice/configuration/XMLDefaultGenerator.java Mon Oct 20 15:05:46 2003
+@@ -62,12 +62,12 @@
+
+ import org.xml.sax.*;
+ import org.w3c.dom.*;
+-import com.sun.xml.tree.XmlDocument;
++//import com.sun.xml.tree.XmlDocument;
+ import org.xml.sax.SAXException;
+ import org.xml.sax.SAXParseException;
+ import javax.xml.parsers.SAXParserFactory;
+ import javax.xml.parsers.SAXParser;
+-import com.sun.xml.tree.*;
++//import com.sun.xml.tree.*;
+ import java.util.*;
+ import java.io.*;
+ import com.jclark.xsl.sax.Driver;
+--- XmlSearch/prj/build.lst.orig Mon Oct 20 13:58:06 2003
++++ XmlSearch/prj/build.lst Mon Oct 20 13:58:11 2003
+@@ -1,2 +1 @@
+ xh XmlSearch : external codemaker NULL
+-xh XmlSearch\src\com\sun\xmlsearch nmake - all xs NULL
+--- xmlhelp/prj/build.lst.orig Mon Oct 20 13:53:25 2003
++++ xmlhelp/prj/build.lst Mon Oct 20 13:53:33 2003
+@@ -2,7 +2,6 @@
+ xh xmlhelp usr1 - all xh_mkout NULL
+ xh xmlhelp\source\helpprovider nmake - all xh_helpprovider NULL
+ xh xmlhelp\source\treeview nmake - all xh_treeview NULL
+-xh xmlhelp\source\com\sun\star\help nmake - all xh_help NULL
+ xh xmlhelp\source\cxxhelp\util nmake - all xh_cutil NULL
+ xh xmlhelp\source\cxxhelp\qe nmake - all xh_qe NULL
+ xh xmlhelp\source\cxxhelp\db nmake - all xh_db NULL
+Index: util/makefile.pmk
+===================================================================
+RCS file: /cvs/installation/readlicense/util/makefile.pmk,v
+retrieving revision 1.2.30.1
+diff -u -u -r1.2.30.1 makefile.pmk
+--- readlicense_oo/util/makefile.pmk 9 Jan 2004 18:10:12 -0000 1.2.30.1
++++ readlicense_oo/util/makefile.pmk 17 Oct 2004 22:32:06 -0000
+@@ -79,7 +79,7 @@
+ $(MISC)$/%.html :
+ @+-$(MKDIR) $(@:d)
+ .IF "$(SOLAR_JAVA)"!=""
+- $(JAVA) -classpath $(COMMON_BUILD_TOOLS)$/xt.jar$(PATH_SEPERATOR)$(COMMON_BUILD_TOOLS)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $(subst,$(@::d:d:b), $(@:b).xrm) ..$/readme.xsl os1=$(OS) gui1=$(GUI) cp1=$(CPUNAME) com1=$(COM) lang1=$(iso_$(@:d:d:b)) type=html file=$@
++ $(JAVA) -classpath $(COMMON_BUILD_TOOLS)$/xt.jar$(PATH_SEPERATOR)$(COMMON_BUILD_TOOLS)$/parser.jar com.jclark.xsl.sax.Driver $(subst,$(@::d:d:b), $(@:b).xrm) ..$/readme.xsl os1=$(OS) gui1=$(GUI) cp1=$(CPUNAME) com1=$(COM) lang1=$(iso_$(@:d:d:b)) type=html file=$@
+ .ELSE
+ sed 's|xmlns:xt="http://www.jclark.com/xt"||;s|extension-element-prefixes="xt"||;s|.*xt:document.*||;s|<xsl:output method = "HTML" doctype-public = "-//W3C//DTD HTML 3.2//EN" />|<xsl:output method="html" doctype-public="-//W3C//DTD HTML 3.2//EN" />|' < ..$/readme.xsl > ..$/readme2.xsl
+ xsltproc -o $@ \
+@@ -97,7 +97,7 @@
+ $(MISC)$/%.txt :
+ @+-$(MKDIR) $(@:d)
+ .IF "$(SOLAR_JAVA)"!=""
+- $(JAVA) -classpath $(COMMON_BUILD_TOOLS)$/xt.jar$(PATH_SEPERATOR)$(COMMON_BUILD_TOOLS)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $(subst,$(@::d:d:b), $(@:b).xrm) ..$/readme.xsl os1=$(OS) gui1=$(GUI) cp1=$(CPUNAME) com1=$(COM) lang1=$(iso_$(@:d:d:b)) type=text file=$@
++ $(JAVA) -classpath $(COMMON_BUILD_TOOLS)$/xt.jar$(PATH_SEPERATOR)$(COMMON_BUILD_TOOLS)$/parser.jar com.jclark.xsl.sax.Driver $(subst,$(@::d:d:b), $(@:b).xrm) ..$/readme.xsl os1=$(OS) gui1=$(GUI) cp1=$(CPUNAME) com1=$(COM) lang1=$(iso_$(@:d:d:b)) type=text file=$@
+ .ELSE
+ sed 's|xmlns:xt="http://www.jclark.com/xt"||;s|extension-element-prefixes="xt"||;s|.*xt:document.*||;s|<xsl:output method = "HTML" doctype-public = "-//W3C//DTD HTML 3.2//EN" />|<xsl:output method="text" />|' < ..$/readme.xsl > ..$/readme2.xsl
+ xsltproc -o $@ \
+Index: makefile.pmk
+===================================================================
+RCS file: /cvs/util/officecfg/util/makefile.pmk,v
+retrieving revision 1.23.94.1
+diff -u -u -r1.23.94.1 makefile.pmk
+--- officecfg/util/makefile.pmk 9 Jan 2004 18:06:41 -0000 1.23.94.1
++++ officecfg/util/makefile.pmk 17 Oct 2004 22:35:53 -0000
+@@ -68,11 +68,11 @@
+ @+echo -------------+ validating and stripping schema files
+ -$(MKDIR) -p $(@:d)
+ .IF "$(SOLAR_JAVA)"!=""
+- $(JAVA) -classpath $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/cfgimport.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.configuration.Inspector $<
+- $(JAVA) -classpath $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(PRJ)$/util$/schema_val.xsl $(@:d)$(<:b).val file=$(<:d)$(<:b) pathSeparator=$/
+- $(JAVA) -classpath $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(PRJ)$/util$/sanity.xsl $(@:d)$(<:b).san file=$(<:d)$(<:b) pathSeparator=$/
+- $(JAVA) -classpath $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(PRJ)$/util$/schema_trim.xsl $(@:d)$(<:b).tmp
+- $(JAVA) -classpath $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$(<:b).tmp $(@:d)$(<:b).xcs
++ $(JAVA) -classpath $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/cfgimport.jar org.openoffice.configuration.Inspector $<
++ $(JAVA) -classpath $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar com.jclark.xsl.sax.Driver $< $(PRJ)$/util$/schema_val.xsl $(@:d)$(<:b).val file=$(<:d)$(<:b) pathSeparator=$/
++ $(JAVA) -classpath $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar com.jclark.xsl.sax.Driver $< $(PRJ)$/util$/sanity.xsl $(@:d)$(<:b).san file=$(<:d)$(<:b) pathSeparator=$/
++ $(JAVA) -classpath $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar com.jclark.xsl.sax.Driver $< $(PRJ)$/util$/schema_trim.xsl $(@:d)$(<:b).tmp
++ $(JAVA) -classpath $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/schema.jar org.openoffice.helper.PrettyPrinter $(@:d)$(<:b).tmp $(@:d)$(<:b).xcs
+ .ELSE
+ # xsltproc already validates against the dtd. For additional validation,
+ # org.openoffice.configuration.Inspector should be replaced and the
+@@ -98,7 +98,7 @@
+ @+echo -------------+ creating locale dependent resource bundles
+ -$(MKDIR) -p $(@:d)
+ .IF "$(SOLAR_JAVA)"!=""
+- $(JAVA) -classpath $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(PRJ)$/util$/resource.xsl $(@:d)$(<:b).properties locale={$(subst,$/$<, $(subst,$(MISC)$/registry$/res$/, $(subst,.properties,.xcs $@)))}
++ $(JAVA) -classpath $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar com.jclark.xsl.sax.Driver $< $(PRJ)$/util$/resource.xsl $(@:d)$(<:b).properties locale={$(subst,$/$<, $(subst,$(MISC)$/registry$/res$/, $(subst,.properties,.xcs $@)))}
+ .ELSE
+ $(XSLTPROC) -o $(@:d)$(<:b).properties \
+ --stringparam locale {$(subst,$/$<, $(subst,$(MISC)$/registry$/res$/, $(subst,.properties,.xcs $@)))} \
+@@ -111,10 +111,10 @@
+ @+echo -------------+ validating and creating a locale independent file
+ -$(MKDIR) -p $(@:d)
+ .IF "$(SOLAR_JAVA)"!=""
+- $(JAVA) -classpath $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/cfgimport.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.configuration.Inspector $<
+- $(JAVA) -classpath $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(PRJ)$/util$/data_val.xsl $(@:d)$(<:b).val xcs=$(PRJ)$/registry$/schema$/$(<:d)$(<:b).xcs schemaRoot=$(PRJ)$/registry$/schema
+- $(JAVA) -classpath $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(PRJ)$/util$/alllang.xsl $(@:d)$(<:b).tmp xcs=$(PRJ)$/registry$/schema$/$(<:d)$(<:b).xcs schemaRoot=$(PRJ)$/registry$/schema
+- $(JAVA) -classpath $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$(<:b).tmp $(@:d)$(<:b).xcu
++ $(JAVA) -classpath $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/cfgimport.jar org.openoffice.configuration.Inspector $<
++ $(JAVA) -classpath $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/cfgimport.jar com.jclark.xsl.sax.Driver $< $(PRJ)$/util$/data_val.xsl $(@:d)$(<:b).val xcs=$(PRJ)$/registry$/schema$/$(<:d)$(<:b).xcs schemaRoot=$(PRJ)$/registry$/schema
++ $(JAVA) -classpath $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/cfgimport.jar com.jclark.xsl.sax.Driver $< $(PRJ)$/util$/alllang.xsl $(@:d)$(<:b).tmp xcs=$(PRJ)$/registry$/schema$/$(<:d)$(<:b).xcs schemaRoot=$(PRJ)$/registry$/schema
++ $(JAVA) -classpath $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/schema.jar org.openoffice.helper.PrettyPrinter $(@:d)$(<:b).tmp $(@:d)$(<:b).xcu
+ .ELSE
+ # xsltproc already validates against the dtd. For additional validation,
+ # org.openoffice.configuration.Inspector should be replaced and the
+@@ -142,8 +142,8 @@
+ @+echo -------------+ creating locale dependent entries
+ -$(MKDIR) -p $(@:d)
+ .IF "$(SOLAR_JAVA)"!=""
+- $(JAVA) -classpath $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(PRJ)$/util$/alllang.xsl $(@:d)$(<:b).tmp xcs=$(PRJ)$/registry$/schema$/$(<:d)$(<:b).xcs schemaRoot=$(PRJ)$/registry$/schema locale={$(subst,$/$<, $(subst,$(MISC)$/registry$/res$/, $@))}
+- $(JAVA) -classpath $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$(<:b).tmp $(@:d)$(<:b).xcu
++ $(JAVA) -classpath $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/cfgimport.jar com.jclark.xsl.sax.Driver $< $(PRJ)$/util$/alllang.xsl $(@:d)$(<:b).tmp xcs=$(PRJ)$/registry$/schema$/$(<:d)$(<:b).xcs schemaRoot=$(PRJ)$/registry$/schema locale={$(subst,$/$<, $(subst,$(MISC)$/registry$/res$/, $@))}
++ $(JAVA) -classpath $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(CLASSDIR)$/schema.jar org.openoffice.helper.PrettyPrinter $(@:d)$(<:b).tmp $(@:d)$(<:b).xcu
+ .ELSE
+ $(SED) 's|xmlns:filehelper="http://www.jclark.com/xt/java/org.openoffice.configuration.FileHelper"||;s|extension-element-prefixes="filehelper"||;s|filehelper:makeAbs(\(.*\))|\1|' < $(PRJ)$/util$/alllang.xsl > $(PRJ)$/util$/alllang2.xsl
+ $(XSLTPROC) -o $(@:d)$(<:b).tmp \
diff --git a/patches/OOO_1_1/basic-array-fix.diff b/patches/OOO_1_1/basic-array-fix.diff
new file mode 100644
index 000000000..851e8bdab
--- /dev/null
+++ b/patches/OOO_1_1/basic-array-fix.diff
@@ -0,0 +1,27 @@
+Index: methods1.cxx
+===================================================================
+RCS file: /cvs/script/basic/source/runtime/methods1.cxx,v
+retrieving revision 1.14.32.3
+retrieving revision 1.14.32.3.2.1
+diff -u -p -u -r1.14.32.3 -r1.14.32.3.2.1
+--- basic/source/runtime/methods1.cxx
++++ basic/source/runtime/methods1.cxx
+@@ -625,6 +625,8 @@ RTLFUNC(Array)
+ // Option Base zunaechst ignorieren (kennt leider nur der Compiler)
+ if( nArraySize )
+ pArray->AddDim( 0, nArraySize-1 );
++ else
++ pArray->unoAddDim( 0, -1 );
+
+ // Parameter ins Array uebernehmen
+ for( short i = 0 ; i < nArraySize ; i++ )
+@@ -664,6 +666,9 @@ RTLFUNC(DimArray)
+ pArray->AddDim32( 0, ub );
+ }
+ }
++ else
++ pArray->unoAddDim( 0, -1 );
++
+ // Array zurueckliefern
+ SbxVariableRef refVar = rPar.Get(0);
+ USHORT nFlags = refVar->GetFlags();
diff --git a/patches/OOO_1_1/calc-new-acceleration.diff b/patches/OOO_1_1/calc-new-acceleration.diff
new file mode 100644
index 000000000..2a0b2b198
--- /dev/null
+++ b/patches/OOO_1_1/calc-new-acceleration.diff
@@ -0,0 +1,11 @@
+--- sc/source/ui/src/menue.src 2005-02-07 12:18:12.836070783 +0530
++++ sc/source/ui/src/menue.src 2005-02-04 22:22:12.000000000 +0530
+@@ -236,6 +236,8 @@
+ USR_ACCEL ( SID_STYLE_CATALOG , KEY_F11 , FALSE , TRUE , FALSE )
+ USR_ACCEL ( FID_FILL_TO_BOTTOM, KEY_D , FALSE , TRUE , FALSE )
+ USR_ACCEL ( SID_SETINPUTMODE , KEY_F2 , FALSE , FALSE , FALSE )
++ USR_ACCEL ( FID_DELETE_CELL , KEY_SUBTRACT , FALSE , TRUE , FALSE )
++ USR_ACCEL ( FID_INS_CELL , KEY_ADD , TRUE , TRUE , FALSE )
+ USR_ACCEL ( SID_OPENDLG_FUNCTION , KEY_F2 , FALSE , TRUE , FALSE )
+ USR_ACCEL ( SID_FOCUS_INPUTLINE , KEY_F2 , TRUE , TRUE , FALSE )
+ USR_ACCEL ( FID_DEFINE_NAME , KEY_F3 , FALSE , TRUE , FALSE )
diff --git a/patches/OOO_1_1/find-xinerama.diff b/patches/OOO_1_1/find-xinerama.diff
new file mode 100644
index 000000000..8eeca909b
--- /dev/null
+++ b/patches/OOO_1_1/find-xinerama.diff
@@ -0,0 +1,10 @@
+--- config_office/configure.in.ark 2005-01-25 16:01:34.000000000 +0100
++++ config_office/configure.in 2005-01-25 16:01:44.000000000 +0100
+@@ -1835,6 +1835,7 @@
+ AC_SUBST(XINC)
+ XLIB="$x_libraries"
+ AC_SUBST(XLIB)
++CPPFLAGS="$CPPFLAGS -I$XINC"
+
+ dnl ***************************************
+ dnl testing libc version for Linux...
diff --git a/patches/OOO_1_1/fixup-typedetection-mimetypes.diff b/patches/OOO_1_1/fixup-typedetection-mimetypes.diff
new file mode 100644
index 000000000..0c85425e9
--- /dev/null
+++ b/patches/OOO_1_1/fixup-typedetection-mimetypes.diff
@@ -0,0 +1,209 @@
+--- officecfg/registry/data/org/openoffice/Office/TypeDetection.xcu 27 Apr 2004 16:32:24 -0000 1.44.8.5
++++ officecfg/registry/data/org/openoffice/Office/TypeDetection.xcu 8 Nov 2004 11:56:22 -0000
+@@ -232,7 +232,7 @@
+ <value xml:lang="en-US">Microsoft Excel 4.0</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,,,xls;xlw,0,</value>
++ <value>0,application/vnd.ms-excel,,,xls;xlw,0,</value>
+ </prop>
+ </node>
+ <node oor:name="calc_MS_Excel_40_VorlageTemplate" oor:op="replace">
+@@ -240,7 +240,7 @@
+ <value xml:lang="en-US">MS Excel 4.0 Template</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,,,xlt,0,</value>
++ <value>0,application/vnd.ms-excel,,,xlt,0,</value>
+ </prop>
+ </node>
+ <node oor:name="calc_MS_Excel_5095" oor:op="replace">
+@@ -248,7 +248,7 @@
+ <value xml:lang="en-US">Microsoft Excel 5.0</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,Biff5,,xls;xlw,0,</value>
++ <value>0,application/vnd.ms-excel,Biff5,,xls;xlw,0,</value>
+ </prop>
+ </node>
+ <node oor:name="calc_MS_Excel_5095_VorlageTemplate" oor:op="replace">
+@@ -256,7 +256,7 @@
+ <value xml:lang="en-US">MS Excel 5.0 Template</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,Biff5,,xlt,0,</value>
++ <value>0,application/vnd.ms-excel,Biff5,,xlt,0,</value>
+ </prop>
+ </node>
+ <node oor:name="calc_MS_Excel_95" oor:op="replace">
+@@ -264,7 +264,7 @@
+ <value xml:lang="en-US">Microsoft Excel 95</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,Biff5,,xls;xlw,0,</value>
++ <value>0,application/vnd.ms-excel,Biff5,,xls;xlw,0,</value>
+ </prop>
+ </node>
+ <node oor:name="calc_MS_Excel_95_VorlageTemplate" oor:op="replace">
+@@ -272,7 +272,7 @@
+ <value xml:lang="en-US">MS Excel 95 Template</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,Biff5,,xlt,0,</value>
++ <value>0,application/vnd.ms-excel,Biff5,,xlt,0,</value>
+ </prop>
+ </node>
+ <node oor:name="calc_MS_Excel_97" oor:op="replace">
+@@ -280,7 +280,7 @@
+ <value xml:lang="en-US">Microsoft Excel 97/2000/XP</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>1,,Biff8,,xls;xlw,0,</value>
++ <value>1,application/vnd.ms-excel,Biff8,,xls;xlw,0,</value>
+ </prop>
+ </node>
+ <node oor:name="calc_MS_Excel_97_VorlageTemplate" oor:op="replace">
+@@ -288,7 +288,7 @@
+ <value xml:lang="en-US">MS Excel 97/2000 Template</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>1,,Biff8,,xlt,0,</value>
++ <value>1,application/vnd.ms-excel,Biff8,,xlt,0,</value>
+ </prop>
+ </node>
+ <node oor:name="calc_SYLK" oor:op="replace">
+@@ -1112,7 +1112,7 @@
+ <value xml:lang="en-US">Microsoft MacWord 3.0</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,,,doc,20002,</value>
++ <value>0,application/vnd.ms-word,,,doc,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_MacWord_40_W4W" oor:op="replace">
+@@ -1120,7 +1120,7 @@
+ <value xml:lang="en-US">Microsoft MacWord 4.0</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,,,doc,20002,</value>
++ <value>0,application/vnd.ms-word,,,doc,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_MacWord_5x_W4W" oor:op="replace">
+@@ -1128,7 +1128,7 @@
+ <value xml:lang="en-US">Microsoft MacWord 5.x</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,,,doc,20002,</value>
++ <value>0,application/vnd.ms-word,,,doc,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_WinWord_1x_W4W" oor:op="replace">
+@@ -1136,7 +1136,7 @@
+ <value xml:lang="en-US">Microsoft WinWord 1.x</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,,,doc,20002,</value>
++ <value>0,application/vnd.ms-word,,,doc,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_WinWord_2x_W4W" oor:op="replace">
+@@ -1144,7 +1144,7 @@
+ <value xml:lang="en-US">Microsoft WinWord 2.x</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,,,doc,20002,</value>
++ <value>0,application/vnd.ms-word,,,doc,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_WinWord_5" oor:op="replace">
+@@ -1152,7 +1152,7 @@
+ <value xml:lang="en-US">Microsoft WinWord 5</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,application/msword,MSWordDoc,,doc,20002,</value>
++ <value>0,application/vnd.ms-word,MSWordDoc,,doc,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_WinWord_60" oor:op="replace">
+@@ -1160,7 +1160,7 @@
+ <value xml:lang="en-US">Microsoft Word 6.0</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,application/msword,MSWordDoc,,doc,20002,</value>
++ <value>0,application/vnd.ms-word,MSWordDoc,,doc,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_Word_3x_W4W" oor:op="replace">
+@@ -1168,7 +1168,7 @@
+ <value xml:lang="en-US">Microsoft Word 3.x</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,,,txt,20002,</value>
++ <value>0,application/vnd.ms-word,,,txt,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_Word_4x_W4W" oor:op="replace">
+@@ -1176,7 +1176,7 @@
+ <value xml:lang="en-US">Microsoft Word 4.x</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,,,txt,20002,</value>
++ <value>0,application/vnd.ms-word,,,txt,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_Word_5x_W4W" oor:op="replace">
+@@ -1184,7 +1184,7 @@
+ <value xml:lang="en-US">Microsoft Word 5.x</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,,,txt,20002,</value>
++ <value>0,application/vnd.ms-word,,,txt,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_Word_6x_W4W" oor:op="replace">
+@@ -1192,7 +1192,7 @@
+ <value xml:lang="en-US">Microsoft Word 6.x</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,,,,txt,20002,</value>
++ <value>0,application/vnd.ms-word,,,txt,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_Word_95" oor:op="replace">
+@@ -1200,7 +1200,7 @@
+ <value xml:lang="en-US">Microsoft Word 95</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,application/msword,MSWordDoc,,doc,20002,</value>
++ <value>0,application/vnd.ms-word,MSWordDoc,,doc,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_Word_95_Vorlage" oor:op="replace">
+@@ -1208,7 +1208,7 @@
+ <value xml:lang="en-US">MS Word 95 Template</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>0,application/msword,MSWordDoc,,dot,20002,</value>
++ <value>0,application/vnd.ms-word,MSWordDoc,,dot,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_Word_97" oor:op="replace">
+@@ -1216,7 +1216,7 @@
+ <value xml:lang="en-US">Microsoft Word 97/2000/XP</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>1,application/msword,MSWordDoc,,doc,20002,</value>
++ <value>1,application/vnd.ms-word,MSWordDoc,,doc,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_Word_97_Vorlage" oor:op="replace">
+@@ -1224,7 +1224,7 @@
+ <value xml:lang="en-US">MS Word 97/2000 Template</value>
+ </prop>
+ <prop oor:name="Data">
+- <value>1,application/msword,MSWordDoc,,dot,20002,</value>
++ <value>1,application/vnd.ms-word,MSWordDoc,,dot,20002,</value>
+ </prop>
+ </node>
+ <node oor:name="writer_MS_Works_20_DOS_W4W" oor:op="replace">
diff --git a/patches/OOO_1_1/fpicker-kde-filter-name.diff b/patches/OOO_1_1/fpicker-kde-filter-name.diff
new file mode 100644
index 000000000..e7961297e
--- /dev/null
+++ b/patches/OOO_1_1/fpicker-kde-filter-name.diff
@@ -0,0 +1,21 @@
+--- fpicker/source/unx/kde/kdefilepicker.cxx 2005-05-09 15:16:26.005903927 +0200
++++ fpicker/source/unx/kde/kdefilepicker.cxx 2005-05-09 15:16:13.962981172 +0200
+@@ -714,4 +714,18 @@ void FileFilterComboHack::setCurrentFilt
+ {
+ setCurrentText( filter );
+ filterChanged();
++
++ // Workaround for 'Filter name (*.blah)' vs. 'Filter name'
++ if ( currentText() != text( currentItem() ) )
++ {
++ int nItem = 0;
++ for ( ; nItem < count() && !text( nItem ).startsWith( filter ); ++nItem );
++
++ if ( nItem < count() )
++ setCurrentItem( nItem );
++ else
++ setCurrentItem( 0 );
++
++ filterChanged();
++ }
+ }
diff --git a/patches/OOO_1_1/fpicker-kde-urls.diff b/patches/OOO_1_1/fpicker-kde-urls.diff
new file mode 100644
index 000000000..6c3090518
--- /dev/null
+++ b/patches/OOO_1_1/fpicker-kde-urls.diff
@@ -0,0 +1,35 @@
+--- fpicker/source/unx/kde/kdefilepicker.cxx
++++ fpicker/source/unx/kde/kdefilepicker.cxx
+@@ -229,6 +229,8 @@
+ case CommandEvent::GetDirectory:
+ {
+ QString qDirectory = baseURL().url();
++ if ( qDirectory.startsWith( "file:/" ) && qDirectory.mid( 6, 1 ) != "/" )
++ qDirectory.replace( "file:/", "file:///" );
+ sendCommand( "currentDirectory " + escapeString( qDirectory ) );
+ }
+ break;
+@@ -251,7 +253,10 @@
+ for ( KURL::List::const_iterator it = qList.begin(); it != qList.end(); ++it )
+ {
+ qString.append( " " );
+- appendEscaped( qString, addExtension( (*it).url() ) );
++ QString qUrlStr = (*it).url();
++ if ( qUrlStr.startsWith( "file:/" ) && qUrlStr.mid( 6, 1 ) != "/" )
++ qUrlStr.replace( "file:/", "file:///" );
++ appendEscaped( qString, addExtension( qUrlStr ) );
+ }
+ }
+ else
+@@ -261,7 +266,10 @@
+ for ( KFileItemListIterator it( *pItems ); it.current(); ++it )
+ {
+ qString.append( " " );
+- appendEscaped( qString, addExtension( (*it)->url().url() ) );
++ QString qUrlStr = (*it)->url().url();
++ if ( qUrlStr.startsWith( "file:/" ) && qUrlStr.mid( 6, 1 ) != "/" )
++ qUrlStr.replace( "file:/", "file:///" );
++ appendEscaped( qString, addExtension( qUrlStr ) );
+ }
+ }
+
diff --git a/patches/OOO_1_1/gui-toolbox-large-icons.diff b/patches/OOO_1_1/gui-toolbox-large-icons.diff
index 3e8c9eed7..3bef667bf 100644
--- a/patches/OOO_1_1/gui-toolbox-large-icons.diff
+++ b/patches/OOO_1_1/gui-toolbox-large-icons.diff
@@ -2,10 +2,11 @@ Index: registry/schema/org/openoffice/Office/Common.xcs
===================================================================
RCS file: /cvs/util/officecfg/registry/schema/org/openoffice/Office/Common.xcs,v
retrieving revision 1.84.8.5
-diff -u -r1.84.8.5 Common.xcs
---- officecfg/registry/schema/org/openoffice/Office/Common.xcs 27 Apr 2004 16:35:22 -0000 1.84.8.5
-+++ officecfg/registry/schema/org/openoffice/Office/Common.xcs 8 Jun 2004 23:01:08 -0000
-@@ -28992,41 +28992,46 @@
+Index: officecfg/registry/schema/org/openoffice/Office/Common.xcs
+===================================================================
+--- officecfg/registry/schema/org/openoffice/Office/Common.xcs.orig 2004-09-12 12:14:15.192985792 +0200
++++ officecfg/registry/schema/org/openoffice/Office/Common.xcs 2004-09-12 12:18:47.003664288 +0200
+@@ -36038,50 +36038,55 @@
</enumeration>
<enumeration oor:value="1">
<info>
@@ -32,7 +33,7 @@ diff -u -r1.84.8.5 Common.xcs
- <desc xml:lang="pt-BR">32x32 pixel icons</desc>
- <desc xml:lang="ja">32×32 ピクセルアイコン</desc>
- <desc xml:lang="ko">32x32 pixel icons</desc>
-- <desc xml:lang="tr">32x32 pixel icons</desc>
+- <desc xml:lang="tr">32x32 piksel simgeler</desc>
- <desc xml:lang="th">32x32 pixel icons</desc>
- <desc xml:lang="x-comment">32x32 pixel icons</desc>
- <desc xml:lang="hu">32x32 pixel icons</desc>
@@ -40,6 +41,15 @@ diff -u -r1.84.8.5 Common.xcs
- <desc xml:lang="ns">32x32 pixel icons</desc>
- <desc xml:lang="af">32x32 pixel icons</desc>
- <desc xml:lang="zu">32x32 pixel icons</desc>
+- <desc xml:lang="nb">32x32 pixel icons</desc>
+- <desc xml:lang="et">32x32 pixel icons</desc>
+- <desc xml:lang="cy">32x32 pixel icons</desc>
+- <desc xml:lang="tn">32x32 pixel icons</desc>
+- <desc xml:lang="nn">32x32 pixel icons</desc>
+- <desc xml:lang="eu">32x32 pixel icons</desc>
+- <desc xml:lang="lt">32x32 taškų paveikslai</desc>
+- <desc xml:lang="kn-IN">32x32 pixel icons</desc>
+- <desc xml:lang="gl">32x32 pixel icons</desc>
+ <desc xml:lang="en-US">24x24 pixel icons</desc>
+ <desc xml:lang="el">24x24 pixel icons</desc>
+ <desc xml:lang="nl">24x24 pixel iconen</desc>
@@ -63,7 +73,7 @@ diff -u -r1.84.8.5 Common.xcs
+ <desc xml:lang="pt-BR">24x24 pixel icons</desc>
+ <desc xml:lang="ja">24×24 ピクセルアイコン</desc>
+ <desc xml:lang="ko">24x24 pixel icons</desc>
-+ <desc xml:lang="tr">24x24 pixel icons</desc>
++ <desc xml:lang="tr">24x24 piksel simgeler</desc>
+ <desc xml:lang="th">24x24 pixel icons</desc>
+ <desc xml:lang="x-comment">24x24 pixel icons</desc>
+ <desc xml:lang="hu">24x24 pixel icons</desc>
@@ -71,6 +81,15 @@ diff -u -r1.84.8.5 Common.xcs
+ <desc xml:lang="ns">24x24 pixel icons</desc>
+ <desc xml:lang="af">24x24 pixel icons</desc>
+ <desc xml:lang="zu">24x24 pixel icons</desc>
++ <desc xml:lang="nb">24x24 pixel icons</desc>
++ <desc xml:lang="et">24x24 pixel icons</desc>
++ <desc xml:lang="cy">24x24 pixel icons</desc>
++ <desc xml:lang="tn">24x24 pixel icons</desc>
++ <desc xml:lang="nn">24x24 pixel icons</desc>
++ <desc xml:lang="eu">24x24 pixel icons</desc>
++ <desc xml:lang="lt">24x24 taškų paveikslai</desc>
++ <desc xml:lang="kn-IN">24x24 pixel icons</desc>
++ <desc xml:lang="gl">24x24 pixel icons</desc>
+ </info>
+ </enumeration>
+ <enumeration oor:value="2">
diff --git a/patches/OOO_1_1/i18n-calc-encoding.diff b/patches/OOO_1_1/i18n-calc-encoding.diff
index 15c23ed17..11c0cf3b2 100644
--- a/patches/OOO_1_1/i18n-calc-encoding.diff
+++ b/patches/OOO_1_1/i18n-calc-encoding.diff
@@ -2,10 +2,11 @@ Index: calc/profile_calc.lng
===================================================================
RCS file: /cvs/installation/scp/source/calc/Attic/profile_calc.lng,v
retrieving revision 1.49.24.5
-diff -u -r1.49.24.5 profile_calc.lng
---- scp/source/calc/profile_calc.lng 27 Apr 2004 18:15:09 -0000 1.49.24.5
-+++ scp/source/calc/profile_calc.lng 10 Jun 2004 15:28:49 -0000
-@@ -598,7 +598,7 @@
+Index: scp/source/calc/profile_calc.lng
+===================================================================
+--- scp/source/calc/profile_calc.lng.orig 2004-09-13 22:31:50.000000000 +0200
++++ scp/source/calc/profile_calc.lng 2004-09-14 15:49:37.746332016 +0200
+@@ -678,7 +678,7 @@
82 = "%PRODUCTNAME %PRODUCTVERSION 스프레드시트"
86 = "%PRODUCTNAME %PRODUCTVERSION 工作表"
88 = "%PRODUCTNAME %PRODUCTVERSION 工作表"
@@ -14,23 +15,11 @@ diff -u -r1.49.24.5 profile_calc.lng
07 = "Ýëåêòðîííàÿ òàáëèöà %PRODUCTNAME %PRODUCTVERSION"
30 = "Õðïëïãéóôéêü öýëëï %PRODUCTNAME %PRODUCTVERSION"
31 = "%PRODUCTNAME %PRODUCTVERSION Werkblad"
-@@ -636,7 +636,7 @@
- 34 = "Hoja de ~cálculo"
- 55 = "~Planilha"
- 48 = "~Arkusz kalkulacyjny"
--03 = "Folha de ~cálculo"
-+03 = "Folha de ~cálculo"
- 82 = "스프레드시트(~S)"
- 33 = "~Classeur"
- 96 = "~Spreadsheet"
-Index: impress/profile_impress.lng
+Index: scp/source/impress/profile_impress.lng
===================================================================
-RCS file: /cvs/installation/scp/source/impress/Attic/profile_impress.lng,v
-retrieving revision 1.57.24.5
-diff -u -r1.57.24.5 profile_impress.lng
---- scp/source/impress/profile_impress.lng 27 Apr 2004 18:18:43 -0000 1.57.24.5
-+++ scp/source/impress/profile_impress.lng 10 Jun 2004 15:28:51 -0000
-@@ -639,7 +639,7 @@
+--- scp/source/impress/profile_impress.lng.orig 2004-09-13 22:32:00.000000000 +0200
++++ scp/source/impress/profile_impress.lng 2004-09-14 15:49:37.749331560 +0200
+@@ -724,7 +724,7 @@
82 = "%PRODUCTNAME %PRODUCTVERSION 프레젠테ì´ì…˜"
86 = "%PRODUCTNAME %PRODUCTVERSION 演示文稿"
88 = "%PRODUCTNAME %PRODUCTVERSION ç°¡å ±"
@@ -39,7 +28,7 @@ diff -u -r1.57.24.5 profile_impress.lng
07 = "Ïðåçåíòàöèÿ %PRODUCTNAME %PRODUCTVERSION"
30 = "Ðáñïõóßáóç %PRODUCTNAME %PRODUCTVERSION"
31 = "%PRODUCTNAME %PRODUCTVERSION Presentatie"
-@@ -677,7 +677,7 @@
+@@ -767,7 +767,7 @@
34 = "~Presentación"
55 = "A~presentação"
48 = "~Prezentacja"
@@ -48,7 +37,7 @@ diff -u -r1.57.24.5 profile_impress.lng
82 = "프레젠테ì´ì…˜(~P)"
33 = "~Présentation"
96 = "ÚÑÖ Ê~ÞÏíãí"
-@@ -714,7 +714,7 @@
+@@ -809,7 +809,7 @@
34 = "~Presentación..."
55 = "A~presentação..."
48 = "~Prezentacja..."
@@ -56,15 +45,12 @@ diff -u -r1.57.24.5 profile_impress.lng
+03 = "A~presentação..."
82 = "프레젠테ì´ì…˜(~P)..."
33 = "~Présentation..."
- 96 = "~Presentation..."
-Index: math/profile_math.lng
+ 96 = "~ÚÑÖ ÊÞÏíãì..."
+Index: scp/source/math/profile_math.lng
===================================================================
-RCS file: /cvs/installation/scp/source/math/Attic/profile_math.lng,v
-retrieving revision 1.40.24.4
-diff -u -r1.40.24.4 profile_math.lng
---- scp/source/math/profile_math.lng 27 Apr 2004 18:20:23 -0000 1.40.24.4
-+++ scp/source/math/profile_math.lng 10 Jun 2004 15:28:51 -0000
-@@ -80,7 +80,7 @@
+--- scp/source/math/profile_math.lng.orig 2004-09-13 22:32:04.000000000 +0200
++++ scp/source/math/profile_math.lng 2004-09-14 15:49:37.750331408 +0200
+@@ -90,7 +90,7 @@
34 = "~Fórmula"
55 = "~Fórmula"
48 = "F~ormu³a"
@@ -73,14 +59,11 @@ diff -u -r1.40.24.4 profile_math.lng
82 = "수ì‹(~O)"
33 = "F~ormule"
96 = "ÕíÛÉ"
-Index: office/profile.lng
+Index: scp/source/office/profile.lng
===================================================================
-RCS file: /cvs/installation/scp/source/office/Attic/profile.lng,v
-retrieving revision 1.58.24.8
-diff -u -r1.58.24.8 profile.lng
---- scp/source/office/profile.lng 4 May 2004 06:48:05 -0000 1.58.24.8
-+++ scp/source/office/profile.lng 10 Jun 2004 15:28:53 -0000
-@@ -1080,7 +1080,7 @@
+--- scp/source/office/profile.lng.orig 2004-09-13 22:32:06.000000000 +0200
++++ scp/source/office/profile.lng 2004-09-14 15:49:37.756330496 +0200
+@@ -1225,7 +1225,7 @@
34 = "~Tarjetas de visita"
55 = "Cartões de ~Visita"
48 = "~Wizytówki"
@@ -88,8 +71,8 @@ diff -u -r1.58.24.8 profile.lng
+03 = "Cartões de ~visita"
82 = "명함(~U)"
33 = "Cartes de ~visite"
- 96 = "B~usiness Cards"
-@@ -1302,7 +1302,7 @@
+ 96 = "ß~ÑÊ ÇáÚãá"
+@@ -1477,7 +1477,7 @@
34 = "Página ~Web..."
55 = "Página da ~Web..."
48 = "Strona ~WWW..."
@@ -97,8 +80,8 @@ diff -u -r1.58.24.8 profile.lng
+03 = "Página ~Web..."
82 = "웹 페ì´ì§€(~W)..."
33 = "Page ~Web..."
- 96 = "~Web Page..."
-@@ -1339,7 +1339,7 @@
+ 96 = "~ÕÝÍÉ æíÈ..."
+@@ -1519,7 +1519,7 @@
34 = "Formulario..."
55 = "~Formulário..."
48 = "Fo~rmularz..."
@@ -106,8 +89,8 @@ diff -u -r1.58.24.8 profile.lng
+03 = "F~ormulário..."
82 = "ì–‘ì‹(~R)..."
33 = "Form~ulaire..."
- 96 = "Form..."
-@@ -1520,7 +1520,7 @@
+ 96 = "äã~æÐÌ..."
+@@ -1725,7 +1725,7 @@
01 = "Address Data Source..."
44 = "Address Data Source..."
49 = "Adress-Datenquelle..."
diff --git a/patches/OOO_1_1/i18n-indic-default-fonts.diff b/patches/OOO_1_1/i18n-indic-default-fonts.diff
new file mode 100644
index 000000000..5fb5aabec
--- /dev/null
+++ b/patches/OOO_1_1/i18n-indic-default-fonts.diff
@@ -0,0 +1,110 @@
+--- officecfg/registry/data/org/openoffice/VCL.xcu.indic 2004-10-19 13:56:32.755677016 -0400
++++ officecfg/registry/data/org/openoffice/VCL.xcu 2004-10-19 14:38:10.975889816 -0400
+@@ -383,7 +383,106 @@
+ <value>Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Nimbus Sans L;Helmet;Interface System;Sans Serif</value>
+ </prop>
+ </node>
+-
++ <node oor:name="hi-IN" oor:op="replace">
++ <prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Hindi;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU;Interface User;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Nimbus Sans L;Helmet;Interface System;Sans Serif</value>
++ </prop>
++ <prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Hindi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Hindi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Hindi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Hindi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Hindi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ </node>
++ <node oor:name="bn-IN" oor:op="replace">
++ <prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Bengali;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU;Interface User;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Nimbus Sans L;Helmet;Interface System;Sans Serif</value>
++ </prop>
++ <prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Bengali;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Bengali;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Bengali;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Bengali;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Bengali;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ </node>
++ <node oor:name="gu-IN" oor:op="replace">
++ <prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Gujarati;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU;Interface User;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Nimbus Sans L;Helmet;Interface System;Sans Serif</value>
++ </prop>
++ <prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Gujarati;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Gujarati;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Gujarati;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Gujarati;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Gujarati;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ </node>
++ <node oor:name="pa-IN" oor:op="replace">
++ <prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Punjabi;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU;Interface User;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Nimbus Sans L;Helmet;Interface System;Sans Serif</value>
++ </prop>
++ <prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Punjabi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Punjabi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Punjabi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Punjabi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Punjabi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ </node>
++ <node oor:name="ta-IN" oor:op="replace">
++ <prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Tamil;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU;Interface User;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Nimbus Sans L;Helmet;Interface System;Sans Serif</value>
++ </prop>
++ <prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Tamil;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Tamil;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Tamil;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Tamil;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ <prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string">
++ <value>Lohit Tamil;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
++ </prop>
++ </node>
+ <node oor:name="ar" oor:op="replace">
+ <prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
+ <value>Tahoma;Traditional Arabic;Simplified Arabic;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU;Interface User;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Nimbus Sans L;Helmet;Interface System;Sans Serif</value>
diff --git a/patches/OOO_1_1/i18n-lang-italian-fontooowizard.diff b/patches/OOO_1_1/i18n-lang-italian-fontooowizard.diff
new file mode 100644
index 000000000..b8bc31c61
--- /dev/null
+++ b/patches/OOO_1_1/i18n-lang-italian-fontooowizard.diff
@@ -0,0 +1,11 @@
+--- scp/source/office/profile.lng.ita 2004-09-25 10:54:15.143495568 +0200
++++ scp/source/office/profile.lng 2004-09-25 10:55:01.387437949 +0200
+@@ -1858,7 +1858,7 @@
+ 46 = "FontOOo Wizard..."
+ 45 = "Installer skrifttyper fra internettet..."
+ 49 = "Schriftarten aus dem Internet installieren..."
+-39 = "FontOOo Wizard..."
++39 = "Installa font da Internet..."
+ 35 = "FontOOo Wizard..."
+ 37 = "Instal·la tipus de lletra des d'Internet..."
+ 66 = "FontOOo Wizard..."
diff --git a/patches/OOO_1_1/ms-interoperability-email-attachment-as-xls-ppt.diff b/patches/OOO_1_1/ms-interoperability-email-attachment-as-xls-ppt.diff
new file mode 100644
index 000000000..61620584d
--- /dev/null
+++ b/patches/OOO_1_1/ms-interoperability-email-attachment-as-xls-ppt.diff
@@ -0,0 +1,505 @@
+--- sfx2/source/inc/mailmodel.hxx 2002-08-26 13:30:37.000000000 +0530
++++ sfx2/source/inc/mailmodel.hxx 2004-11-30 17:05:01.000000000 +0530
+@@ -90,6 +90,9 @@
+ enum MailDocType
+ {
+ TYPE_SELF,
++ TYPE_ASMSDOC,
++ TYPE_ASMSEXCEL,
++ TYPE_ASMSPOWERPOINT,
+ TYPE_ASPDF
+ };
+
+@@ -114,7 +117,7 @@
+ void ClearList( AddressList_Impl* pList );
+ void MakeValueList( AddressList_Impl* pList, String& rValueList );
+ SaveResult SaveDocument( String& rFileName, String& rType );
+- SaveResult SaveDocAsPDF( String& rFileName, String& rType );
++ SaveResult SaveDocAs( String& rFileName, String& rType,MailDocType mailDocType );
+
+ DECL_LINK( DoneHdl, void* );
+
+
+--- sfx2/source/dialog/mailmodel.cxx 2004-11-26 21:41:16.000000000 +0530
++++ sfx2/source/dialog/mailmodel.cxx 2004-11-30 17:09:23.000000000 +0530
+@@ -402,7 +402,7 @@
+ return eRet;
+ }
+
+-SfxMailModel_Impl::SaveResult SfxMailModel_Impl::SaveDocAsPDF( String& rFileName, String& rType )
++SfxMailModel_Impl::SaveResult SfxMailModel_Impl::SaveDocAs( String& rFileName, String& rType,MailDocType mailDocType )
+ {
+ SaveResult eRet = SAVE_CANCELLED;
+ SfxViewFrame* pTopViewFrm = mpBindings->GetDispatcher_Impl()->GetFrame()->GetTopViewFrame();
+@@ -422,9 +422,15 @@
+ SfxFactoryFilterContainer* pFilterContainer = xDocShell->GetFactory().GetFilterContainer();
+ if ( pFilterContainer )
+ {
+- String aPDFExtension = String::CreateFromAscii( ".pdf" );
++ String aExtension ;
++ switch (mailDocType){
++ case TYPE_ASPDF : aExtension = String::CreateFromAscii( ".pdf" );break;
++ case TYPE_ASMSDOC : aExtension = String::CreateFromAscii( ".doc" );break;
++ case TYPE_ASMSEXCEL : aExtension = String::CreateFromAscii( ".xls" );break;
++ case TYPE_ASMSPOWERPOINT : aExtension = String::CreateFromAscii( ".ppt" );break;
++ }
+
+- const SfxFilter* pFilter = pFilterContainer->GetFilter4Extension( aPDFExtension, SFX_FILTER_EXPORT );
++ const SfxFilter* pFilter = pFilterContainer->GetFilter4Extension( aExtension, SFX_FILTER_EXPORT );
+ sal_Bool bHasFilter = pFilter ? sal_True : sal_False;
+
+ // create temp file name with leading chars and extension
+@@ -440,7 +446,7 @@
+ String aName;
+ if ( aFileObj.hasExtension() )
+ {
+- pExt = new String( aPDFExtension );
++ pExt = new String( aExtension );
+ aFileObj.removeExtension();
+ aLeadingStr = aFileObj.getName( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET );
+ // aLeadingStr += String::CreateFromAscii( "_" );
+@@ -463,11 +469,25 @@
+ delete pExt;
+
+ rFileName = aTempFile.GetURL();
++ SfxBoolItem aPicklist( SID_PICKLIST, FALSE );
++ SfxBoolItem aSaveTo( SID_SAVETO, TRUE );
++ SfxStringItem* pFilterName = NULL;
++ if ( pFilter && bHasFilter )
++ pFilterName = new SfxStringItem( SID_FILTER_NAME, pFilter->GetFilterName() );
++
++ SfxStringItem* pPassItem = NULL;
++ String aPasswd;
++ if ( GetPasswd_Impl( xDocShell->GetMedium()->GetItemSet(), aPasswd ) )
++ pPassItem = new SfxStringItem( SID_PASSWORD, aPasswd );
+
+ // save document to temp file
+ SfxStringItem aFileName( SID_FILE_NAME, rFileName );
+- const SfxBoolItem *pRet = (const SfxBoolItem*)pDisp->Execute( SID_EXPORTDOCASPDF, SFX_CALLMODE_SYNCHRON, &aFileName, 0L );
+- BOOL bRet = pRet ? pRet->GetValue() : FALSE;
++ const SfxBoolItem *pRet = (const SfxBoolItem*)pDisp->Execute( SID_SAVEASDOC, SFX_CALLMODE_SYNCHRON, &aFileName, &aPicklist, &aSaveTo,
++ pFilterName ? pFilterName : pPassItem,
++ pFilterName ? pPassItem : 0L, 0L );
++
++/* const SfxBoolItem *pRet = (const SfxBoolItem*)pDisp->Execute( SID_EXPORTDOCASPDF, SFX_CALLMODE_SYNCHRON, &aFileName, 0L );
++*/ BOOL bRet = pRet ? pRet->GetValue() : FALSE;
+ eRet = bRet ? SAVE_SUCCESSFULL : SAVE_CANCELLED;
+
+ if ( pFilter )
+@@ -568,11 +590,16 @@
+ String aFileName, aContentType;
+
+ sal_Bool bSuccessfull = sal_False;
+- if ( eMailDocType == TYPE_SELF )
+- eSaveResult = SaveDocument( aFileName, aContentType );
+- else
+- eSaveResult = SaveDocAsPDF( aFileName, aContentType );
+-
++ switch (eMailDocType){
++ case TYPE_ASMSDOC:
++ case TYPE_ASMSPOWERPOINT:
++ case TYPE_ASPDF:
++ case TYPE_ASMSEXCEL:
++ eSaveResult = SaveDocAs( aFileName, aContentType,eMailDocType );
++ break;
++ default:
++ eSaveResult = SaveDocument( aFileName, aContentType);
++ }
+ if ( eSaveResult == SAVE_SUCCESSFULL )
+ {
+ SfxFrame* pViewFrm = mpBindings->GetDispatcher_Impl()->GetFrame()->GetFrame();
+
+--- sfx2/sdi/sfx.sdi 2004-03-30 18:26:27.000000000 +0530
++++ sfx2/sdi/sfx.sdi 2004-11-30 16:36:40.000000000 +0530
+@@ -6982,7 +6982,6 @@
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DOCUMENT;
+ ]
+-
+ //--------------------------------------------------------------------------
+ SfxBoolItem SendMail SID_MAIL_SENDDOC
+ (SfxStringItem Recipient SID_MAIL_RECIPIENT,SfxStringItem Subject SID_MAIL_SUBJECT,SfxStringItem MailText SID_MAIL_TEXT,SfxUInt16Item Priority SID_MAIL_PRIORITY,SfxBoolItem AttachedDoc SID_MAIL_ATTACH,SfxStringItem AttachFiles SID_MAIL_ATTACH_FILE)
+@@ -7010,7 +7009,88 @@
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DOCUMENT;
+ ]
++SfxBoolItem SendMailDocAsMSDoc SID_MAIL_SENDDOCASMSDOC
++(SfxStringItem Recipient SID_MAIL_RECIPIENT,SfxStringItem Subject SID_MAIL_SUBJECT,SfxStringItem MailText SID_MAIL_TEXT,SfxUInt16Item Priority SID_MAIL_PRIORITY,SfxBoolItem AttachedDoc SID_MAIL_ATTACH,SfxStringItem AttachFiles SID_MAIL_ATTACH_FILE)
++[
++ /* flags: */
++ AutoUpdate = FALSE,
++ Cachable = Cachable,
++ FastCall = FALSE,
++ HasCoreId = FALSE,
++ HasDialog = TRUE,
++ ReadOnlyDoc = TRUE,
++ Toggle = FALSE,
++ Container = FALSE,
++ RecordAbsolute = FALSE,
++ RecordPerSet;
++ Asynchron;
++
++ /* status: */
++ SlotType = SfxStringItem
+
++ /* config: */
++ AccelConfig = TRUE,
++ MenuConfig = TRUE,
++ StatusBarConfig = FALSE,
++ ToolBoxConfig = TRUE,
++ GroupId = GID_DOCUMENT;
++]
++//--------------------------------------------------------------------------
++SfxBoolItem SendMailDocAsMSExcel SID_MAIL_SENDDOCASMSEXCEL
++(SfxStringItem Recipient SID_MAIL_RECIPIENT,SfxStringItem Subject SID_MAIL_SUBJECT,SfxStringItem MailText SID_MAIL_TEXT,SfxUInt16Item Priority SID_MAIL_PRIORITY,SfxBoolItem AttachedDoc SID_MAIL_ATTACH,SfxStringItem AttachFiles SID_MAIL_ATTACH_FILE)
++[
++ /* flags: */
++ AutoUpdate = FALSE,
++ Cachable = Cachable,
++ FastCall = FALSE,
++ HasCoreId = FALSE,
++ HasDialog = TRUE,
++ ReadOnlyDoc = TRUE,
++ Toggle = FALSE,
++ Container = FALSE,
++ RecordAbsolute = FALSE,
++ RecordPerSet;
++ Asynchron;
++
++ /* status: */
++ SlotType = SfxStringItem
++
++ /* config: */
++ AccelConfig = TRUE,
++ MenuConfig = TRUE,
++ StatusBarConfig = FALSE,
++ ToolBoxConfig = TRUE,
++ GroupId = GID_DOCUMENT;
++]
++
++//--------------------------------------------------------------------------
++SfxBoolItem SendMailDocAsMSPowerPoint SID_MAIL_SENDDOCASMSPOWERPOINT
++(SfxStringItem Recipient SID_MAIL_RECIPIENT,SfxStringItem Subject SID_MAIL_SUBJECT,SfxStringItem MailText SID_MAIL_TEXT,SfxUInt16Item Priority SID_MAIL_PRIORITY,SfxBoolItem AttachedDoc SID_MAIL_ATTACH,SfxStringItem AttachFiles SID_MAIL_ATTACH_FILE)
++[
++ /* flags: */
++ AutoUpdate = FALSE,
++ Cachable = Cachable,
++ FastCall = FALSE,
++ HasCoreId = FALSE,
++ HasDialog = TRUE,
++ ReadOnlyDoc = TRUE,
++ Toggle = FALSE,
++ Container = FALSE,
++ RecordAbsolute = FALSE,
++ RecordPerSet;
++ Asynchron;
++
++ /* status: */
++ SlotType = SfxStringItem
++
++ /* config: */
++ AccelConfig = TRUE,
++ MenuConfig = TRUE,
++ StatusBarConfig = FALSE,
++ ToolBoxConfig = TRUE,
++ GroupId = GID_DOCUMENT;
++]
++//--------------------------------------------------------------------------
+ SfxBoolItem SendMailDocAsPDF SID_MAIL_SENDDOCASPDF
+ (SfxStringItem Recipient SID_MAIL_RECIPIENT,SfxStringItem Subject SID_MAIL_SUBJECT,SfxStringItem MailText SID_MAIL_TEXT,SfxUInt16Item Priority SID_MAIL_PRIORITY,SfxBoolItem AttachedDoc SID_MAIL_ATTACH,SfxStringItem AttachFiles SID_MAIL_ATTACH_FILE)
+ [
+
+--- sfx2/sdi/sfxslots.src 2004-11-26 21:41:10.000000000 +0530
++++ sfx2/sdi/sfxslots.src 2004-11-30 16:56:29.000000000 +0530
+@@ -4756,6 +4756,24 @@
+ SlotName[ kannada ] = "ದಸà³à²¤à²¾à²µà³‡à²œà²¨à³à²¨à³ ಕಳಿಸà³";
+ SlotName[ galician ] = "Enviar o documento";
+ };
++SfxSlotInfo SID_MAIL_SENDDOCASMSDOC
++{
++ SlotName = "Send document as MS-DOC Attachment";
++ SlotName [ english ] = "Send document as MS-DOC Attachment";
++ SlotName [ english_us ] = "Send document as MS-DOC Attachment";
++};
++SfxSlotInfo SID_MAIL_SENDDOCASMSEXCEL
++{
++ SlotName = "Send document as MS-EXCEL Attachment";
++ SlotName [ english ] = "Send document as MS-EXCEL Attachment";
++ SlotName [ english_us ] = "Send document as MS-EXCEL Attachment";
++};
++SfxSlotInfo SID_MAIL_SENDDOCASMSPOWERPOINT
++{
++ SlotName = "Send document as MS-POWERPOINT Attachment";
++ SlotName [ english ] = "Send document as MS-POWERPOINT Attachment";
++ SlotName [ english_us ] = "Send document as MS-POWERPOINT Attachment";
++};
+ SfxSlotInfo SID_MAIL_SENDDOCASPDF
+ {
+ SlotName = "Dokument als PDF-Anhang versenden";
+
+--- sfx2/inc/sfxsids.hrc 2004-11-26 21:41:02.000000000 +0530
++++ sfx2/inc/sfxsids.hrc 2004-11-30 16:30:43.000000000 +0530
+@@ -147,7 +147,10 @@
+ #define SID_MAIL_OPEN (SID_SFX_START + 329)
+ #define SID_MAIL_NOTIFY (SID_SFX_START + 330)
+ #define SID_MAIL_SENDDOC (SID_SFX_START + 331)
+-#define SID_MAIL_SENDDOCASPDF (SID_SFX_START + 1672)
++#define SID_MAIL_SENDDOCASPDF (SID_SFX_START + 1672)
++#define SID_MAIL_SENDDOCASMSDOC (SID_SFX_START + 1686)
++#define SID_MAIL_SENDDOCASMSEXCEL (SID_SFX_START + 1687)
++#define SID_MAIL_SENDDOCASMSPOWERPOINT (SID_SFX_START + 1688)
+ #define SID_MAIL_INBOX (SID_SFX_START + 332)
+
+ #define SID_MAIL_RECIPIENT (SID_SFX_START + 334)
+@@ -554,7 +557,7 @@
+ #define SID_REPAIRPACKAGE (SID_SFX_START + 1683)
+ #define SID_ADDONHELP (SID_SFX_START + 1684)
+ #define SID_OBJECTSHELL (SID_SFX_START + 1685)
+-#define SID_SFX_free_START (SID_SFX_START + 1686)
++#define SID_SFX_free_START (SID_SFX_START + 1689)
+ #define SID_SFX_free_END (SID_SFX_START + 3999)
+
+ #define SID_OPEN_NEW_VIEW (SID_SFX_START + 520)
+
+--- sfx2/sdi/viwslots.sdi 2002-08-26 13:02:06.000000000 +0530
++++ sfx2/sdi/viwslots.sdi 2004-11-30 22:05:45.000000000 +0530
+@@ -22,6 +22,21 @@
+ ExecMethod = ExecMisc_Impl ;
+ StateMethod = GetState_Impl ;
+ ]
++ SID_MAIL_SENDDOCASMSDOC // ole(no) api(todo)
++ [
++ ExecMethod = ExecMisc_Impl ;
++ StateMethod = GetState_Impl ;
++ ]
++ SID_MAIL_SENDDOCASMSEXCEL // ole(no) api(todo)
++ [
++ ExecMethod = ExecMisc_Impl ;
++ StateMethod = GetState_Impl ;
++ ]
++ SID_MAIL_SENDDOCASMSPOWERPOINT // ole(no) api(todo)
++ [
++ ExecMethod = ExecMisc_Impl ;
++ StateMethod = GetState_Impl ;
++ ]
+ //---------------------------------------------------------------------
+ SID_PRINTDOC // ole(no) api(play/rec)
+ [
+
+--- sfx2/source/view/viewsh.cxx 2003-11-07 15:42:06.000000000 +0530
++++ sfx2/source/view/viewsh.cxx 2004-12-01 17:46:28.075380424 +0530
+@@ -185,6 +185,9 @@
+
+ case SID_MAIL_SENDDOCASPDF:
+ case SID_MAIL_SENDDOC:
++ case SID_MAIL_SENDDOCASMSDOC:
++ case SID_MAIL_SENDDOCASMSEXCEL:
++ case SID_MAIL_SENDDOCASMSPOWERPOINT:
+ if ( SvtInternalOptions().MailUIEnabled() )
+ {
+ GetViewFrame()->SetChildWindow( SID_MAIL_CHILDWIN, TRUE );
+@@ -209,10 +212,18 @@
+ }
+
+ SfxMailModel_Impl::SendMailResult eResult = SfxMailModel_Impl::SEND_MAIL_ERROR;
+- if ( nId == SID_MAIL_SENDDOCASPDF )
+- eResult = aModel.Send( SfxMailModel_Impl::TYPE_ASPDF );
+- else
+- eResult = aModel.Send( SfxMailModel_Impl::TYPE_SELF );
++ switch (nId) {
++ case SID_MAIL_SENDDOCASPDF:
++ eResult = aModel.Send( SfxMailModel_Impl::TYPE_ASPDF );break;
++ case SID_MAIL_SENDDOCASMSDOC:
++ eResult = aModel.Send( SfxMailModel_Impl::TYPE_ASMSDOC );break;
++ case SID_MAIL_SENDDOCASMSEXCEL:
++ eResult = aModel.Send( SfxMailModel_Impl::TYPE_ASMSEXCEL );break;
++ case SID_MAIL_SENDDOCASMSPOWERPOINT:
++ eResult = aModel.Send( SfxMailModel_Impl::TYPE_ASMSPOWERPOINT );break;
++ default:
++ eResult = aModel.Send( SfxMailModel_Impl::TYPE_SELF );
++ }
+
+ if ( eResult == SfxMailModel_Impl::SEND_MAIL_ERROR )
+ {
+@@ -325,6 +336,9 @@
+ // Mail-Funktionen
+ case SID_MAIL_SENDDOCASPDF:
+ case SID_MAIL_SENDDOC:
++ case SID_MAIL_SENDDOCASMSDOC:
++ case SID_MAIL_SENDDOCASMSEXCEL:
++ case SID_MAIL_SENDDOCASMSPOWERPOINT:
+ {
+ BOOL bEnable = !GetViewFrame()->HasChildWindow( SID_MAIL_CHILDWIN );
+ if ( !bEnable )
+@@ -348,6 +362,60 @@
+ rSet.DisableItem( nSID );
+ }
+
++ else if ( nSID == SID_MAIL_SENDDOCASMSDOC )
++ {
++ SfxObjectShellRef xDocShell = GetViewFrame()->GetObjectShell();
++ if ( xDocShell.Is() )
++ {
++ // Get PDF Filter from container
++ SfxFactoryFilterContainer* pFilterContainer = xDocShell->GetFactory().GetFilterContainer();
++ if ( pFilterContainer )
++ {
++ String aPDFExtension = String::CreateFromAscii( ".doc" );
++ const SfxFilter* pFilter = pFilterContainer->GetFilter4Extension( aPDFExtension, SFX_FILTER_EXPORT );
++ if ( pFilter != NULL )
++ break;
++ }
++ }
++
++ rSet.DisableItem( nSID );
++ }
++ else if ( nSID == SID_MAIL_SENDDOCASMSEXCEL )
++ {
++ SfxObjectShellRef xDocShell = GetViewFrame()->GetObjectShell();
++ if ( xDocShell.Is() )
++ {
++ // Get PDF Filter from container
++ SfxFactoryFilterContainer* pFilterContainer = xDocShell->GetFactory().GetFilterContainer();
++ if ( pFilterContainer )
++ {
++ String aPDFExtension = String::CreateFromAscii( ".xls" );
++ const SfxFilter* pFilter = pFilterContainer->GetFilter4Extension( aPDFExtension, SFX_FILTER_EXPORT );
++ if ( pFilter != NULL )
++ break;
++ }
++ }
++
++ rSet.DisableItem( nSID );
++ }
++ else if ( nSID == SID_MAIL_SENDDOCASMSPOWERPOINT )
++ {
++ SfxObjectShellRef xDocShell = GetViewFrame()->GetObjectShell();
++ if ( xDocShell.Is() )
++ {
++ // Get PDF Filter from container
++ SfxFactoryFilterContainer* pFilterContainer = xDocShell->GetFactory().GetFilterContainer();
++ if ( pFilterContainer )
++ {
++ String aPDFExtension = String::CreateFromAscii( ".ppt" );
++ const SfxFilter* pFilter = pFilterContainer->GetFilter4Extension( aPDFExtension, SFX_FILTER_EXPORT );
++ if ( pFilter != NULL )
++ break;
++ }
++ }
++
++ rSet.DisableItem( nSID );
++ }
+ break;
+ }
+
+
+--- svx/inc/globlmn.hrc 2004-11-26 21:40:58.000000000 +0530
++++ svx/inc/globlmn.hrc 2004-12-01 17:33:01.865942888 +0530
+@@ -3251,6 +3251,30 @@
+ Text[ kannada ] = "ಸà³à²µà²¯à²‚ಚಾಲಿತ ಅಂಚೆ"; \
+ Text[ galician ] = "~Correo automático"; \
+
++#define ITEM_FILE_MAIL_SENDDOCASMSDOC \
++ Identifier = SID_MAIL_SENDDOCASMSDOC ; \
++ Command = ".uno:SendMailDocAsMSDoc" ; \
++ HelpID = SID_MAIL_SENDDOCASMSDOC ; \
++ Text = "Dokument als E-~Mail..." ; \
++ Text [ english ] = "Document as MS-~Doc Attachment..." ; \
++ Text [ english_us ] = "Document as MS-~Doc Attachment..." ; \
++
++#define ITEM_FILE_MAIL_SENDDOCASMSEXCEL \
++ Identifier = SID_MAIL_SENDDOCASMSEXCEL ; \
++ Command = ".uno:SendMailDocAsMSExcel" ; \
++ HelpID = SID_MAIL_SENDDOCASMSEXCEL ; \
++ Text = "Dokument als ~E-Mail..." ; \
++ Text [ english ] = "Document as MS-~Excel Attachment..." ; \
++ Text [ english_us ] = "Document as MS-~Excel Attachment..." ; \
++
++#define ITEM_FILE_MAIL_SENDDOCASMSPOWERPOINT \
++ Identifier = SID_MAIL_SENDDOCASMSPOWERPOINT ; \
++ Command = ".uno:SendMailDocAsMSPowerPoint" ; \
++ HelpID = SID_MAIL_SENDDOCASMSPOWERPOINT ; \
++ Text = "Dokument als E-Mail..." ; \
++ Text [ english ] = "Document as MS-~PPT Attachment..." ; \
++ Text [ english_us ] = "Document as MS-~PPT Attachment..." ; \
++
+ #define ITEM_FILE_MAIL_SENDDOC \
+ Identifier = SID_MAIL_SENDDOC ; \
+ Command = ".uno:SendMail" ; \
+
+--- sw/sdi/wviewsh.sdi 2003-03-27 21:09:12.000000000 +0530
++++ sw/sdi/wviewsh.sdi 2004-11-29 20:58:45.000000000 +0530
+@@ -223,6 +223,11 @@
+ [
+ StateMethod = GetState ;
+ ]
++ SID_MAIL_SENDDOCASMSDOC
++ [
++ ExecMethod = Execute ;
++ StateMethod = GetState ;
++ ]
+ }
+
+ shell SwSrcView : SfxViewShell
+
+--- sw/source/ui/inc/swmn.hrc 2004-11-26 21:41:10.000000000 +0530
++++ sw/source/ui/inc/swmn.hrc 2004-11-29 21:04:08.000000000 +0530
+@@ -5121,6 +5121,10 @@
+ {
+ ITEM_FILE_MAIL_SENDDOCASPDF
+ };
++ MenuItem
++ {
++ ITEM_FILE_MAIL_SENDDOCASMSDOC
++ };
+ };
+ };
+ Text[ english_us ] = "Send";
+@@ -5182,6 +5186,11 @@
+ {
+ ITEM_FILE_MAIL_SENDDOCASPDF
+ };
++ MenuItem
++ {
++ ITEM_FILE_MAIL_SENDDOCASMSDOC
++ };
++
+ SEPARATOR ;
+ MenuItem
+ {
+
+--- /home/mjayant/OOO_113_backup/ooo-build/build/OOO_1_1_3/sd/source/ui/app/menuids2.src 2004-11-26 21:41:10.000000000 +0530
++++ sd/source/ui/app/menuids2.src 2004-11-30 21:47:12.000000000 +0530
+@@ -249,6 +249,7 @@
+ {\
+ MI ( ITEM_FILE_MAIL_SENDDOC ) \
+ MI ( ITEM_FILE_MAIL_SENDDOCASPDF ) \
++ MI ( ITEM_FILE_MAIL_SENDDOCASMSPOWERPOINT ) \
+ };\
+ };\
+ Text [ portuguese_brazilian ] = "~Enviar" ; \
+
+--- sc/source/ui/src/menue.src 2004-11-26 21:41:10.000000000 +0530
++++ sc/source/ui/src/menue.src 2004-12-01 18:05:15.435995560 +0530
+@@ -342,6 +342,10 @@
+ {
+ ITEM_FILE_MAIL_SENDDOCASPDF
+ };
++ MenuItem
++ {
++ ITEM_FILE_MAIL_SENDDOCASMSEXCEL
++ };
+ };
+ };
+ Text [ portuguese ] = "~Enviar" ;
+@@ -6397,6 +6401,10 @@
+ {
+ ITEM_FILE_MAIL_SENDDOCASPDF
+ };
++ MenuItem
++ {
++ ITEM_FILE_MAIL_SENDDOCASMSEXCEL
++ };
+ };
+ };
+ Text [ portuguese ] = "~Enviar" ;
diff --git a/patches/OOO_1_1/native-fpicker-not-default.diff b/patches/OOO_1_1/native-fpicker-not-default.diff
new file mode 100644
index 000000000..26de5a2de
--- /dev/null
+++ b/patches/OOO_1_1/native-fpicker-not-default.diff
@@ -0,0 +1,17 @@
+Index: Common.xcu
+===================================================================
+RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/Common.xcu,v
+retrieving revision 1.13.34.2
+diff -u -r1.13.34.2 Common.xcu
+--- officecfg/registry/data/org/openoffice/Office/Common.xcu 6 Jul 2004 10:50:06 -0000 1.13.34.2
++++ officecfg/registry/data/org/openoffice/Office/Common.xcu 21 Dec 2004 15:40:02 -0000
+@@ -437,4 +437,9 @@
+ </node>
+ </node>
+ </node>
++ <node oor:name="Misc">
++ <prop oor:name="UseSystemFileDialog" oor:type="xs:boolean">
++ <value>false</value>
++ </prop>
++ </node>
+ </oor:component-data>
diff --git a/patches/OOO_1_1/no-sans-serif-default.diff b/patches/OOO_1_1/no-sans-serif-default.diff
new file mode 100644
index 000000000..334697810
--- /dev/null
+++ b/patches/OOO_1_1/no-sans-serif-default.diff
@@ -0,0 +1,266 @@
+--- officecfg/registry/data/org/openoffice/VCL.xcu.u 2005-03-11 03:11:32.451045000 +0100
++++ officecfg/registry/data/org/openoffice/VCL.xcu 2005-03-11 03:15:19.264564608 +0100
+@@ -71,13 +71,13 @@
+ <node oor:name="DefaultFonts">
+ <node oor:name="en" oor:op="replace">
+ <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Bitstream Vera Sans</value>
++ <value>Albany;Arial;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Bitstream Vera Sans;SansSerif</value>
+ </prop>
+ <prop oor:name="CJK_DISPLAY" oor:type="xs:string" oor:op="replace">
+ <value>Andale Sans UI;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS PGothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
+ </prop>
+ <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Bitstream Vera Sans</value>
++ <value>Albany;Arial;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Bitstream Vera Sans;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
+ <value>Cumberland;Courier New;Bitstream Vera Sans Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced;Luxi Mono</value>
+@@ -86,7 +86,7 @@
+ <value>Thorndale;Times New Roman;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif;Nimbus Roman No9 L;Luxi Serif</value>
+ </prop>
+ <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Bitstream Vera Sans</value>
++ <value>Albany;Arial;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Bitstream Vera Sans;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif;Luxi Serif;Nimbus Roman No9 L</value>
+@@ -116,7 +116,7 @@
+ <value>Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
+ </prop>
+ <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Bitstream Vera Sans</value>
++ <value>Albany;Arial;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Bitstream Vera Sans;SansSerif</value>
+ </prop>
+ <prop oor:name="SANS_UNICODE" oor:type="xs:string" oor:op="replace">
+ <value>Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif;Luxi Sans</value>
+@@ -140,10 +140,10 @@
+
+ <node oor:name="cs-CZ" oor:op="replace">
+ <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
+ <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
+@@ -152,13 +152,13 @@
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+ </prop>
+ <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+ </prop>
+ <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+@@ -175,10 +175,10 @@
+ </node>
+ <node oor:name="hr-HR" oor:op="replace">
+ <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
+ <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
+@@ -187,13 +187,13 @@
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+ </prop>
+ <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+ </prop>
+ <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+@@ -210,10 +210,10 @@
+ </node>
+ <node oor:name="hu-HU" oor:op="replace">
+ <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
+ <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
+@@ -222,13 +222,13 @@
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+ </prop>
+ <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+ </prop>
+ <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+@@ -245,10 +245,10 @@
+ </node>
+ <node oor:name="pl-PL" oor:op="replace">
+ <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
+ <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
+@@ -257,13 +257,13 @@
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+ </prop>
+ <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+ </prop>
+ <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+@@ -280,10 +280,10 @@
+ </node>
+ <node oor:name="ro-RO" oor:op="replace">
+ <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
+ <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
+@@ -292,13 +292,13 @@
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+ </prop>
+ <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+ </prop>
+ <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+@@ -315,10 +315,10 @@
+ </node>
+ <node oor:name="sk-SK" oor:op="replace">
+ <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
+ <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
+@@ -327,13 +327,13 @@
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+ </prop>
+ <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+ </prop>
+ <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+@@ -350,10 +350,10 @@
+ </node>
+ <node oor:name="sl-SI" oor:op="replace">
+ <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
+ <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
+@@ -362,13 +362,13 @@
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+ </prop>
+ <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+ </prop>
+ <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
+- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
+@@ -599,22 +599,22 @@
+ <value>ì¬êµ´ë¦¼;SunGulim;Cumberland;Courier New;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
+ </prop>
+ <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
+- <value>ì¬ë‹ì›€;SunDotum;ì¬êµ´ë¦¼;SunGulim;Gulim;Roundgothic;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>ì¬ë‹ì›€;SunDotum;ì¬êµ´ë¦¼;SunGulim;Gulim;Roundgothic;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
+- <value>ì¬ë°”탕;SunBatang;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Gulim;Roundgothic;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>ì¬ë°”탕;SunBatang;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Gulim;Roundgothic;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace">
+ <value>ì¬êµ´ë¦¼;SunGulim;Batang;Myeongjo;Gulim;Roundgothic;Thorndale;Times New Roman;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
+ </prop>
+ <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
+- <value>ì¬ë‹ì›€;SunDotum;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Gulim;Roundgothic;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>ì¬ë‹ì›€;SunDotum;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Gulim;Roundgothic;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
+ <value>ì¬ë°”탕;SunBatang;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Gulim;Roundgothic;Thorndale;Times New Roman;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
+ </prop>
+ <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
+- <value>ì¬ë‹ì›€;SunDotum;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Gulim;Roundgothic;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>ì¬ë‹ì›€;SunDotum;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Gulim;Roundgothic;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
+ </prop>
+ <prop oor:name="SANS_UNICODE" oor:type="xs:string" oor:op="replace">
+ <value>ì¬êµ´ë¦¼;SunGulim;Gulim;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif</value>
diff --git a/patches/OOO_1_1/no-splash-takeover.patch b/patches/OOO_1_1/no-splash-takeover.patch
index 632e24458..167e44bd6 100644
--- a/patches/OOO_1_1/no-splash-takeover.patch
+++ b/patches/OOO_1_1/no-splash-takeover.patch
@@ -1,6 +1,6 @@
---- vcl/source/window/introwin.cxx.nosplashontop 2003-11-17 17:52:25.000000000 -0500
-+++ vcl/source/window/introwin.cxx 2003-11-17 17:52:36.000000000 -0500
-@@ -126,10 +126,10 @@
+--- vcl/source/window/introwin.cxx
++++ vcl/source/window/introwin.cxx
+@@ -114,10 +120,11 @@ void IntroWindow::ImplInitData()
// -----------------------------------------------------------------------
IntroWindow::IntroWindow( ) :
@@ -10,6 +10,7 @@
ImplInitData();
- WorkWindow::ImplInit( 0, WB_INTROWIN, NULL );
+ WorkWindow::ImplInit( 0, WB_NOBORDER, NULL );
++ SetText(XubString(RTL_CONSTASCII_USTRINGPARAM("OpenOffice.org...")));
}
// -----------------------------------------------------------------------
diff --git a/patches/OOO_1_1/novell-japanese-fonts.diff b/patches/OOO_1_1/novell-japanese-fonts.diff
index 870f8103b..1d41ce06e 100644
--- a/patches/OOO_1_1/novell-japanese-fonts.diff
+++ b/patches/OOO_1_1/novell-japanese-fonts.diff
@@ -1,6 +1,6 @@
---- officecfg/registry/data/org/openoffice/VCL.xcu.orig 2004-09-23 17:24:21.660322994 +0200
-+++ officecfg/registry/data/org/openoffice/VCL.xcu 2004-09-23 17:33:21.481583768 +0200
-@@ -452,25 +452,25 @@
+--- officecfg/registry/data/org/openoffice/VCL.xcu 2005-01-18 13:36:29.538302380 -0800
++++ officecfg/registry/data/org/openoffice/VCL.xcu 2005-01-18 13:39:04.100290571 -0800
+@@ -457,25 +457,25 @@
</node>
<node oor:name="ja-jp" oor:op="replace">
<prop oor:name="CJK_HEADING" oor:type="xs:string" oor:op="replace">
@@ -13,11 +13,11 @@
</prop>
<prop oor:name="CJK_SPREADSHEET" oor:type="xs:string" oor:op="replace">
- <value>Andale Sans UI;MS P ゴシック;TLPゴシック;LXゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;kochigothic;Gothic;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS PGothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Andale Sans UI;MS P ゴシック;HGPGothicB;TLPゴシック;LXゴシック;IPAPGothic;Sazanami Gothic;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;kochigothic;Gothic;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS PGothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
++ <value>Andale Sans UI;MS P ゴシック;HGPGothicB;TLPゴシック;LXゴシック;IPAPGothic;Sazanami Gothic;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;kochigothic;Gothic;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS PGothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
</prop>
<prop oor:name="CJK_TEXT" oor:type="xs:string" oor:op="replace">
- <value>HG Mincho Light J;MS P 明æœ;TLP明æœ;LX明æœ;æ±é¢¨æ˜Žæœ;Kochi Mincho;Mincho;Thorndale;Times New Roman;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
-+ <value>HG Mincho Light J;MS P 明æœ;HGPMinchoL;TLP明æœ;LX明æœ;IPAPMincho;Sazanami Mincho;æ±é¢¨æ˜Žæœ;Kochi Mincho;Mincho;Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
++ <value>HG Mincho Light J;MS P 明æœ;HGPMinchoL;TLP明æœ;LX明æœ;IPAPMincho;Sazanami Mincho;æ±é¢¨æ˜Žæœ;Kochi Mincho;Mincho;Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
</prop>
<prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace">
- <value>HG Mincho Light J;MS P ゴシック;TLPゴシック;LXゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;kochigothic;Gothic;Cumberland;Courier New;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
@@ -29,16 +29,7 @@
</prop>
<prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace">
- <value>Andale Sans UI;HG Mincho Light J;MS UI Gothic;TLPゴシック;LXゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;kochigothic;Gothic;gnu-unifont</value>
-+ <value>Andale Sans UI;HG Mincho Light J;MS UI Gothic;HGPGothicB;TLPゴシック;LXゴシック;IPAUIGothic;Sazanami Gothic;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;kochigothic;Gothic;gnu-unifont</value>
++ <value>方正宋体;Andale Sans UI;ZYSong18030;AR PL SungtiL GB;AR PL KaitiM GB;SimSun;Arial Unicode MS;Fangsong;Hei;Song;Kai;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
</prop>
<prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
<value>HG Mincho Light J;Cumberland;Courier New;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
-@@ -502,7 +502,7 @@
- <value>方正宋体;MSung Light SC;Cumberland;Courier New;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
- </prop>
- <prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace">
-- <value>Andale Sans UI;ZYSong18030;AR PL SungtiL GB;AR PL KaitiM GB;SimSun;Arial Unicode MS;Fangsong;Hei;Song;Kai;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
-+ <value>方正宋体;Andale Sans UI;ZYSong18030;AR PL SungtiL GB;AR PL KaitiM GB;SimSun;Arial Unicode MS;Fangsong;Hei;Song;Kai;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
- </prop>
- </node>
- <node oor:name="zh-tw" oor:op="replace">
diff --git a/patches/OOO_1_1/rpath-origin-python.diff b/patches/OOO_1_1/rpath-origin-python.diff
new file mode 100644
index 000000000..e79069f21
--- /dev/null
+++ b/patches/OOO_1_1/rpath-origin-python.diff
@@ -0,0 +1,16 @@
+--- python/makefile.mk
++++ python/makefile.mk
+@@ -200,9 +200,13 @@ $(PYTHONCORESHL) : makefile.mk $(PACKAGE
+ .IF "$(OS)" == "MACOSX"
+ cp $(MISC)$/build$/$(TARFILE_NAME)$/$(DLLPRE)python$(PYMAJOR).$(PYMINOR)$(DLLPOST) $(OUT)$/lib
+ .ELSE
++.IF "$(OS)" == "LINUX"
++ ld -shared -o $@ -rpath \''$$ORIGIN'\' --whole-archive $(MISC)$/build$/$(TARFILE_NAME)$/libpython$(PYMAJOR).$(PYMINOR).a --no-whole-archive -soname libpython.so.$(PYMAJOR) -lm -ldl -lutil -lc -lpthread
++.ELSE
+ echo "$(OS)"
+ ld -shared -o $@ --whole-archive $(MISC)$/build$/$(TARFILE_NAME)$/libpython$(PYMAJOR).$(PYMINOR).a --no-whole-archive -soname libpython.so.$(PYMAJOR) -lm -ldl -lutil -lc -lpthread
+ .ENDIF # MACOSX
++.ENDIF # LINUX
+ .ENDIF # IRIX
+ .ENDIF # NETBSD
+ .ENDIF # FREEBSD
diff --git a/patches/OOO_1_1/sc-autofilter-empty-nonempty.diff b/patches/OOO_1_1/sc-autofilter-empty-nonempty.diff
new file mode 100644
index 000000000..564dd650a
--- /dev/null
+++ b/patches/OOO_1_1/sc-autofilter-empty-nonempty.diff
@@ -0,0 +1,42 @@
+--- /home/sragavan/cvs/bk/ooo-build/build/OOO_1_1_2/sc/source/ui/view/gridwin.cxx 2003-06-02 12:58:42.000000000 +0530
++++ sc/source/ui/view/gridwin.cxx 2004-10-11 11:22:24.000000000 +0530
+@@ -159,6 +159,8 @@
+ #define SC_AUTOFILTER_ALL 0
+ #define SC_AUTOFILTER_CUSTOM 1
+ #define SC_AUTOFILTER_TOP10 2
++#define SC_AUTOFILTER_EMPTY 3
++#define SC_AUTOFILTER_NOTEMPTY 4
+
+ // Modi fuer die FilterListBox
+ enum ScFilterBoxMode
+@@ -711,7 +713,7 @@
+ long nMaxText = 0;
+
+ // default entries
+- static const USHORT nDefIDs[] = { SCSTR_ALL, SCSTR_STDFILTER, SCSTR_TOP10FILTER };
++ static const USHORT nDefIDs[] = { SCSTR_ALL, SCSTR_STDFILTER, SCSTR_TOP10FILTER, SCSTR_EMPTY, SCSTR_NOTEMPTY };
+ const USHORT nDefCount = sizeof(nDefIDs) / sizeof(USHORT);
+ for (i=0; i<nDefCount; i++)
+ {
+@@ -1087,6 +1089,21 @@
+ rNewEntry.eOp = SC_TOPVAL;
+ *rNewEntry.pStr = String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("10"));
+ }
++ else if (nSel == SC_AUTOFILTER_EMPTY)
++ {
++ rNewEntry.pStr->Erase();
++ rNewEntry.bQueryByString = FALSE;
++ rNewEntry.eOp = SC_EQUAL;
++ rNewEntry.nVal = SC_EMPTYFIELDS;
++
++ }
++ else if (nSel == SC_AUTOFILTER_NOTEMPTY)
++ {
++ rNewEntry.pStr->Erase();
++ rNewEntry.bQueryByString = FALSE;
++ rNewEntry.eOp = SC_EQUAL;
++ rNewEntry.nVal = SC_NONEMPTYFIELDS;
++ }
+ else
+ {
+ rNewEntry.eOp = SC_EQUAL;
diff --git a/patches/OOO_1_1/sc-datapilot-autoformat.diff b/patches/OOO_1_1/sc-datapilot-autoformat.diff
new file mode 100644
index 000000000..d5d229b69
--- /dev/null
+++ b/patches/OOO_1_1/sc-datapilot-autoformat.diff
@@ -0,0 +1,406 @@
+diff -u -r ../OOO_1_1_3_bak/sc/idl/pivotsh.idl sc/idl/pivotsh.idl
+--- ../OOO_1_1_3_bak/sc/idl/pivotsh.idl 2004-10-20 10:04:47.000000000 +0530
++++ sc/idl/pivotsh.idl 2004-11-17 10:31:29.000000000 +0530
+@@ -64,6 +64,7 @@
+
+ SID_PIVOT_RECALC [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
+ SID_PIVOT_KILL [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
++ SID_PIVOT_AFMT [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
+ }
+
+ shell ScPivotShell
+diff -u -r ../OOO_1_1_3_bak/sc/idl/scalc.idl sc/idl/scalc.idl
+--- ../OOO_1_1_3_bak/sc/idl/scalc.idl 2004-10-20 10:04:47.000000000 +0530
++++ sc/idl/scalc.idl 2004-11-17 11:26:06.000000000 +0530
+@@ -326,6 +326,63 @@
+ ]
+
+ //--------------------------------------------------------------------------
++SfxVoidItem AutoFormatPivotTable SID_PIVOT_AFMT
++( )
++[
++// ### ACHTUNG: Neuer ConfigName in Resource? "Datenpilottabelle l<94>schen" : "Datenpilottabelle löschen"
++ ConfigName = "Datenpilottabelle l<94>schen" ;
++// ### ACHTUNG: Neuer Helptext in Resource? "Datenpilottabelle l<94>schen" : "Datenpilottabelle löschen"
++ HelpText = "Datenpilottabelle l<94>schen" ;
++
++ /* flags: */
++ AutoUpdate = FALSE ,
++ Cachable = Cachable ,
++ FastCall = FALSE ,
++ HasCoreId = FALSE ,
++ HasDialog = FALSE ,
++ ReadOnlyDoc = TRUE ,
++ Toggle = FALSE ,
++ Synchron ;
++
++ /* plugin: */
++ Container = FALSE ,
++ PlugComm = FALSE ,
++
++ /* api: */
++ Export = TRUE ,
++ IsCollection = FALSE ,
++ RecordAbsolute = FALSE ,
++ RecordPerSet ;
++
++ /* config: */
++ AccelConfig = FALSE ,
++ MenuConfig = TRUE ,
++ StatusBarConfig = FALSE ,
++ ToolBoxConfig = FALSE ,
++ GroupId = GID_DATA ;
++ //idlpp ConfigName [ english_us ] = "Delete DataPilot Table" ;
++ //idlpp HelpText [ english_us ] = "Delete DataPilot table" ;
++ //idlpp ConfigName [ portuguese ] = "Eliminar tabela do Piloto de dados" ;
++ //idlpp HelpText [ portuguese ] = "Elimina a tabela do Piloto de dados" ;
++ //idlpp ConfigName [ dutch ] = "Datapiloottabel wissen" ;
++ //idlpp HelpText [ dutch ] = "Datapiloottabel wissen" ;
++ //idlpp ConfigName [ french ] = "Supprimer tableau analytique du DataPilote" ;
++ //idlpp HelpText [ french ] = "Supprime le tableau analytique du DataPilote" ;
++ //idlpp ConfigName [ spanish ] = "Eliminar tabla del Piloto de datos" ;
++ //idlpp HelpText [ spanish ] = "Eliminar la tabla del piloto de datos" ;
++ //idlpp ConfigName [ italian ] = "Elimina tabella DataPilot" ;
++ //idlpp HelpText [ italian ] = "Datenpilottabelle löschen" ;
++ //idlpp ConfigName [ danish ] = "DeletePivotTable" ;
++ //idlpp HelpText [ danish ] = "Datenpilottabelle löschen" ;
++ //idlpp ConfigName [ swedish ] = "Ta bort datapilottabell" ;
++ //idlpp HelpText [ swedish ] = "Ta bort datapilottabell" ;
++ //idlpp ConfigName [ portuguese_brazilian ] = "DeletePivotTable" ;
++ //idlpp HelpText [ portuguese_brazilian ] = "Datenpilottabelle löschen" ;
++]
++
++
++
++ //--------------------------------------------------------------------------
+ SfxVoidItem DefineDBName SID_DEFINE_DBNAME
+ ( )
+ [
+diff -u -r ../OOO_1_1_3_bak/sc/inc/dpobject.hxx sc/inc/dpobject.hxx
+--- ../OOO_1_1_3_bak/sc/inc/dpobject.hxx 2004-10-20 10:04:48.000000000 +0530
++++ sc/inc/dpobject.hxx 2004-11-17 16:07:35.669577984 +0530
+@@ -131,7 +131,7 @@
+ ScDPOutput* pOutput;
+ BOOL bSettingsChanged;
+ BOOL bAlive; // FALSE if only used to hold settings
+-
++ USHORT nAutoFormatIndex;
+
+ void CreateObjects();
+ void CreateOutput();
+@@ -157,6 +157,9 @@
+ void SetOutRange(const ScRange& rRange);
+ const ScRange& GetOutRange() const { return aOutRange; }
+
++ void SetAutoFormatIndex (const USHORT nIndex);
++ const USHORT GetAutoFormatIndex () { if (this == NULL) return 65535; else return nAutoFormatIndex; }
++
+ void SetSheetDesc(const ScSheetSourceDesc& rDesc);
+ void SetImportDesc(const ScImportSourceDesc& rDesc);
+ void SetServiceData(const ScDPServiceDesc& rDesc);
+diff -u -r ../OOO_1_1_3_bak/sc/inc/sc.hrc sc/inc/sc.hrc
+--- ../OOO_1_1_3_bak/sc/inc/sc.hrc 2004-10-20 10:04:48.000000000 +0530
++++ sc/inc/sc.hrc 2004-11-17 14:08:31.000000000 +0530
+@@ -1575,6 +1575,7 @@
+
+ #define RID_SCDLG_LINKAREA (SC_DIALOGS_START + 132)
+
++#define SID_PIVOT_AFMT (SC_DIALOGS_START + 133)
+ #define SC_DIALOGS_END (SC_DIALOGS_START + 150)
+
+ #ifndef STD_MASKCOLOR
+diff -u -r ../OOO_1_1_3_bak/sc/sdi/pivotsh.sdi sc/sdi/pivotsh.sdi
+--- ../OOO_1_1_3_bak/sc/sdi/pivotsh.sdi 2004-10-20 10:04:54.000000000 +0530
++++ sc/sdi/pivotsh.sdi 2004-11-17 14:55:13.000000000 +0530
+@@ -5,6 +5,7 @@
+ SID_PIVOT_RECALC [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
+ SID_PIVOT_KILL [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
+ SID_DP_FILTER [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
++ SID_PIVOT_AFMT [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
+ }
+
+ shell ScPivotShell
+diff -u -r ../OOO_1_1_3_bak/sc/sdi/scalc.sdi sc/sdi/scalc.sdi
+--- ../OOO_1_1_3_bak/sc/sdi/scalc.sdi 2004-10-20 10:04:54.000000000 +0530
++++ sc/sdi/scalc.sdi 2004-11-17 14:59:48.000000000 +0530
+@@ -1846,6 +1846,31 @@
+ GroupId = GID_DATA;
+ ]
+
++SfxVoidItem AutoFormatPivotTable SID_PIVOT_AFMT
++()
++[
++ /* flags: */
++ AutoUpdate = FALSE,
++ Cachable = Cachable,
++ FastCall = FALSE,
++ HasCoreId = FALSE,
++ HasDialog = FALSE,
++ ReadOnlyDoc = TRUE,
++ Toggle = FALSE,
++ Container = FALSE,
++ RecordAbsolute = FALSE,
++ RecordPerSet;
++ Synchron;
++
++ /* config: */
++ AccelConfig = FALSE,
++ MenuConfig = TRUE,
++ StatusBarConfig = FALSE,
++ ToolBoxConfig = FALSE,
++ GroupId = GID_DATA;
++]
++
++
+ //--------------------------------------------------------------------------
+ SfxVoidItem DeletePrintArea SID_DELETE_PRINTAREA
+ ()
+diff -u -r ../OOO_1_1_3_bak/sc/source/core/data/dpobject.cxx sc/source/core/data/dpobject.cxx
+--- ../OOO_1_1_3_bak/sc/source/core/data/dpobject.cxx 2004-10-20 10:05:04.000000000 +0530
++++ sc/source/core/data/dpobject.cxx 2004-10-28 14:59:46.000000000 +0530
+@@ -171,6 +171,7 @@
+ pImpDesc( NULL ),
+ pServDesc( NULL ),
+ pOutput( NULL ),
++ nAutoFormatIndex(65535),
+ bSettingsChanged( FALSE )
+ {
+ }
+@@ -182,6 +183,7 @@
+ aTableName( r.aTableName ),
+ aTableTag( r.aTableTag ),
+ aOutRange( r.aOutRange ),
++ nAutoFormatIndex(r.nAutoFormatIndex),
+ pSheetDesc( NULL ),
+ pImpDesc( NULL ),
+ pServDesc( NULL ),
+@@ -226,6 +228,11 @@
+ InvalidateData(); // re-init source from SaveData
+ }
+
++void ScDPObject::SetAutoFormatIndex(const USHORT nIndex)
++{
++ nAutoFormatIndex = nIndex;
++}
++
+ void ScDPObject::SetOutRange(const ScRange& rRange)
+ {
+ aOutRange = rRange;
+diff -u -r ../OOO_1_1_3_bak/sc/source/ui/docshell/dbdocfun.cxx sc/source/ui/docshell/dbdocfun.cxx
+--- ../OOO_1_1_3_bak/sc/source/ui/docshell/dbdocfun.cxx 2004-10-20 10:05:03.000000000 +0530
++++ sc/source/ui/docshell/dbdocfun.cxx 2004-10-29 09:10:47.000000000 +0530
+@@ -1357,6 +1357,37 @@
+ delete pNewUndoDoc;
+ delete pUndoDPObj;
+
++ if (const_cast<ScDPObject *>(pNewObj)->GetAutoFormatIndex() != 65535)
++ {
++ ScViewData* pViewData = rDocShell.GetViewData();
++ ScDocument* pDoc = pViewData->GetDocument();
++ rDocShell.GetViewData()->GetViewShell()->GetDBData( TRUE, SC_DB_OLD );
++ const ScMarkData& rMark1 = pViewData->GetMarkData();
++ USHORT nStartCol;
++ USHORT nStartRow;
++ USHORT nStartTab;
++ USHORT nEndCol;
++ USHORT nEndRow;
++ USHORT nEndTab;
++
++ rDocShell.GetViewData()->GetSimpleArea( nStartCol,nStartRow,nStartTab,
++ nEndCol,nEndRow,nEndTab );
++ ScRange Outrange = pNewObj->GetOutRange();
++ if (( (Outrange.aStart.Col() <= nStartCol) && (nStartCol <= Outrange.aEnd.Col() )&& (nStartTab == Outrange.aStart.Tab()))
++ && ( (Outrange.aStart.Row() <= nStartRow) && (nStartRow <= Outrange.aEnd.Row() )) )
++ {
++
++ if ( !rMark1.IsMarked() && !rMark1.IsMultiMarked() )
++ rDocShell.GetViewData()->GetViewShell()->MarkDataArea( TRUE );
++ //FIXME: Autoformat even when clicked from a non-dp cell.
++ pViewData->MoveNextRow();
++ rDocShell.GetViewData()->GetViewShell()->AutoFormat( const_cast<ScDPObject *>(pNewObj)->GetAutoFormatIndex());
++ rDocShell.GetViewData()->GetViewShell()->AutoFormatPivotTable( const_cast<ScDPObject *>(pNewObj), const_cast<ScDPObject *>(pNewObj)->GetAutoFormatIndex() );
++ pViewData->MovePrevRow();
++ }
++ }
++
++
+ if (bDone)
+ aModificator.SetDocumentModified();
+
+diff -u -r ../OOO_1_1_3_bak/sc/source/ui/inc/dbfunc.hxx sc/source/ui/inc/dbfunc.hxx
+--- ../OOO_1_1_3_bak/sc/source/ui/inc/dbfunc.hxx 2004-10-20 10:04:56.000000000 +0530
++++ sc/source/ui/inc/dbfunc.hxx 2004-10-28 15:27:28.000000000 +0530
+@@ -112,7 +112,9 @@
+ const ScDPObject& rSource, BOOL bApi = FALSE );
+ void DeletePivotTable();
+ void RecalcPivotTable();
+-
++ void AutoFormatPivotTable(USHORT nIndex);
++ void AutoFormatPivotTable(ScDPObject* pDPObj, USHORT nIndex);
++
+ void MakeOutline( BOOL bColumns, BOOL bRecord = TRUE );
+ void RemoveOutline( BOOL bColumns, BOOL bRecord = TRUE );
+ void RemoveAllOutlines( BOOL bRecord = TRUE );
+diff -u -r ../OOO_1_1_3_bak/sc/source/ui/inc/viewdata.hxx sc/source/ui/inc/viewdata.hxx
+--- ../OOO_1_1_3_bak/sc/source/ui/inc/viewdata.hxx 2004-10-20 10:04:55.000000000 +0530
++++ sc/source/ui/inc/viewdata.hxx 2004-10-28 16:32:32.000000000 +0530
+@@ -321,6 +321,8 @@
+
+ BOOL GetSimpleArea( USHORT& rStartCol, USHORT& rStartRow, USHORT& rStartTab,
+ USHORT& rEndCol, USHORT& rEndRow, USHORT& rEndTab );
++ void MoveNextRow();
++ void MovePrevRow();
+ BOOL GetSimpleArea( ScRange& rRange );
+ void GetMultiArea( ScRangeListRef& rRange );
+
+diff -u -r ../OOO_1_1_3_bak/sc/source/ui/src/popup.src sc/source/ui/src/popup.src
+--- ../OOO_1_1_3_bak/sc/source/ui/src/popup.src 2004-10-20 10:04:59.000000000 +0530
++++ sc/source/ui/src/popup.src 2004-11-17 15:36:31.310003720 +0530
+@@ -1040,6 +1040,14 @@
+ Text[ kannada ] = "ಆರಂಭ...";
+ };
+ MenuItem
++ {
++ Identifier = SID_PIVOT_AFMT ;
++ HelpId = SID_PIVOT_AFMT ;
++ Text = "A~ktualisieren" ;
++ Text [ ENGLISH ] = "~AutoFormat..." ;
++ Text [ english_us ] = "~AutoFormat..." ;
++ };
++ MenuItem
+ {
+ Identifier = SID_PIVOT_RECALC ;
+ HelpId = SID_PIVOT_RECALC ;
+diff -u -r ../OOO_1_1_3_bak/sc/source/ui/view/dbfunc3.cxx sc/source/ui/view/dbfunc3.cxx
+--- ../OOO_1_1_3_bak/sc/source/ui/view/dbfunc3.cxx 2004-10-20 10:05:00.000000000 +0530
++++ sc/source/ui/view/dbfunc3.cxx 2004-10-28 15:26:15.000000000 +0530
+@@ -679,7 +679,29 @@
+ else
+ ErrorMessage(STR_PIVOT_NOTFOUND);
+ }
++void ScDBFunc::AutoFormatPivotTable(USHORT nIndex)
++{
++ ScDocShell* pDocSh = GetViewData()->GetDocShell();
++ ScDocument* pDoc = GetViewData()->GetDocument();
++
++ // old pivot not used any more
+
++ ScDPObject* pDPObj = pDoc->GetDPAtCursor( GetViewData()->GetCurX(),
++ GetViewData()->GetCurY(),
++ GetViewData()->GetTabNo() );
++ if ( pDPObj )
++ {
++ pDPObj->SetAutoFormatIndex(nIndex);
++ }
++ else
++ ErrorMessage(STR_PIVOT_NOTFOUND);
++
++}
++
++void ScDBFunc::AutoFormatPivotTable(ScDPObject* pDPObj, USHORT nIndex)
++{
++ pDPObj->SetAutoFormatIndex(nIndex);
++}
+
+ //
+ // DB-Operationen (Sortieren, Filtern, Teilergebnisse) wiederholen
+diff -u -r ../OOO_1_1_3_bak/sc/source/ui/view/pivotsh.cxx sc/source/ui/view/pivotsh.cxx
+--- ../OOO_1_1_3_bak/sc/source/ui/view/pivotsh.cxx 2004-10-20 10:05:00.000000000 +0530
++++ sc/source/ui/view/pivotsh.cxx 2004-11-17 10:29:37.000000000 +0530
+@@ -87,6 +87,9 @@
+ #include "dbdocfun.hxx"
+ #include "uiitems.hxx"
+ #include "pfiltdlg.hxx"
++#include "autoform.hxx"
++#include "autofmt.hxx"
++#include "editable.hxx"
+
+ //------------------------------------------------------------------------
+
+@@ -125,13 +128,56 @@
+ {
+ switch ( rReq.GetSlot() )
+ {
+- case SID_PIVOT_RECALC:
+- pViewShell->RecalcPivotTable();
+- break;
++ case SID_PIVOT_AFMT:
++ {
++ ScViewData* pViewData = pViewShell->GetViewData();
++
++ pViewShell->GetDBData( TRUE, SC_DB_OLD );
++ const ScMarkData& rMark1 = pViewData->GetMarkData();
++ if ( !rMark1.IsMarked() && !rMark1.IsMultiMarked() )
++ pViewShell->MarkDataArea( TRUE );
++
++ Window* pDlgParent = pViewShell->GetDialogParent();
++
++ pViewData->MoveNextRow();
++
++ ScGlobal::ClearAutoFormat();
++ ScAutoFormatData* pNewEntry = pViewShell->CreateAutoFormatData();
++ ScAutoFormatDlg* pDlg = new ScAutoFormatDlg(
++ pDlgParent,
++ ScGlobal::GetAutoFormat(),
++ pNewEntry,
++ pViewShell->GetViewData()->GetDocument() );
++
++ if ( pDlg->Execute() == RET_OK )
++ {
++ ScEditableTester aTester( pViewShell );
++ if ( !aTester.IsEditable() )
++ {
++ pViewShell->ErrorMessage(aTester.GetMessageId());
++ }
++ else
++ {
++ /* AutoFormat and Store the index */
++ pViewShell->AutoFormat( pDlg->GetIndex() );
++ pViewShell->AutoFormatPivotTable( pDlg->GetIndex() );
++ }
++ }
++ delete pDlg;
++ delete pNewEntry;
++
+
++ //pViewShell->DeletePivotTable();
++ //pViewShell->RecalcPivotTable();
++ break;
++ }
+ case SID_PIVOT_KILL:
+ pViewShell->DeletePivotTable();
+ break;
++ case SID_PIVOT_RECALC:
++ //pViewShell->DeletePivotTable();
++ pViewShell->RecalcPivotTable();
++ break;
+
+ case SID_DP_FILTER:
+ {
+diff -u -r ../OOO_1_1_3_bak/sc/source/ui/view/viewdata.cxx sc/source/ui/view/viewdata.cxx
+--- ../OOO_1_1_3_bak/sc/source/ui/view/viewdata.cxx 2004-10-20 10:05:00.000000000 +0530
++++ sc/source/ui/view/viewdata.cxx 2004-10-28 16:32:16.000000000 +0530
+@@ -645,6 +645,23 @@
+ aLogicMode.SetScaleY( GetZoomY() );
+ }
+
++void ScViewData::MoveNextRow()
++{
++ ScRange aMarkRange;
++ aMarkData.GetMarkArea(aMarkRange);
++ aMarkRange.aStart.Set(aMarkRange.aStart.Col(), aMarkRange.aStart.Row() +1, aMarkRange.aStart.Tab());
++ aMarkData.SetMarkArea(aMarkRange);
++}
++
++void ScViewData::MovePrevRow()
++{
++ ScRange aMarkRange;
++ aMarkData.GetMarkArea(aMarkRange);
++ aMarkRange.aStart.Set(aMarkRange.aStart.Col(), aMarkRange.aStart.Row() -1, aMarkRange.aStart.Tab());
++ aMarkData.SetMarkArea(aMarkRange);
++}
++
++
+ BOOL ScViewData::GetSimpleArea( USHORT& rStartCol, USHORT& rStartRow, USHORT& rStartTab,
+ USHORT& rEndCol, USHORT& rEndRow, USHORT& rEndTab )
+ {
diff --git a/patches/OOO_1_1/sc-dp-fix.diff b/patches/OOO_1_1/sc-dp-fix.diff
new file mode 100644
index 000000000..cbc4e3497
--- /dev/null
+++ b/patches/OOO_1_1/sc-dp-fix.diff
@@ -0,0 +1,63 @@
+diff -u -r sc.prev/source/ui/dbgui/pvlaydlg.cxx sc/source/ui/dbgui/pvlaydlg.cxx
+--- sc.prev/source/ui/dbgui/pvlaydlg.cxx 2005-02-09 09:29:56.097118264 +0530
++++ sc/source/ui/dbgui/pvlaydlg.cxx 2005-02-09 09:31:47.654159016 +0530
+@@ -1380,7 +1380,7 @@
+ {
+ if ( aBtnMore.GetState() )
+ {
+- bRefInputMode = TRUE;
++ bRefInputMode = FALSE;
+ //@BugID 54702 Enablen/Disablen nur noch in Basisklasse
+ //SFX_APPWINDOW->Enable();
+ aEdOutPos.Enable();
+diff -u -r sc.prev/source/ui/inc/anyrefdg.hxx sc/source/ui/inc/anyrefdg.hxx
+--- sc.prev/source/ui/inc/anyrefdg.hxx 2005-02-09 09:29:55.808162192 +0530
++++ sc/source/ui/inc/anyrefdg.hxx 2005-02-09 09:35:37.740180624 +0530
+@@ -128,6 +128,7 @@
+ Image aImgRefDoneHC; /// Stop reference input (high contrast)
+ ScAnyRefDlg* pAnyRefDlg; // parent dialog
+ ScRefEdit* pRefEdit; // zugeordnetes Edit-Control
++ BOOL bState;
+
+ protected:
+ virtual void Click();
+diff -u -r sc.prev/source/ui/inc/pvlaydlg.hxx sc/source/ui/inc/pvlaydlg.hxx
+--- sc.prev/source/ui/inc/pvlaydlg.hxx 2005-02-09 09:29:55.841157176 +0530
++++ sc/source/ui/inc/pvlaydlg.hxx 2005-02-09 09:36:07.703625488 +0530
+@@ -133,6 +133,7 @@
+
+ virtual void SetReference( const ScRange& rRef, ScDocument* pDoc );
+ virtual BOOL IsRefInputMode() const { return bRefInputMode; }
++ void SetRefInputMode (BOOL bMode) { bRefInputMode = bMode; }
+ virtual void SetActive();
+ virtual BOOL Close();
+
+diff -u -r sc.prev/source/ui/miscdlgs/anyrefdg.cxx sc/source/ui/miscdlgs/anyrefdg.cxx
+--- sc.prev/source/ui/miscdlgs/anyrefdg.cxx 2005-02-09 09:29:56.236097136 +0530
++++ sc/source/ui/miscdlgs/anyrefdg.cxx 2005-02-09 09:59:40.354869856 +0530
+@@ -95,6 +95,7 @@
+ #include "cell.hxx"
+ #include "global.hxx"
+ #include "inputopt.hxx"
++#include "pvlaydlg.hxx"
+
+ //----------------------------------------------------------------------------
+
+@@ -286,6 +287,7 @@
+ pAnyRefDlg( pParent ),
+ pRefEdit( pEdit )
+ {
++ bState = FALSE;
+ SetStartImage();
+ }
+
+@@ -323,6 +325,9 @@
+
+ void ScRefButton::Click()
+ {
++ bState = !bState;
++ ScDPLayoutDlg *pDlg = (ScDPLayoutDlg *) this->pAnyRefDlg;
++ pDlg->SetRefInputMode (bState);
+ if( pAnyRefDlg )
+ pAnyRefDlg->ToggleCollapsed( pRefEdit, this );
+ }
diff --git a/patches/OOO_1_1/sc-no-delete-filteredrows.diff b/patches/OOO_1_1/sc-no-delete-filteredrows.diff
new file mode 100644
index 000000000..eee9ed408
--- /dev/null
+++ b/patches/OOO_1_1/sc-no-delete-filteredrows.diff
@@ -0,0 +1,94 @@
+Index: sc/source/core/data/column.cxx
+===================================================================
+--- sc/source/core/data/column.cxx.orig 2004-11-26 13:35:37.996537216 +0000
++++ sc/source/core/data/column.cxx 2004-11-26 17:09:57.853541792 +0000
+@@ -1322,6 +1322,9 @@ void ScColumn::CopyToClip(USHORT nRow1,
+ for (i = 0; i < nCount; i++)
+ if ((pItems[i].nRow >= nRow1) && (pItems[i].nRow <= nRow2))
+ {
++
++ if ( pDocument->RowFiltered( pItems[i].nRow , nTab))
++ continue;
+ if (!nBlockCount)
+ nStartIndex = i;
+ nEndIndex = i;
+@@ -1342,7 +1345,11 @@ void ScColumn::CopyToClip(USHORT nRow1,
+ {
+ rColumn.Resize( rColumn.GetCellCount() + nBlockCount );
+ for (i = nStartIndex; i <= nEndIndex; i++)
++ {
++ if ( pDocument->RowFiltered( pItems[i].nRow , nTab))
++ continue;
+ rColumn.Append(pItems[i].nRow, pItems[i].pCell->Clone(rColumn.pDocument));
++ }
+ }
+ }
+
+Index: sc/source/core/data/column3.cxx
+===================================================================
+--- sc/source/core/data/column3.cxx.orig 2004-11-26 13:35:37.999536760 +0000
++++ sc/source/core/data/column3.cxx 2004-11-26 17:09:57.867539664 +0000
+@@ -398,6 +398,17 @@ void ScColumn::DeleteRange( USHORT nStar
+ BOOL bSimple = ((nDelFlag & IDF_CONTENTS) == IDF_CONTENTS);
+ USHORT i;
+
++ /*
++ *If we are deleting a range that has filtered column, let it not be simple
++ */
++
++ if (bSimple)
++ {
++ for (i = nStartIndex; i <= nEndIndex && bSimple; i++)
++ if ( pDocument->RowFiltered(pItems[i].nRow, nTab))
++ bSimple = FALSE;
++ }
++
+ // Notiz-Zeichenobjekte
+ if (nDelFlag & IDF_NOTE)
+ {
+@@ -452,6 +463,16 @@ void ScColumn::DeleteRange( USHORT nStar
+ BOOL bDelete = FALSE;
+ ScBaseCell* pOldCell = pItems[j].pCell;
+ CellType eCellType = pOldCell->GetCellType();
++
++ /*
++ * If the rows are filtered continue instead deleting.
++ */
++ if ( pDocument->RowFiltered( pItems[j].nRow, nTab))
++ {
++ ++j;
++ continue;
++ }
++
+ switch ( eCellType )
+ {
+ case CELLTYPE_VALUE:
+Index: sc/inc/document.hxx
+===================================================================
+--- sc/inc/document.hxx.orig 2004-11-26 13:35:38.064526880 +0000
++++ sc/inc/document.hxx 2004-11-26 17:10:55.795733240 +0000
+@@ -508,6 +508,8 @@ public:
+ long GetWeightedCount() const; // Formeln und Edit staerker gewichtet
+ ULONG GetCodeCount() const; // RPN-Code in Formeln
+ DECL_LINK( GetUserDefinedColor, USHORT * );
++ BOOL RowFiltered( USHORT nRow, USHORT nTab ) const; // FillInfo
++ BOOL ColFiltered( USHORT nCol, USHORT nTab ) const; // FillInfo
+ // Numberformatter
+
+ public:
+@@ -1698,6 +1700,15 @@ inline BOOL ScDocument::RowHidden( USHOR
+ return ( pTab[nTab]->pRowFlags[nRow] & CR_HIDDEN ) != 0;
+ }
+
++inline BOOL ScDocument::ColFiltered( USHORT nCol, USHORT nTab ) const
++{
++ return ( pTab[nTab]->pColFlags[nCol] & CR_FILTERED) != 0;
++}
++
++inline BOOL ScDocument::RowFiltered( USHORT nRow, USHORT nTab ) const
++{
++ return pTab[nTab]->IsFiltered(nRow);
++}
+
+
+ #endif
diff --git a/patches/OOO_1_1/sc-paste-insert-rows.diff b/patches/OOO_1_1/sc-paste-insert-rows.diff
new file mode 100644
index 000000000..ef783c7d6
--- /dev/null
+++ b/patches/OOO_1_1/sc-paste-insert-rows.diff
@@ -0,0 +1,13 @@
+--- /home/sragavan/cvs/bk/ooo-build/build/OOO_1_1_2/sc/source/ui/view/viewfun3.cxx 2003-10-31 21:40:15.000000000 +0530
++++ sc/source/ui/view/viewfun3.cxx 2004-10-14 13:29:36.754960480 +0530
+@@ -442,8 +442,8 @@
+
+ if (pOwnClip)
+ PasteFromClip( IDF_ALL, pOwnClip->GetDocument(),
+- PASTE_NOFUNC, FALSE, FALSE, FALSE, INS_NONE, IDF_NONE,
+- TRUE ); // allow warning dialog
++ PASTE_NOFUNC, FALSE, FALSE, FALSE, INS_CELLSDOWN, IDF_NONE,
++ FALSE );
+ else if (pDrawClip)
+ PasteDraw();
+ else
diff --git a/patches/OOO_1_1/sc-standard-filter-options.diff b/patches/OOO_1_1/sc-standard-filter-options.diff
new file mode 100644
index 000000000..676d97b2d
--- /dev/null
+++ b/patches/OOO_1_1/sc-standard-filter-options.diff
@@ -0,0 +1,362 @@
+--- /home/sragavan/cvs/bk/ooo-build/build/OOO_1_1_2/sc/inc/global.hxx 2003-04-28 21:00:46.000000000 +0530
++++ sc/inc/global.hxx 2004-10-08 16:23:48.000000000 +0530
+@@ -1329,6 +1329,8 @@
+
+ enum ScQueryOp
+ {
++ SC_BEGINS_WITH,
++ SC_ENDS_WITH,
+ SC_EQUAL,
+ SC_LESS,
+ SC_GREATER,
+--- /home/sragavan/cvs/bk/ooo-build/build/OOO_1_1_2/sc/source/ui/dbgui/filtdlg.cxx 2004-01-09 20:11:10.000000000 +0530
++++ sc/source/ui/dbgui/filtdlg.cxx 2004-10-08 16:24:56.000000000 +0530
+@@ -83,6 +83,7 @@
+ #include "viewdata.hxx"
+ #include "document.hxx"
+ #include "scresid.hxx"
++#include "docoptio.hxx"
+
+ #include "foptmgr.hxx"
+
+@@ -219,6 +220,7 @@
+ aBtnMore,
+ aBtnCase,
+ aBtnRegExp,
++ aBtnWholeWord,
+ aBtnHeader,
+ aBtnUnique,
+ aBtnCopyResult,
+@@ -573,6 +575,17 @@
+ bCopyPosOk = ( SCA_VALID == (nResult & SCA_VALID) );
+ }
+
++ /*
++ * The reg exp checkbutton read is moved up, since,
++ * for begins and ends with query we are makeing them as re query transparently
++ * Checking this later spoils the entire transparent work.
++ */
++ theParam.bRegExp = aBtnRegExp.IsChecked();
++
++ ScDocOptions pDocOpts = pDoc->GetDocOptions();
++ pDocOpts.SetMatchWholeCell(aBtnWholeWord.IsChecked());
++ pDoc->SetDocOptions(pDocOpts);
++
+ for ( USHORT i=0; i<3; i++ )
+ {
+ USHORT nField = aFieldLbArr[i]->GetSelectEntryPos();
+@@ -606,6 +619,19 @@
+ }
+ else
+ {
++ if (eOp == SC_BEGINS_WITH ) {
++ String tmp ('^');
++ tmp .Append(aStrVal);
++ ::rtl::OUString str (tmp);
++ aStrVal.Assign(tmp);
++ eOp = SC_EQUAL;
++ theParam.bRegExp = TRUE;
++ }
++ else if (eOp == SC_ENDS_WITH ) {
++ aStrVal.Append (String('$'));
++ eOp = SC_EQUAL;
++ theParam.bRegExp = TRUE;
++ }
+ *rEntry.pStr = aStrVal;
+ rEntry.nVal = 0;
+ rEntry.bQueryByString = TRUE;
+@@ -642,7 +668,7 @@
+ theParam.bByRow = TRUE;
+ theParam.bDuplicate = !aBtnUnique.IsChecked();
+ theParam.bCaseSens = aBtnCase.IsChecked();
+- theParam.bRegExp = aBtnRegExp.IsChecked();
++
+ theParam.bDestPers = aBtnDestPers.IsChecked();
+
+ // nur die drei eingestellten - alles andere zuruecksetzen
+--- /home/sragavan/cvs/bk/ooo-build/build/OOO_1_1_2/sc/source/ui/inc/filtdlg.hxx 2001-09-24 22:59:58.000000000 +0530
++++ sc/source/ui/inc/filtdlg.hxx 2004-10-08 12:23:49.000000000 +0530
+@@ -101,6 +101,7 @@
+ CheckBox aBtnCase; \
+ CheckBox aBtnRegExp; \
+ CheckBox aBtnHeader; \
++ CheckBox aBtnWholeWord; \
+ CheckBox aBtnUnique; \
+ CheckBox aBtnCopyResult; \
+ ListBox aLbCopyArea; \
+@@ -122,6 +123,7 @@
+ aFlOptions ( this, ScResId( FL_OPTIONS ) ), \
+ aBtnCase ( this, ScResId( BTN_CASE ) ), \
+ aBtnRegExp ( this, ScResId( BTN_REGEXP ) ), \
++ aBtnWholeWord ( this, ScResId( BTN_MATCH) ), \
+ aBtnHeader ( this, ScResId( BTN_HEADER ) ), \
+ aBtnUnique ( this, ScResId( BTN_UNIQUE ) ), \
+ aBtnCopyResult ( this, ScResId( BTN_COPY_RESULT ) ), \
+--- /home/sragavan/cvs/bk/ooo-build/build/OOO_1_1_2/sc/source/ui/inc/filter.hrc 2001-05-21 14:52:56.000000000 +0530
++++ sc/source/ui/inc/filter.hrc 2004-10-08 12:27:21.000000000 +0530
+@@ -81,7 +81,7 @@
+ #define FT_DBAREA_LABEL 10
+ #define FT_DBAREA 11
+ #define BTN_DEST_PERS 12
+-
++#define BTN_MATCH 13
+ // Filter:
+ #define FT_OP 20
+ #define FT_FIELD 21
+--- /home/sragavan/cvs/bk/ooo-build/build/OOO_1_1_2/sc/source/ui/src/filter.src 2004-04-27 22:31:47.000000000 +0530
++++ sc/source/ui/src/filter.src 2004-10-08 14:55:38.000000000 +0530
+@@ -66,7 +66,7 @@
+ HelpId = SID_FILTER ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+- Size = MAP_APPFONT ( 298 , 83 ) ;
++ Size = MAP_APPFONT ( 298 , 98 ) ;
+ Text = "Standardfilter" ;
+ Text [ ENGLISH ] = "Standard Filter" ;
+ Text [ norwegian ] = "Standardfilter" ;
+@@ -708,12 +708,14 @@
+ };
+ stringlist [ english_us ] =
+ {
+- < "=" ; Default ; > ;
++ < "Begins with" ; Default ; > ;
++ < "Ends with" ; Default ; > ;
++ < "Equals" ; Default ; > ;
+ < "<" ; Default ; > ;
+ < ">" ; Default ; > ;
+ < "<=" ; Default ; > ;
+ < ">=" ; Default ; > ;
+- < "<>" ; Default ; > ;
++ < "Not equals" ; Default ; > ;
+ < "Largest" ; Default ; > ;
+ < "Smallest" ; Default ; > ;
+ < "Largest %" ; Default ; > ;
+@@ -2278,6 +2280,14 @@
+ Text[ zulu ] = "Isisho esi~jwayelekile";
+ Text[ norwegian_nynorsk ] = "~Regulært uttrykk";
+ };
++
++ CheckBox BTN_MATCH
++ {
++ Pos = MAP_APPFONT ( 12 , 126 ) ;
++ Size = MAP_APPFONT ( 239 , 10 ) ;
++ Text [ english_us ] = "Search criteria must apply to ~whole cells" ;
++ };
++
+ CheckBox BTN_HEADER
+ {
+ Hide = TRUE ;
+@@ -2458,7 +2468,7 @@
+ {
+ Border = TRUE ;
+ Hide = TRUE ;
+- Pos = MAP_APPFONT ( 21 , 126 ) ;
++ Pos = MAP_APPFONT ( 21 , 138 ) ;
+ Size = MAP_APPFONT ( 90 , 90 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+@@ -2467,7 +2477,7 @@
+ {
+ Border = TRUE ;
+ Hide = TRUE ;
+- Pos = MAP_APPFONT ( 115 , 126 ) ;
++ Pos = MAP_APPFONT ( 115 , 138 ) ;
+ Size = MAP_APPFONT ( 104 , 12 ) ;
+ TabStop = TRUE ;
+ };
+@@ -2475,7 +2485,7 @@
+ {
+ QuickHelpText = "Verkleinern" ;
+ QuickHelpText [ ENGLISH ] = "Shrink" ;
+- Pos = MAP_APPFONT ( 221 , 126 ) ;
++ Pos = MAP_APPFONT ( 221 , 138 ) ;
+ Size = MAP_APPFONT ( 12 , 12 ) ;
+ TabStop = FALSE ;
+ QuickHelpText [ english_us ] = "Shrink" ;
+@@ -2605,7 +2615,7 @@
+ FixedText FT_DBAREA_LABEL
+ {
+ Hide = TRUE ;
+- Pos = MAP_APPFONT ( 6 , 144 ) ;
++ Pos = MAP_APPFONT ( 6 , 156 ) ;
+ Size = MAP_APPFONT ( 58 , 8 ) ;
+ Text = "Datenbereich:" ;
+ Text [ ENGLISH ] = "Data area:" ;
+@@ -3204,10 +3214,10 @@
+ Text [ danish ] = "dummy" ;
+ Text [ french ] = "factice" ;
+ Text [ swedish ] = "dummy" ;
++ Left = TRUE ;
+ Text [ dutch ] = "dummy" ;
+ Text [ spanish ] = "Texto ejemplo" ;
+ Text [ english_us ] = "dummy" ;
+- Left = TRUE ;
+ Text[ chinese_simplified ] = "样本";
+ Text[ russian ] = "ôèêòèâíûé";
+ Text[ polish ] = "Zaœlepka";
+--- /home/sragavan/cvs/bk/ooo-build/build/OOO_1_1_2/sc/source/ui/dbgui/foptmgr.cxx 2001-10-23 14:35:11.000000000 +0530
++++ sc/source/ui/dbgui/foptmgr.cxx 2004-10-08 16:04:15.000000000 +0530
+@@ -76,6 +76,7 @@
+ #include "dbcolect.hxx"
+ #include "viewdata.hxx"
+ #include "document.hxx"
++#include "docoptio.hxx"
+
+ #define _FOPTMGR_CXX
+ #include "foptmgr.hxx"
+@@ -111,6 +111,7 @@
+ rBtnMore ( refBtnMore ),
+ rBtnCase ( refBtnCase ),
+ rBtnRegExp ( refBtnRegExp ),
++ rBtnWholeWord ( refBtnRegExp ),
+ rBtnHeader ( refBtnHeader ),
+ rBtnUnique ( refBtnUnique ),
+ rBtnCopyResult ( refBtnCopyResult ),
+@@ -123,9 +124,53 @@
+ rStrNoName ( refStrNoName ),
+ rStrUndefined ( refStrUndefined )
+ {
+- Init();
++ Init(FALSE);
+ }
+
++ScFilterOptionsMgr::ScFilterOptionsMgr(
++ Dialog* ptrDlg,
++ ScViewData* ptrViewData,
++ const ScQueryParam& refQueryData,
++ MoreButton& refBtnMore,
++ CheckBox& refBtnCase,
++ CheckBox& refBtnRegExp,
++ CheckBox& refBtnWholeWord,
++ CheckBox& refBtnHeader,
++ CheckBox& refBtnUnique,
++ CheckBox& refBtnCopyResult,
++ CheckBox& refBtnDestPers,
++ ListBox& refLbCopyArea,
++ Edit& refEdCopyArea,
++ ScRefButton& refRbCopyArea,
++ FixedText& refFtDbAreaLabel,
++ FixedInfo& refFtDbArea,
++ FixedLine& refFlOptions,
++ const String& refStrNoName,
++ const String& refStrUndefined )
++
++ : pDlg ( ptrDlg ),
++ pViewData ( ptrViewData ),
++ pDoc ( ptrViewData ? ptrViewData->GetDocument() : NULL ),
++ rQueryData ( refQueryData ),
++ rBtnMore ( refBtnMore ),
++ rBtnCase ( refBtnCase ),
++ rBtnRegExp ( refBtnRegExp ),
++ rBtnWholeWord ( refBtnWholeWord),
++ rBtnHeader ( refBtnHeader ),
++ rBtnUnique ( refBtnUnique ),
++ rBtnCopyResult ( refBtnCopyResult ),
++ rBtnDestPers ( refBtnDestPers ),
++ rLbCopyPos ( refLbCopyArea ),
++ rEdCopyPos ( refEdCopyArea ),
++ rRbCopyPos ( refRbCopyArea ),
++ rFtDbAreaLabel ( refFtDbAreaLabel ),
++ rFtDbArea ( refFtDbArea ),
++ rFlOptions ( refFlOptions ),
++ rStrNoName ( refStrNoName ),
++ rStrUndefined ( refStrUndefined )
++{
++ Init(TRUE);
++}
+
+ //----------------------------------------------------------------------------
+
+@@ -141,7 +186,7 @@
+
+ //----------------------------------------------------------------------------
+
+-void ScFilterOptionsMgr::Init()
++void ScFilterOptionsMgr::Init(BOOL param)
+ {
+ DBG_ASSERT( pViewData && pDoc, "Init failed :-/" );
+
+@@ -151,6 +196,8 @@
+
+ rBtnMore.AddWindow( &rBtnCase );
+ rBtnMore.AddWindow( &rBtnRegExp );
++ if (param)
++ rBtnMore.AddWindow(&rBtnWholeWord);
+ rBtnMore.AddWindow( &rBtnHeader );
+ rBtnMore.AddWindow( &rBtnUnique );
+ rBtnMore.AddWindow( &rBtnCopyResult );
+@@ -160,13 +207,18 @@
+ rBtnMore.AddWindow( &rRbCopyPos );
+ rBtnMore.AddWindow( &rFtDbAreaLabel );
+ rBtnMore.AddWindow( &rFtDbArea );
+- rBtnMore.AddWindow( &rFlOptions );
++ rBtnMore.AddWindow( &rFlOptions );
++
+
+ rBtnCase .Check( rQueryData.bCaseSens );
+ rBtnHeader .Check( rQueryData.bHasHeader );
+ rBtnRegExp .Check( rQueryData.bRegExp );
+ rBtnUnique .Check( !rQueryData.bDuplicate );
+-
++ if (param) {
++ BOOL bMatchWholeCell = pDoc->GetDocOptions().IsMatchWholeCell();
++ rBtnWholeWord.Check(bMatchWholeCell);
++ }
++
+ if ( pViewData && pDoc )
+ {
+ String theAreaStr;
+@@ -266,6 +318,7 @@
+ }
+ else
+ rEdCopyPos.SetText( EMPTY_STRING );
++ rFtDbArea.SetPosPixel(Point(158,331));
+ }
+
+
+--- /home/sragavan/cvs/bk/ooo-build/build/OOO_1_1_2/sc/source/ui/inc/foptmgr.hxx 2001-05-21 14:52:56.000000000 +0530
++++ sc/source/ui/inc/foptmgr.hxx 2004-10-08 16:02:56.000000000 +0530
+@@ -108,6 +108,26 @@
+ FixedLine& refFlOptions,
+ const String& refStrNoName,
+ const String& refStrUndefined );
++ ScFilterOptionsMgr( Dialog* ptrDlg,
++ ScViewData* ptrViewData,
++ const ScQueryParam& refQueryData,
++ MoreButton& refBtnMore,
++ CheckBox& refBtnCase,
++ CheckBox& refBtnRegExp,
++ CheckBox& refBtnWholeWord,
++ CheckBox& refBtnHeader,
++ CheckBox& refBtnUnique,
++ CheckBox& refBtnCopyResult,
++ CheckBox& refBtnDestPers,
++ ListBox& refLbCopyArea,
++ Edit& refEdCopyArea,
++ ScRefButton& refRbCopyArea,
++ FixedText& refFtDbAreaLabel,
++ FixedInfo& refFtDbArea,
++ FixedLine& refFlOptions,
++ const String& refStrNoName,
++ const String& refStrUndefined );
++
+ ~ScFilterOptionsMgr();
+
+ BOOL VerifyPosStr ( const String& rPosStr ) const;
+@@ -119,6 +139,7 @@
+
+ MoreButton& rBtnMore;
+ CheckBox& rBtnCase;
++ CheckBox& rBtnWholeWord;
+ CheckBox& rBtnRegExp;
+ CheckBox& rBtnHeader;
+ CheckBox& rBtnUnique;
+@@ -138,7 +159,7 @@
+
+ #ifdef _FOPTMGR_CXX
+ private:
+- void Init();
++ void Init(BOOL param);
+
+ // Handler:
+ DECL_LINK( EdPosModifyHdl, Edit* );
diff --git a/patches/OOO_1_1/sfx2-no-summary-crash-fix.diff b/patches/OOO_1_1/sfx2-no-summary-crash-fix.diff
new file mode 100644
index 000000000..d55ee3bb5
--- /dev/null
+++ b/patches/OOO_1_1/sfx2-no-summary-crash-fix.diff
@@ -0,0 +1,16 @@
+Index: sfx2/source/doc/docinf.cxx
+===================================================================
+RCS file: /cvs/framework/sfx2/source/doc/docinf.cxx,v
+retrieving revision 1.24
+diff -u -p -r1.24 docinf.cxx
+--- sfx2/source/doc/docinf.cxx 26 May 2003 08:29:06 -0000 1.24
++++ sfx2/source/doc/docinf.cxx 1 Nov 2004 11:23:17 -0000
+@@ -924,7 +924,7 @@ ULONG SfxDocumentInfo::LoadPropertySet(
+ {
+ SvStorageStreamRef aStrPropSet = pStorage->OpenStream(
+ String::CreateFromAscii( pPropSlot ), STREAM_STD_READ );
+- if ( !aStrPropSet.Is() )
++ if ( !aStrPropSet.Is() || aStrPropSet->GetError() != SVSTREAM_OK)
+ return ERRCODE_IO_ACCESSDENIED;
+ aStrPropSet->SetBufferSize( STREAM_BUFFER_SIZE );
+ SfxPS_Impl* pPS = new SfxPS_Impl;
diff --git a/patches/OOO_1_1/svtools-default-CTL-on.diff b/patches/OOO_1_1/svtools-default-CTL-on.diff
new file mode 100644
index 000000000..b14f07169
--- /dev/null
+++ b/patches/OOO_1_1/svtools-default-CTL-on.diff
@@ -0,0 +1,11 @@
+--- svtools/source/config/ctloptions.cxx.default-on 2004-12-09 11:15:05.895615360 -0500
++++ svtools/source/config/ctloptions.cxx 2004-12-09 11:40:31.287720512 -0500
+@@ -165,7 +165,7 @@
+ utl::ConfigItem( ASCII_STR("Office.Common/I18N/CTL") ),
+
+ m_bIsLoaded ( sal_False ),
+- m_bCTLFontEnabled ( sal_False ),
++ m_bCTLFontEnabled ( sal_True ),
+ m_bCTLSequenceChecking ( sal_False ),
+ m_eCTLCursorMovement ( SvtCTLOptions::MOVEMENT_LOGICAL ),
+ m_eCTLTextNumerals ( SvtCTLOptions::NUMERALS_ARABIC ),
diff --git a/patches/OOO_1_1/svx-default-font-tracks-LANGUAGE_SYSTEM.diff b/patches/OOO_1_1/svx-default-font-tracks-LANGUAGE_SYSTEM.diff
new file mode 100644
index 000000000..c226c9710
--- /dev/null
+++ b/patches/OOO_1_1/svx-default-font-tracks-LANGUAGE_SYSTEM.diff
@@ -0,0 +1,75 @@
+Index: svx/source/items/textitem.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/items/textitem.cxx,v
+retrieving revision 1.52
+diff -u -p -r1.52 textitem.cxx
+--- svx/source/items/textitem.cxx 17 Apr 2003 09:57:58 -0000 1.52
++++ svx/source/items/textitem.cxx 9 Dec 2004 11:43:56 -0000
+@@ -3704,24 +3704,21 @@ void GetDefaultFonts( SvxFontItem& rLati
+ {
+ const USHORT nItemCnt = 3;
+
+- static struct
++ USHORT aOutTypeArr[ nItemCnt ] =
+ {
+- USHORT nFontType;
+- USHORT nLanguage;
+- }
+- aOutTypeArr[ nItemCnt ] =
+- {
+- { DEFAULTFONT_LATIN_TEXT, LANGUAGE_ENGLISH_US },
+- { DEFAULTFONT_CJK_TEXT, LANGUAGE_ENGLISH_US },
+- { DEFAULTFONT_CTL_TEXT, LANGUAGE_ARABIC_SAUDI_ARABIA }
++ DEFAULTFONT_LATIN_TEXT,
++ DEFAULTFONT_CJK_TEXT,
++ DEFAULTFONT_CTL_TEXT
+ };
+
++ LanguageType eLanguage = Application::GetSettings().GetLanguage();
++
+ SvxFontItem* aItemArr[ nItemCnt ] = { &rLatin, &rAsian, &rComplex };
+
+ for ( USHORT n = 0; n < nItemCnt; ++n )
+ {
+- Font aFont( OutputDevice::GetDefaultFont( aOutTypeArr[ n ].nFontType,
+- aOutTypeArr[ n ].nLanguage,
++ Font aFont( OutputDevice::GetDefaultFont( aOutTypeArr[ n ],
++ eLanguage,
+ DEFAULTFONT_FLAGS_ONLYONE, 0 ) );
+ SvxFontItem* pItem = aItemArr[ n ];
+ pItem->GetFamily() = aFont.GetFamily();
+Index: svx/source/svdraw/svdmodel.cxx
+===================================================================
+RCS file: /cvs/graphics/svx/source/svdraw/svdmodel.cxx,v
+retrieving revision 1.48
+diff -u -p -r1.48 svdmodel.cxx
+--- svx/source/svdraw/svdmodel.cxx 24 Apr 2003 16:42:29 -0000 1.48
++++ svx/source/svdraw/svdmodel.cxx 9 Dec 2004 11:44:19 -0000
+@@ -935,19 +935,20 @@ void SdrModel::SetTextDefaults() const
+ void ImpGetDefaultFontsLanguage( SvxFontItem& rLatin, SvxFontItem& rAsian, SvxFontItem& rComplex)
+ {
+ const USHORT nItemCnt = 3;
+- static struct {
+- USHORT nFntType, nLanguage;
+- } aOutTypeArr[ nItemCnt ] = {
+- { DEFAULTFONT_LATIN_TEXT, LANGUAGE_ENGLISH_US },
+- { DEFAULTFONT_CJK_TEXT, LANGUAGE_ENGLISH_US },
+- { DEFAULTFONT_CTL_TEXT, LANGUAGE_ARABIC_SAUDI_ARABIA }
++ USHORT aOutTypeArr[ nItemCnt ] =
++ {
++ DEFAULTFONT_LATIN_TEXT,
++ DEFAULTFONT_CJK_TEXT,
++ DEFAULTFONT_CTL_TEXT
+ };
++
++ LanguageType eLanguage = Application::GetSettings().GetLanguage();
+ SvxFontItem* aItemArr[ nItemCnt ] = { &rLatin, &rAsian, &rComplex };
+
+ for( USHORT n = 0; n < nItemCnt; ++n )
+ {
+ Font aFnt( OutputDevice::GetDefaultFont(
+- aOutTypeArr[ n ].nFntType, aOutTypeArr[ n ].nLanguage,
++ aOutTypeArr[ n ], eLanguage,
+ DEFAULTFONT_FLAGS_ONLYONE, 0 ));
+ SvxFontItem* pI = aItemArr[ n ];
+ pI->GetFamily() = aFnt.GetFamily();
diff --git a/patches/OOO_1_1/sw-online-layout-crash-fix.diff b/patches/OOO_1_1/sw-online-layout-crash-fix.diff
new file mode 100644
index 000000000..5e80568bd
--- /dev/null
+++ b/patches/OOO_1_1/sw-online-layout-crash-fix.diff
@@ -0,0 +1,19 @@
+Index: source/core/layout/fly.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/core/layout/fly.cxx,v
+retrieving revision 1.46.52.3
+diff -u -p -r1.46.52.3 fly.cxx
+--- sw/source/core/layout/fly.cxx 28 Apr 2004 10:29:47 -0000 1.46.52.3
++++ sw/source/core/layout/fly.cxx 5 Nov 2004 11:15:08 -0000
+@@ -1695,8 +1695,9 @@ void SwFlyFrm::MakeFlyPos()
+ const long nBottom = GetAnchor()->Frm().Top() + aRelPos.Y() + Frm().Height();
+ if ( nAnchorBottom < nBottom )
+ {
+- ((SwPageFrm*)GetAnchor())->FindBodyCont()->
+- Grow( nBottom - nAnchorBottom PHEIGHT );
++ if (SwPageFrm *pOne = ((SwPageFrm*)GetAnchor()))
++ if (SwLayoutFrm *pTwo = pOne->FindBodyCont())
++ pTwo->Grow( nBottom - nAnchorBottom PHEIGHT );
+ }
+ }
+
diff --git a/patches/OOO_1_1/vba-sc-export.diff b/patches/OOO_1_1/vba-sc-export.diff
index fc13b77ed..7a04a66ed 100644
--- a/patches/OOO_1_1/vba-sc-export.diff
+++ b/patches/OOO_1_1/vba-sc-export.diff
@@ -1,101 +1,3 @@
-Index: sc/source/filter/excel/excrecds.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/excel/excrecds.cxx,v
-retrieving revision 1.64.18.1
-diff -u -r1.64.18.1 excrecds.cxx
---- sc/source/filter/excel/excrecds.cxx 9 Jan 2004 14:40:43 -0000 1.64.18.1
-+++ sc/source/filter/excel/excrecds.cxx 8 Sep 2004 09:55:45 -0000
-@@ -1592,6 +1592,12 @@
- }
-
-
-+const String &ExcNameListEntry::GetName() const
-+{
-+ static String sEmpty;
-+ return sEmpty;
-+}
-+
- void ExcNameListEntry::SetCode( const ExcUPN& rUPN )
- {
- DeleteData();
-@@ -1646,14 +1652,27 @@
- }
-
-
-+UINT16
-+ExcNameList::GetMacroIdx( RootData &rRootData, const String &rName )
-+{
-+ for( USHORT nIndex = 0; nIndex < List::Count(); nIndex++ )
-+ {
-+ ExcNameListEntry* pName = _Get( nIndex );
-+ if(pName && pName->GetName().Equals(rName))
-+ return nIndex+1;
-+ }
-+ return Append( new ExcName( rRootData, rName ) );
-+}
-+
-
- //------------------------------------------------------------- class ExcName -
-
--void ExcName::Init( BOOL bHid, BOOL bBIn )
-+void ExcName::Init( BOOL bHid, BOOL bBIn, BOOL bBMacro )
- {
- eBiff = pExcRoot->eDateiTyp;
- bHidden = bHid;
- bBuiltIn = bBIn;
-+ bMacro = bBMacro;
- }
-
-
-@@ -1701,6 +1720,13 @@
- }
- }
-
-+ExcName::ExcName( RootData& rRootData, const String& rName ) :
-+ ExcRoot( &rRootData )
-+{
-+ Init();
-+ bMacro = TRUE;
-+ aName = rName;
-+}
-
- ExcName::ExcName( RootData& rRootData, ScDBData* pArea ) :
- ExcRoot( &rRootData )
-@@ -1734,7 +1760,7 @@
- ExcNameListEntry( rRootData, rRange.aStart.Tab(), nKey ),
- ExcRoot( &rRootData )
- {
-- Init( bHid, TRUE );
-+ Init( bHid, TRUE, FALSE );
- aName = sal_Unicode( nKey );
- BuildFormula( rRange );
- }
-@@ -1803,8 +1829,8 @@
- {
- UINT8 nNameLen = (UINT8) Min( aName.Len(), (xub_StrLen)255 );
- UINT16 nGrbit = (bHidden ? EXC_NAME_HIDDEN : 0) | (bBuiltIn ? EXC_NAME_BUILTIN : 0);
-- if( !nFormLen )
-- nGrbit |= EXC_NAME_VB | EXC_NAME_PROC;
-+ if( !nFormLen || bMacro )
-+ nGrbit |= EXC_NAME_FUNC | EXC_NAME_VB | EXC_NAME_PROC;
-
- rStrm << nGrbit // grbit
- << (BYTE) 0x00 // chKey
-Index: sc/source/filter/excel/functab.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/excel/functab.cxx,v
-retrieving revision 1.9
-diff -u -r1.9 functab.cxx
---- sc/source/filter/excel/functab.cxx 23 Nov 2001 13:04:17 -0000 1.9
-+++ sc/source/filter/excel/functab.cxx 8 Sep 2004 09:55:45 -0000
-@@ -310,6 +310,7 @@
- { 0 },
- //! from here on only >= Biff8
- { ocExternal , 255, nTypeVal, FALSE, nVarParam, 2, nTypeInsert, nTypeRef },
-+ { ocMacro , 255, nTypeVal, FALSE, nVarParam, 1, nTypeRef },
- { ocISPMT , 350, nTypeVal, FALSE, 4, 1, nTypeVal, nTypeVal, nTypeVal, nTypeVal },
- { ocAverageA , 361, nTypeVal, FALSE, nVarParam, 1, nTypeRef },
- { ocMaxA , 362, nTypeVal, FALSE, nVarParam, 1, nTypeRef },
Index: sc/source/filter/excel/xelink.cxx
===================================================================
RCS file: /cvs/sc/sc/source/filter/excel/xelink.cxx,v
@@ -125,102 +27,6 @@ diff -u -r1.4 xelink.cxx
bool XclExpLinkManager::InsertDde(
sal_uInt16& rnXti, sal_uInt16& rnExtName,
const String& rApplic, const String& rTopic, const String& rItem )
-Index: sc/source/filter/excel/exccomp.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/excel/exccomp.cxx,v
-retrieving revision 1.28
-diff -u -r1.28 exccomp.cxx
---- sc/source/filter/excel/exccomp.cxx 23 Apr 2003 17:28:24 -0000 1.28
-+++ sc/source/filter/excel/exccomp.cxx 8 Sep 2004 09:55:46 -0000
-@@ -1370,12 +1370,34 @@
-
- // for ptgNameX (extern name): [0] = EXTERNSHEET index, [1] = EXTERNNAME index
- UINT16 pExtNameData[ 2 ] = { 0, 0xFFFF };
-+ UINT16 nFunctionOp = pCur->GetOpCode();
-
-- if( pCur->GetOpCode() == ocExternal )
-+ if( nFunctionOp == ocExternal )
- pExcRoot->pER->GetLinkManager().InsertAddIn(
- pExtNameData[ 0 ], pExtNameData[ 1 ],
- pExcRoot->pER->GetXclAddInName( pCur->GetExternal() ) );
-
-+ else if (nFunctionOp == ocMacro)
-+ {
-+ UINT16 nIdx = pExcRoot->pNameList->GetMacroIdx(*pExcRoot,pCur->GetExternal() );
-+
-+ SToken aToken;
-+
-+ aToken.ptg = ptgName;
-+ aToken.Set( 0, nIdx );
-+ if ( pExcRoot->eDateiTyp >= Biff8 )
-+ aToken.Set( 2, UINT16(0) );
-+ else
-+ memset( &aToken.Data[2], 0, 12 );
-+
-+ // Force raw ptgName
-+ UINT8 nParamStore = m_nParamType;
-+ m_nParamType = nTypeRef;
-+ PutCode( aToken );
-+ m_nParamType = nParamStore;
-+ nParamCount++;
-+ }
-+
- pFacToken = new SToken( m_Token );
- GetNextToken();
- if (m_Token.ptg == ptgParen)
-Index: sc/source/filter/inc/excrecds.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/inc/excrecds.hxx,v
-retrieving revision 1.34
-diff -u -r1.34 excrecds.hxx
---- sc/source/filter/inc/excrecds.hxx 28 Apr 2003 15:37:12 -0000 1.34
-+++ sc/source/filter/inc/excrecds.hxx 8 Sep 2004 09:55:46 -0000
-@@ -832,6 +832,7 @@
-
- virtual UINT16 GetNum() const;
- virtual ULONG GetLen() const;
-+ virtual const String &GetName() const;
- };
-
-
-@@ -844,8 +845,9 @@
- BiffTyp eBiff;
- BOOL bHidden;
- BOOL bBuiltIn;
-+ BOOL bMacro;
-
-- void Init( BOOL bHid = FALSE, BOOL bBIn = FALSE );
-+ void Init( BOOL bHid = FALSE, BOOL bBIn = FALSE, BOOL bBMacro = FALSE );
- void BuildFormula( const ScRange& rRange );
-
- void SetName( const String& rRangeName );
-@@ -862,8 +864,9 @@
- const String& rName );
- ExcName( RootData& rRootData, const ScRange& rRange,
- UINT8 nKey, BOOL bHid = FALSE );
-+ ExcName( RootData& rRootData, const String& rName );
-
-- inline const String& GetName() const { return aName; }
-+ inline virtual const String& GetName() const { return aName; }
-
- virtual ULONG GetLen() const;
- };
-@@ -921,11 +924,15 @@
- ExcNameList( RootData& rRootData );
- virtual ~ExcNameList();
-
-+ inline ExcNameListEntry *GetObject( ULONG nIndex ) const
-+ { return (ExcNameListEntry*) List::GetObject( nIndex ); }
-+
- UINT16 GetBuiltInIx( const ExcNameListEntry* pName );
-
- /** Inserts a named range in table name sort order. */
- void InsertSorted( RootData& rRootData, ExcNameListEntry* pName, sal_uInt16 nScTab );
-
-+ UINT16 GetMacroIdx( RootData &rRootData, const String &rName );
-
- virtual void Save( XclExpStream& rStrm );
- };
Index: sc/source/filter/inc/xelink.hxx
===================================================================
RCS file: /cvs/sc/sc/source/filter/inc/xelink.hxx,v
@@ -239,3 +45,16 @@ diff -u -r1.4 xelink.hxx
/** Finds or inserts an EXTERNNAME record for DDE links.
@param rnXti Returns the index of the XTI structure which contains the DDE link.
@param rnExtName Returns the 1-based EXTERNNAME record index. */
+--- sc/source/filter/excel/exccomp.cxx.bak 2005-01-17 15:13:40.281789882 -0800
++++ sc/source/filter/excel/exccomp.cxx 2005-01-17 15:13:53.583550657 -0800
+@@ -1371,10 +1371,6 @@
+ // for ptgNameX (extern name): [0] = EXTERNSHEET index, [1] = EXTERNNAME index
+ UINT16 pExtNameData[ 2 ] = { 0, 0xFFFF };
+
+- if( pCur->GetOpCode() == ocExternal )
+- pExcRoot->pER->GetLinkManager().InsertAddIn(
+- pExtNameData[ 0 ], pExtNameData[ 1 ],
+- pExcRoot->pER->GetXclAddInName( pCur->GetExternal() ) );
+ UINT16 nFunctionOp = pCur->GetOpCode();
+ if( nFunctionOp == ocExternal )
+ {
diff --git a/patches/OOO_1_1/win32-gw-send-mail.diff b/patches/OOO_1_1/win32-gw-send-mail.diff
index d3e8c71ee..ae9322ac9 100755
--- a/patches/OOO_1_1/win32-gw-send-mail.diff
+++ b/patches/OOO_1_1/win32-gw-send-mail.diff
@@ -10,7 +10,7 @@
- aSysPath.getLength( ),
- osl_getThreadTextEncoding( ) ) );
-
-+ OString aFullPath = OUStringToOString( aSysPath,
++ OString aFullPath = ::rtl::OUStringToOString( aSysPath,
+ osl_getThreadTextEncoding() );
+ sal_Int32 nLastSlash = aFullPath.lastIndexOf('\\');
+ OString aFileName = aFullPath.copy( nLastSlash + 1 );
diff --git a/patches/OOO_1_1/writer-default-as-optimal-page-wrap.diff b/patches/OOO_1_1/writer-default-as-optimal-page-wrap.diff
new file mode 100644
index 000000000..6516c179c
--- /dev/null
+++ b/patches/OOO_1_1/writer-default-as-optimal-page-wrap.diff
@@ -0,0 +1,16 @@
+Index: source/core/doc/poolfmt.cxx
+===================================================================
+RCS file: /cvs/sw/sw/source/core/doc/poolfmt.cxx,v
+retrieving revision 1.25.108.1
+diff -u -r1.25.108.1 poolfmt.cxx
+--- sw/source/core/doc/poolfmt.cxx 9 Jan 2004 14:31:26 -0000 1.25.108.1
++++ sw/source/core/doc/poolfmt.cxx 24 Oct 2004 14:25:15 -0000
+@@ -1516,7 +1516,7 @@
+ aSet.Put( SwFmtAnchor( FLY_AT_CNTNT ));
+ aSet.Put( SwFmtHoriOrient( 0, HORI_CENTER, FRAME ));
+ aSet.Put( SwFmtVertOrient( 0, VERT_TOP, FRAME ));
+- aSet.Put( SwFmtSurround( SURROUND_NONE ));
++ aSet.Put( SwFmtSurround( SURROUND_IDEAL ));
+ }
+ break;
+ case RES_POOLFRM_FORMEL:
diff --git a/patches/evo2/connectivity-source-drivers-evoab1-5-EApi-cxx.diff b/patches/evo2/connectivity-source-drivers-evoab1-5-EApi-cxx.diff
new file mode 100644
index 000000000..2904ec4b0
--- /dev/null
+++ b/patches/evo2/connectivity-source-drivers-evoab1-5-EApi-cxx.diff
@@ -0,0 +1,167 @@
+--- /dev/null 2004-08-25 23:04:59.000000000 +0530
++++ connectivity/source/drivers/evoab1.5/EApi.cxx 2005-02-22 17:41:54.999516706 +0530
+@@ -0,0 +1,164 @@
++ /*************************************************************************
++ *
++ * $RCSfile$
++ *
++ * $Revision$
++ *
++ * last change: $Author$ $Date$
++ *
++ * The Contents of this file are made available subject to the terms of
++ * either of the following licenses
++ *
++ * - GNU Lesser General Public License Version 2.1
++ * - Sun Industry Standards Source License Version 1.1
++ *
++ * Sun Microsystems Inc., October, 2000
++ *
++ * GNU Lesser General Public License Version 2.1
++ * =============================================
++ * Copyright 2000 by Sun Microsystems, Inc.
++ * 901 San Antonio Road, Palo Alto, CA 94303, USA
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License version 2.1, as published by the Free Software Foundation.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ *
++ *
++ * Sun Industry Standards Source License Version 1.1
++ * =================================================
++ * The contents of this file are subject to the Sun Industry Standards
++ * Source License Version 1.1 (the License); You may not use this file
++ * except in compliance with the License. You may obtain a copy of the
++ * License at http://www.openoffice.org/license.html.
++ *
++ * Software provided under this License is provided on an AS IS basis,
++ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
++ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
++ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
++ * See the License for the specific provisions governing your rights and
++ * obligations concerning the Software.
++ *
++ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
++ *
++ * Copyright: 2000 by Sun Microsystems, Inc.
++ *
++ * All Rights Reserved.
++ *
++ * Contributor(s): Michael Meeks, Jayant Madavi
++ *
++ *
++ ************************************************************************/
++
++#include <rtl/ustring.hxx>
++#include <osl/module.h>
++#include <stdio.h>
++#define _EVOLUTION_ALREADY_DEFINED_ 1
++#ifndef _CONNECTIVITY_EVOAB_EVOLUTION_API_HXX_
++#include "EApi.h"
++#endif
++static char *eBookLibNames[] = {
++ "libebook.so.8", // evolution-2.0
++ "libebook-1.2.so.3" // evolution-2.2
++ // FIXME: ask JPR about ABI compatibility going forwards
++ // "libebook-1.3.so.0",
++ // "libebook-1.4.so.0",
++ // "libebook-1.5.so.0"
++};
++
++typedef void (*SymbolFunc) (void);
++
++#define SYM_MAP(a) { #a, (SymbolFunc *)&a }
++ static struct {
++ const char *sym_name;
++ SymbolFunc *ref_value;
++ } aApiMap[] = {
++ SYM_MAP( e_contact_get_type ),
++ SYM_MAP( e_contact_field_id ),
++ SYM_MAP( e_source_peek_name ),
++ SYM_MAP( e_source_get_property ),
++ SYM_MAP( e_source_list_peek_groups ),
++ SYM_MAP( e_source_group_peek_sources ),
++ SYM_MAP( e_book_new ),
++ SYM_MAP( e_book_open ),
++ SYM_MAP( e_book_get_uri ),
++ SYM_MAP( e_book_get_source ),
++ SYM_MAP( e_book_get_addressbooks ),
++ SYM_MAP( e_book_get_contacts ),
++ SYM_MAP( e_book_authenticate_user ),
++ SYM_MAP( e_book_query_field_test ),
++ SYM_MAP( e_book_query_and ),
++ SYM_MAP( e_book_query_or ),
++ SYM_MAP( e_book_query_not ),
++ SYM_MAP( e_book_query_unref ),
++ SYM_MAP( e_book_query_to_string ),
++ SYM_MAP( e_book_query_field_exists ),
++ SYM_MAP( e_source_group_peek_base_uri)
++ };
++#undef SYM_MAP
++
++static bool
++tryLink( oslModule &aModule, const char *pName )
++{
++ for( guint i = 0; i < G_N_ELEMENTS( aApiMap ); i++ )
++ {
++ SymbolFunc aMethod;
++ aMethod = (SymbolFunc) osl_getSymbol
++ ( aModule, rtl::OUString::createFromAscii ( aApiMap[ i ].sym_name ).pData );
++ if( !aMethod )
++ {
++ fprintf( stderr, "Warning: missing symbol '%s' in '%s'",
++ aApiMap[ i ].sym_name, pName );
++ return false;
++ }
++ * aApiMap[ i ].ref_value = aMethod;
++ }
++ return true;
++}
++
++bool EApiInit()
++{
++ oslModule aModule;
++
++ for( guint j = 0; j < G_N_ELEMENTS( eBookLibNames ); j++ )
++ {
++ aModule = osl_loadModule( rtl::OUString::createFromAscii
++ ( eBookLibNames[ j ] ).pData,
++ SAL_LOADMODULE_DEFAULT );
++ if( aModule)
++ {
++ if ( tryLink( aModule, eBookLibNames[ j ] ) )
++ return true;
++ osl_unloadModule( aModule );
++ }
++ }
++ fprintf( stderr, "Can find no compliant libebook client libraries\n" );
++ return false;
++}
++
++#if 0
++
++ Test code - enable &
++ *
++ * Compile with ( after source LinuxIntelEnv.Set.sh )
++ gcc $SOLARDEF -I $SOLARSRC/sal/inc -I $SOLARSRC/sal/unxlngi4.pro/inc \
++ -I. `pkg-config --cflags --libs gobject-2.0` \
++ -L $SOLARSRC/sal/unxlngi4.pro/lib -luno_sal -lstdc++ EApi.cxx
++
++
++int main( int argc, char **argv)
++{
++ return EApiInit();
++}
++
++#endif
++
diff --git a/patches/order b/patches/order
index 28a3555e4..eadf73021 100644
--- a/patches/order
+++ b/patches/order
@@ -1,2 +1,2 @@
-OOO_1_1_1 1.1
-OOO_1_1_2 1.1 buildable
+OOO_1_1_4 1.1 buildable
+OOO_1_1_3 1.1 buildable
diff --git a/patches/vclplug/crash-ppd-parse.diff b/patches/vclplug/crash-ppd-parse.diff
index 8c41014b0..6d0edd6cc 100644
--- a/patches/vclplug/crash-ppd-parse.diff
+++ b/patches/vclplug/crash-ppd-parse.diff
@@ -1,22 +1,28 @@
---- psprint.good/source/printer/cupsmgr.cxx 2004-09-27 04:24:33.000000000 +0100
-+++ psprint/source/printer/cupsmgr.cxx 2004-09-29 17:19:32.578417056 +0100
-@@ -495,11 +495,14 @@
-
- rInfo.m_pParser = pNewParser;
- rInfo.m_aContext.setParser( pNewParser );
-- for( int i = 0; i < pPPD->num_groups; i++ )
-- updatePrinterContextInfo( pPPD->groups + i, rInfo );
--
-- // clean up the mess
-- m_pCUPSWrapper->ppdClose( pPPD );
-+ if (pPPD)
-+ {
-+ for( int i = 0; i < pPPD->num_groups; i++ )
-+ updatePrinterContextInfo( pPPD->groups + i, rInfo );
-+
-+ // clean up the mess
-+ m_pCUPSWrapper->ppdClose( pPPD );
-+ }
-
- // remove temporary PPD file
- unlink( pPPDFile );
+diff -urd psprint/source/printer/cupsmgr.cxx psprint-fixppdcrash/source/printer/cupsmgr.cxx
+--- psprint/source/printer/cupsmgr.cxx 2004-11-09 16:37:51.000000000 +0000
++++ psprint-fixppdcrash/source/printer/cupsmgr.cxx 2004-11-24 21:42:59.000000000 +0000
+@@ -601,14 +601,20 @@
+ // remember the default context for later use
+ PPDContext& rContext = m_aDefaultContexts[ aPrinter ];
+ rContext.setParser( pNewParser );
+- for( int i = 0; i < pPPD->num_groups; i++ )
+- updatePrinterContextInfo( pPPD->groups + i, rContext );
++ if(pPPD)
++ {
++ for( int i = 0; i < pPPD->num_groups; i++ )
++ updatePrinterContextInfo( pPPD->groups + i, rContext );
++ }
+
+ rInfo.m_pParser = pNewParser;
+ rInfo.m_aContext = rContext;
+
+- // clean up the mess
+- m_pCUPSWrapper->ppdClose( pPPD );
++ if(pPPD)
++ {
++ // clean up the mess
++ m_pCUPSWrapper->ppdClose( pPPD );
++ }
+ }
+ #if OSL_DEBUG_LEVEL > 1
+ else
diff --git a/patches/vclplug/font-substitution-fixups.diff b/patches/vclplug/font-substitution-fixups.diff
new file mode 100644
index 000000000..456993809
--- /dev/null
+++ b/patches/vclplug/font-substitution-fixups.diff
@@ -0,0 +1,505 @@
+--- psprint/inc/psprint/fontmanager.hxx.lang 2005-01-05 11:52:20.000000000 -0500
++++ psprint/inc/psprint/fontmanager.hxx 2005-01-05 11:54:36.973031125 -0500
+@@ -75,6 +75,9 @@
+ #ifndef _PSPRINT_HELPER_HXX_
+ #include <psprint/helper.hxx>
+ #endif
++#ifndef _LANG_HXX
++#include <tools/lang.hxx>
++#endif
+
+ #ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_
+ #include <com/sun/star/lang/Locale.hpp>
+@@ -193,6 +196,7 @@
+ weight::type m_eWeight;
+ pitch::type m_ePitch;
+ rtl_TextEncoding m_aEncoding;
++ std::vector< LanguageType > m_aLangs;
+
+ FastPrintFontInfo() :
+ m_nID( 0 ),
+@@ -299,6 +303,7 @@
+ pitch::type m_ePitch;
+ rtl_TextEncoding m_aEncoding;
+ bool m_bFontEncodingOnly; // set if font should be only accessed by builtin encoding
++ std::vector< LanguageType > m_aLangs;
+ CharacterMetric m_aGlobalMetricX;
+ CharacterMetric m_aGlobalMetricY;
+ PrintFontMetrics* m_pMetrics;
+@@ -459,6 +464,10 @@
+ */
+ void deinitFontconfig();
+
++ // pLangSet should be of type FcLangSet* but since not everyone uses
++ // Fontconfig, we have to make it void* here
++ void fillFontSupportedLanguages (PrintFont *pFont, void *pLangSetIn);
++
+ static bool parseXLFD( const rtl::OString& rXLFD, XLFDEntry& rEntry );
+ void parseXLFD_appendAliases( const std::list< rtl::OString >& rXLFDs, std::list< XLFDEntry >& rEntries ) const;
+ void initFontsAlias();
+--- psprint/source/fontmanager/fontconfig.cxx.lang 2005-01-05 11:38:33.000000000 -0500
++++ psprint/source/fontmanager/fontconfig.cxx 2005-01-05 12:02:32.228042143 -0500
+@@ -74,6 +74,8 @@
+ typedef int FcBool;
+ typedef int FcMatchKind;
+ typedef char FcChar8;
++typedef void FcCharSet;
++typedef void FcLangSet;
+ #endif
+
+ #include <cstdio>
+@@ -97,6 +99,9 @@
+ #ifndef _RTL_USTRBUF_HXX
+ #include <rtl/ustrbuf.hxx>
+ #endif
++#ifndef _LANG_HXX
++#include <tools/lang.hxx>
++#endif
+
+ using namespace psp;
+ using namespace osl;
+@@ -125,6 +130,11 @@
+ FcBool (*m_pFcConfigSubstitute)(FcConfig*,FcPattern*,FcMatchKind);
+ FcBool (*m_pFcPatternAddInteger)(FcPattern*,const char*,int);
+ FcBool (*m_pFcPatternAddString)(FcPattern*,const char*,const FcChar8*);
++ FcResult (*m_pFcPatternGetCharSet)(const FcPattern*,const char*,int,FcCharSet**);
++ void (*m_pFcCharSetDestroy)(FcCharSet *fcs);
++ FcResult (*m_pFcPatternGetLangSet)(const FcPattern*,const char*,int,FcLangSet**);
++ FcLangResult (*m_pFcLangSetHasLang)(const FcLangSet *ls, const FcChar8 *lang);
++ void (*m_pFcLangSetDestroy)(FcLangSet *ls);
+
+ void* loadSymbol( const char* );
+
+@@ -193,6 +203,21 @@
+ { return m_pFcPatternAddInteger( pPattern, pObject, nValue ); }
+ FcBool FcPatternAddString( FcPattern* pPattern, const char* pObject, const FcChar8* pString )
+ { return m_pFcPatternAddString( pPattern, pObject, pString ); }
++
++ FcResult FcPatternGetCharSet( const FcPattern* pPattern, const char* object, int n, FcCharSet** s )
++ { return m_pFcPatternGetCharSet( pPattern, object, n, s ); }
++
++ void FcCharSetDestroy( FcCharSet *fcs )
++ { m_pFcCharSetDestroy( fcs ); }
++
++ FcResult FcPatternGetLangSet( const FcPattern* pPattern, const char* object, int n, FcLangSet** s )
++ { return m_pFcPatternGetLangSet( pPattern, object, n, s ); }
++
++ FcLangResult FcLangSetHasLang( const FcLangSet *ls, const FcChar8 *lang )
++ { return m_pFcLangSetHasLang( ls, lang ); }
++
++ void FcLangSetDestroy( FcLangSet *ls )
++ { m_pFcLangSetDestroy( ls ); }
+ };
+
+ void* FontCfgWrapper::loadSymbol( const char* pSymbol )
+@@ -263,6 +288,16 @@
+ loadSymbol( "FcPatternAddInteger" );
+ m_pFcPatternAddString = (FcBool(*)(FcPattern*,const char*,const FcChar8*))
+ loadSymbol( "FcPatternAddString" );
++ m_pFcPatternGetCharSet = (FcResult(*)(const FcPattern*,const char*,int,FcCharSet**))
++ loadSymbol( "FcPatternGetCharSet" );
++ m_pFcCharSetDestroy = (void(*)(FcCharSet *))
++ loadSymbol( "FcCharSetDestroy" );
++ m_pFcPatternGetLangSet = (FcResult(*)(const FcPattern*,const char*,int,FcLangSet**))
++ loadSymbol( "FcPatternGetLangSet" );
++ m_pFcLangSetHasLang = (FcLangResult(*)(const FcLangSet *ls, const FcChar8 *lang))
++ loadSymbol( "FcLangSetHasLang" );
++ m_pFcLangSetDestroy = (void(*)(FcLangSet *))
++ loadSymbol( "FcLangSetDestroy" );
+
+ if( ! (
+ m_pFcInitLoadConfigAndFonts &&
+@@ -282,7 +317,14 @@
+ m_pFcFontMatch &&
+ m_pFcConfigSubstitute &&
+ m_pFcPatternAddInteger &&
+- m_pFcPatternAddString
++ m_pFcPatternAddString &&
++ m_pFcPatternGetBool &&
++ m_pFcPatternGetCharSet &&
++ m_pFcPatternGetCharSet &&
++ m_pFcCharSetDestroy &&
++ m_pFcPatternGetLangSet &&
++ m_pFcLangSetHasLang &&
++ m_pFcLangSetDestroy
+ ) )
+ {
+ osl_unloadModule( m_pLib );
+@@ -324,6 +366,310 @@
+ }
+ }
+
++#ifdef ENABLE_FONTCONFIG
++
++// Copied from tools/intnl/isolang.cxx, this saves us
++// from having to iterate over the entire list of LANGUAGE_*
++// and call ConvertLanguageToIsoByteString(), which itself just
++// searches some tables. Its faster this way, and perhaps we can
++// get the isolang API to do some form of iteration in the future.
++struct IsoLangEntry
++{
++ LanguageType meLang;
++ sal_Char maLangStr[3];
++ sal_Char maCountry[3];
++};
++
++// -----------------------------------------------------------------------
++
++// Entries for languages are lower case, for countries upper case,
++// as recommended by rfc1766.
++// ConvertIsoNamesToLanguage is case insensitive
++
++// Sortorder: Most used first
++// The default entry for every language string has to be first.
++
++static IsoLangEntry aIsoLangEntries[] =
++{
++ // Lang (MS-LCID-Codes) ISO639-1 ISO3166
++ { LANGUAGE_ENGLISH, "en", "" },
++ { LANGUAGE_ENGLISH_US, "en", "US" },
++ { LANGUAGE_ENGLISH_UK, "en", "GB" },
++ { LANGUAGE_ENGLISH_AUS, "en", "AU" },
++ { LANGUAGE_ENGLISH_CAN, "en", "CA" },
++ { LANGUAGE_FRENCH, "fr", "FR" },
++ { LANGUAGE_GERMAN, "de", "DE" },
++ { LANGUAGE_ITALIAN, "it", "IT" },
++ { LANGUAGE_DUTCH, "nl", "NL" },
++ { LANGUAGE_SPANISH, "es", "ES" },
++ { LANGUAGE_SPANISH_MODERN, "es", "ES" },
++ { LANGUAGE_PORTUGUESE, "pt", "PT" },
++ { LANGUAGE_PORTUGUESE_BRAZILIAN, "pt", "BR" },
++ { LANGUAGE_DANISH, "da", "DK" },
++ { LANGUAGE_GREEK, "el", "GR" },
++ { LANGUAGE_CHINESE, "zh", "" },
++ { LANGUAGE_CHINESE_TRADITIONAL, "zh", "TW" },
++ { LANGUAGE_CHINESE_SIMPLIFIED, "zh", "CN" },
++ { LANGUAGE_CHINESE_HONGKONG, "zh", "HK" },
++ { LANGUAGE_CHINESE_SINGAPORE, "zh", "SG" },
++ { LANGUAGE_CHINESE_MACAU, "zh", "MO" },
++ { LANGUAGE_JAPANESE, "ja", "JP" },
++ { LANGUAGE_KOREAN, "ko", "KR" },
++ { LANGUAGE_KOREAN_JOHAB, "ko", "KR" },
++ { LANGUAGE_KOREAN, "ko", "KP" }, // North Korea
++ { LANGUAGE_SWEDISH, "sv", "SE" },
++ { LANGUAGE_SWEDISH_FINLAND, "sv", "FI" },
++ { LANGUAGE_FINNISH, "fi", "FI" },
++ { LANGUAGE_RUSSIAN, "ru", "RU" },
++ { LANGUAGE_ENGLISH_NZ, "en", "NZ" },
++ { LANGUAGE_ENGLISH_EIRE, "en", "IE" },
++ { LANGUAGE_ENGLISH_SAFRICA, "en", "ZA" },
++ { LANGUAGE_DUTCH_BELGIAN, "nl", "BE" },
++ { LANGUAGE_FRENCH_BELGIAN, "fr", "BE" },
++ { LANGUAGE_FRENCH_CANADIAN, "fr", "CA" },
++ { LANGUAGE_FRENCH_SWISS, "fr", "CH" },
++ { LANGUAGE_GERMAN_SWISS, "de", "CH" },
++ { LANGUAGE_GERMAN_AUSTRIAN, "de", "AT" },
++ { LANGUAGE_ITALIAN_SWISS, "it", "CH" },
++ { LANGUAGE_ARABIC, "ar", "" },
++ { LANGUAGE_ARABIC_SAUDI_ARABIA, "ar", "SA" },
++ { LANGUAGE_ARABIC_EGYPT, "ar", "EG" },
++ { LANGUAGE_ARABIC_UAE, "ar", "AE" },
++ { LANGUAGE_AFRIKAANS, "af", "ZA" },
++ { LANGUAGE_ALBANIAN, "sq", "AL" },
++ { LANGUAGE_ARABIC_IRAQ, "ar", "IQ" },
++ { LANGUAGE_ARABIC_LIBYA, "ar", "LY" },
++ { LANGUAGE_ARABIC_ALGERIA, "ar", "DZ" },
++ { LANGUAGE_ARABIC_MOROCCO, "ar", "MA" },
++ { LANGUAGE_ARABIC_TUNISIA, "ar", "TN" },
++ { LANGUAGE_ARABIC_OMAN, "ar", "OM" },
++ { LANGUAGE_ARABIC_YEMEN, "ar", "YE" },
++ { LANGUAGE_ARABIC_SYRIA, "ar", "SY" },
++ { LANGUAGE_ARABIC_JORDAN, "ar", "JO" },
++ { LANGUAGE_ARABIC_LEBANON, "ar", "LB" },
++ { LANGUAGE_ARABIC_KUWAIT, "ar", "KW" },
++ { LANGUAGE_ARABIC_BAHRAIN, "ar", "BH" },
++ { LANGUAGE_ARABIC_QATAR, "ar", "QA" },
++ { LANGUAGE_BASQUE, "eu", "" },
++ { LANGUAGE_BULGARIAN, "bg", "BG" },
++ { LANGUAGE_CROATIAN, "hr", "HR" },
++ { LANGUAGE_CZECH, "cs", "CZ" },
++ { LANGUAGE_CZECH, "cz", "" },
++ { LANGUAGE_ENGLISH_JAMAICA, "en", "JM" },
++ { LANGUAGE_ENGLISH_CARRIBEAN, "en", "BS" }, // not 100%, because AG is Bahamas
++ { LANGUAGE_ENGLISH_BELIZE, "en", "BZ" },
++ { LANGUAGE_ENGLISH_TRINIDAD, "en", "TT" },
++ { LANGUAGE_ENGLISH_ZIMBABWE, "en", "ZW" },
++ { LANGUAGE_ENGLISH_PHILIPPINES, "en", "PH" },
++ { LANGUAGE_ESTONIAN, "et", "EE" },
++ { LANGUAGE_FAEROESE, "fo", "FO" },
++ { LANGUAGE_FARSI, "fa", "" },
++ { LANGUAGE_FRENCH_LUXEMBOURG, "fr", "LU" },
++ { LANGUAGE_FRENCH_MONACO, "fr", "MC" },
++ { LANGUAGE_GERMAN_LUXEMBOURG, "de", "LU" },
++ { LANGUAGE_GERMAN_LIECHTENSTEIN, "de", "LI" },
++ { LANGUAGE_HEBREW, "he", "IL" }, // new: old was "iw"
++ { LANGUAGE_HEBREW, "iw", "IL" }, // old: new is "he"
++ { LANGUAGE_HUNGARIAN, "hu", "HU" },
++ { LANGUAGE_ICELANDIC, "is", "IS" },
++ { LANGUAGE_INDONESIAN, "id", "ID" }, // new: old was "in"
++ { LANGUAGE_INDONESIAN, "in", "ID" }, // old: new is "id"
++ { LANGUAGE_NORWEGIAN, "no", "NO" },
++ { LANGUAGE_NORWEGIAN_BOKMAL, "nb", "NO" },
++ { LANGUAGE_NORWEGIAN_NYNORSK, "nn", "NO" },
++ { LANGUAGE_POLISH, "pl", "PL" },
++ { LANGUAGE_RHAETO_ROMAN, "rm", "" },
++ { LANGUAGE_ROMANIAN, "ro", "RO" },
++ { LANGUAGE_ROMANIAN_MOLDOVA, "ro", "MD" },
++ { LANGUAGE_SLOVAK, "sk", "SK" },
++ { LANGUAGE_SLOVENIAN, "sl", "SI" },
++ { LANGUAGE_SPANISH_MEXICAN, "es", "MX" },
++ { LANGUAGE_SPANISH_GUATEMALA, "es", "GT" },
++ { LANGUAGE_SPANISH_COSTARICA, "es", "CR" },
++ { LANGUAGE_SPANISH_PANAMA, "es", "PA" },
++ { LANGUAGE_SPANISH_DOMINICAN_REPUBLIC, "es", "DO" },
++ { LANGUAGE_SPANISH_VENEZUELA, "es", "VE" },
++ { LANGUAGE_SPANISH_COLOMBIA, "es", "CO" },
++ { LANGUAGE_SPANISH_PERU, "es", "PE" },
++ { LANGUAGE_SPANISH_ARGENTINA, "es", "AR" },
++ { LANGUAGE_SPANISH_ECUADOR, "es", "EC" },
++ { LANGUAGE_SPANISH_CHILE, "es", "CL" },
++ { LANGUAGE_SPANISH_URUGUAY, "es", "UY" },
++ { LANGUAGE_SPANISH_PARAGUAY, "es", "PY" },
++ { LANGUAGE_SPANISH_BOLIVIA, "es", "BO" },
++ { LANGUAGE_SPANISH_EL_SALVADOR, "es", "SV" },
++ { LANGUAGE_SPANISH_HONDURAS, "es", "HN" },
++ { LANGUAGE_SPANISH_NICARAGUA, "es", "NI" },
++ { LANGUAGE_SPANISH_PUERTO_RICO, "es", "PR" },
++ { LANGUAGE_TURKISH, "tr", "TR" },
++ { LANGUAGE_UKRAINIAN, "uk", "UA" },
++ { LANGUAGE_VIETNAMESE, "vi", "VN" },
++ { LANGUAGE_LATVIAN, "lv", "LV" },
++ { LANGUAGE_MACEDONIAN, "mk", "MK" },
++ { LANGUAGE_MALAY, "ms", "" },
++ { LANGUAGE_MALAY_MALAYSIA, "ms", "MY" },
++ { LANGUAGE_MALAY_BRUNEI_DARUSSALAM, "ms", "BN" },
++ { LANGUAGE_THAI, "th", "TH" },
++ { LANGUAGE_LITHUANIAN, "lt", "LT" },
++ { LANGUAGE_LITHUANIAN_CLASSIC, "lt", "LT" },
++ { LANGUAGE_CROATIAN, "hr", "HR" }, // Croatian in Croatia
++ { LANGUAGE_SERBIAN_LATIN, "sh", "YU" }, // Serbo-Croatian in Yugoslavia (default)
++ { LANGUAGE_SERBIAN_LATIN, "sh", "BA" }, // Serbo-Croatian in Bosnia And Herzegovina
++ { LANGUAGE_SERBIAN_CYRILLIC, "sr", "YU" },
++ { LANGUAGE_SERBIAN, "sr", "" }, // SERBIAN is only LID, MS-LCID not defined (was dupe of CROATIAN)
++ { LANGUAGE_ARMENIAN, "hy", "AM" },
++ { LANGUAGE_AZERI, "az", "" },
++ { LANGUAGE_BENGALI, "bn", "BD" },
++ { LANGUAGE_KAZAK, "kk", "KZ" },
++ { LANGUAGE_URDU, "ur", "IN" },
++ { LANGUAGE_HINDI, "hi", "IN" },
++ { LANGUAGE_GUJARATI, "gu", "IN" },
++ { LANGUAGE_KANNADA, "kn", "IN" },
++ { LANGUAGE_ASSAMESE, "as", "IN" },
++ { LANGUAGE_KASHMIRI, "ks", "" },
++ { LANGUAGE_KASHMIRI_INDIA, "ks", "IN" },
++ { LANGUAGE_MALAYALAM, "ml", "IN" },
++ { LANGUAGE_MARATHI, "mr", "IN" },
++ { LANGUAGE_NEPALI, "ne", "NP" },
++ { LANGUAGE_NEPALI_INDIA, "ne", "IN" },
++ { LANGUAGE_ORIYA, "or", "IN" },
++ { LANGUAGE_PUNJABI, "pa", "IN" },
++ { LANGUAGE_SANSKRIT, "sa", "IN" },
++ { LANGUAGE_SINDHI, "sd", "IN" },
++ { LANGUAGE_TAMIL, "ta", "IN" },
++ { LANGUAGE_TELUGU, "te", "IN" },
++ { LANGUAGE_BELARUSIAN, "be", "BY" },
++ { LANGUAGE_CATALAN, "ca", "ES" }, // Spain (default)
++ { LANGUAGE_CATALAN, "ca", "AD" }, // Andorra
++ { LANGUAGE_FRENCH_CAMEROON, "fr", "CM" },
++ { LANGUAGE_FRENCH_COTE_D_IVOIRE, "fr", "CI" },
++ { LANGUAGE_FRENCH_MALI, "fr", "ML" },
++ { LANGUAGE_FRENCH_SENEGAL, "fr", "SN" },
++ { LANGUAGE_FRENCH_ZAIRE, "fr", "CD" }, // Democratic Republic Of Congo
++ { LANGUAGE_FRISIAN_NETHERLANDS, "fy", "NL" },
++ { LANGUAGE_GAELIC_IRELAND, "ga", "IE" },
++ { LANGUAGE_GAELIC_SCOTLAND, "gd", "GB" },
++ { LANGUAGE_GALICIAN, "gl", "ES" },
++ { LANGUAGE_GEORGIAN, "ka", "GE" },
++ { LANGUAGE_KHMER, "km", "KH" },
++ { LANGUAGE_KIRGHIZ, "ky", "KG" },
++ { LANGUAGE_LAO, "lo", "LA" },
++ { LANGUAGE_MALTESE, "mt", "MT" },
++ { LANGUAGE_MONGOLIAN, "mn", "MN" },
++ { LANGUAGE_RUSSIAN_MOLDOVA, "mo", "MD" },
++ { LANGUAGE_SESOTHO, "st", "LS" }, // Lesotho (default)
++ { LANGUAGE_SESOTHO, "st", "ZA" }, // South Africa
++ { LANGUAGE_SWAHILI, "sw", "KE" },
++ { LANGUAGE_TAJIK, "tg", "TJ" },
++ { LANGUAGE_TIBETAN, "bo", "CN" }, // CN politically correct?
++ { LANGUAGE_TSONGA, "ts", "ZA" },
++ { LANGUAGE_TSWANA, "tn", "BW" }, // Botswana (default)
++ { LANGUAGE_TSWANA, "tn", "ZA" }, // South Africa
++ { LANGUAGE_TURKMEN, "tk", "TM" },
++ { LANGUAGE_WELSH, "cy", "GB" },
++ { LANGUAGE_NORTHERNSOTHO, "ns", "ZA" },
++ { LANGUAGE_XHOSA, "xh", "ZA" },
++ { LANGUAGE_ZULU, "zu", "ZA" },
++// { LANGUAGE_ARABIC_SUDAN, "ar", "SD" }, // unknown MS-LCID
++// { LANGUAGE_FRENCH_REUNION, "fr", "" }, // unknown ISO country code
++// { LANGUAGE_FRENCH_WEST_INDIES, "fr", "" }, // unknown ISO country code
++// { LANGUAGE_KONKANI, "kok", "" }, // only ISO639-2 language code
++// { LANGUAGE_MANIPURI, "mni", "" }, // only ISO639-2 language code
++// { LANGUAGE_SAMI_LAPPISH, "", "" }, // unknown ISO code (could be "se_SE", but there is more than one Sami and more than one country)
++// { LANGUAGE_SORBIAN, "wen", "" }, // only ISO639-2 language code and is not used anymore from MS
++// { LANGUAGE_VENDA, "ven", "ZA" }, // only ISO639-2 language code
++// { LANGUAGE_BURMESE "my", "" }, // undetermined ISO country code (could be Burma, Thailand, Yunna, Vietnam)
++ { LANGUAGE_USER_KINYARWANDA, "rw", "RW" },
++ { LANGUAGE_USER_MAORI, "mi", "NZ" },
++ { LANGUAGE_USER_LATIN, "la", "" },
++ { LANGUAGE_USER_ESPERANTO, "eo", "" },
++ { LANGUAGE_DONTKNOW, "", "" } // marks end of table
++};
++#endif
++
++void PrintFontManager::fillFontSupportedLanguages (PrintFont *pFont, void *pLangSetIn)
++{
++#ifdef ENABLE_FONTCONFIG
++ // There really doesn't seem to be a better way to do this than looping over
++ // the entire set of languages that OOo supports, and asking Fontconfig whether
++ // the particular language set contains that language. There's no iterator
++ // for FcLangSet structures that we can use, so what we're doing here is bound
++ // to be inefficient. An API to covert an FcLangSet into an FcStrSet to fix this
++ // problem has been submitted for fontconfig 2.3 and should appear soon.
++
++ FcLangSet *pLangSet = (FcLangSet *)pLangSetIn;
++ IsoLangEntry *pLang = &aIsoLangEntries[0];
++ FontCfgWrapper& rWrapper = FontCfgWrapper::get();
++ std::vector<char*> found_locales;
++
++ if (!pFont || !pLang)
++ return;
++
++#if OSL_DEBUG_LEVEL > 1
++ int i = 0;
++ fprintf (stderr, " Languages supported:");
++#endif
++ while (pLang->meLang != LANGUAGE_DONTKNOW)
++ {
++ char locale[10];
++ bool success = true;
++
++ memset (locale, 0, 10);
++ strncpy (locale, pLang->maLangStr, 3);
++ if (strnlen (pLang->maCountry, 3))
++ {
++ strcat (locale, "-");
++ strncat (locale, pLang->maCountry, 3);
++ }
++
++ if (rWrapper.FcLangSetHasLang (pLangSet, (const FcChar8*)locale) != FcLangEqual)
++ {
++ // Back down to just the language name like "en" or "da"
++ memset (locale, 0, 10);
++ strncpy (locale, pLang->maLangStr, 3);
++ if (rWrapper.FcLangSetHasLang (pLangSet, (const FcChar8*)locale) != FcLangEqual)
++ success = false;
++ }
++
++ if (success)
++ {
++ std::vector<char*>::iterator it = found_locales.begin();
++ std::vector<char*>::iterator end = found_locales.end();
++
++ while ((it != end) && strcmp (*it, locale))
++ it++;
++
++ if (it == end)
++ {
++ char *s = strdup (locale);
++ found_locales.push_back (s);
++
++ pFont->m_aLangs.push_back (pLang->meLang);
++ #if OSL_DEBUG_LEVEL > 1
++ fprintf (stderr, " %s", locale);
++ i++;
++ #endif
++ }
++ }
++
++ pLang++;
++ }
++#if OSL_DEBUG_LEVEL > 1
++ if (!i)
++ fprintf (stderr, " none");
++ fprintf (stderr, "\n");
++#endif
++
++ // Clear out the found locales list
++ while (!found_locales.empty())
++ {
++ free (found_locales.back());
++ found_locales.pop_back();
++ }
++#endif
++}
++
++
+ /*
+ * PrintFontManager::initFontconfig
+ */
+@@ -345,6 +691,7 @@
+ FC_FILE,
+ FC_OUTLINE,
+ FC_INDEX,
++ FC_LANG,
+ NULL );
+ FcPattern* pPattern = rWrapper.FcPatternCreate();
+ FcFontSet* pFSet = rWrapper.FcFontList( pConfig, pPattern, pOSet );
+@@ -364,7 +711,9 @@
+ int spacing = 0;
+ int nCollectionEntry = -1;
+ FcBool outline = false;
+-
++ FcCharSet *charset = NULL;
++ FcLangSet *langset = NULL;
++
+ FcResult eFileRes = rWrapper.FcPatternGetString( pFSet->fonts[i], FC_FILE, 0, &file );
+ FcResult eFamilyRes = rWrapper.FcPatternGetString( pFSet->fonts[i], FC_FAMILY, 0, &family );
+ FcResult eStyleRes = rWrapper.FcPatternGetString( pFSet->fonts[i], FC_STYLE, 0, &style );
+@@ -373,9 +722,19 @@
+ FcResult eSpacRes = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_SPACING, 0, &spacing );
+ FcResult eOutRes = rWrapper.FcPatternGetBool( pFSet->fonts[i], FC_OUTLINE, 0, &outline );
+ FcResult eIndexRes = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_INDEX, 0, &nCollectionEntry );
+-
+- if( eFileRes != FcResultMatch || eFamilyRes != FcResultMatch || eOutRes != FcResultMatch )
++ FcResult eCharSet = rWrapper.FcPatternGetCharSet( pFSet->fonts[i], FC_CHARSET, 0, &charset );
++ FcResult eLangRes = rWrapper.FcPatternGetLangSet( pFSet->fonts[i], FC_LANG, 0, &langset);
++
++ if( eFileRes != FcResultMatch || eFamilyRes != FcResultMatch || eOutRes != FcResultMatch || eLangRes != FcResultMatch )
++ {
++#if 0
++ if (charset)
++ aWrapper.FcCharSetDestroy (charset);
++ if (langset)
++ aWrapper.FcLangSetDestroy (langset);
++#endif
+ continue;
++ }
+
+ #if OSL_DEBUG_LEVEL > 1
+ fprintf( stderr, "found font \"%s\" in file %s\n"
+@@ -504,6 +863,25 @@
+ else if( slant == FC_SLANT_OBLIQUE )
+ pUpdate->m_eItalic = italic::Oblique;
+ }
++ if( (eCharSet == FcResultMatch) && charset)
++ {
++ /* Ok, so we have to call Type1 fonts Unicode, because most
++ * (for example, Luxi Sans) have their encoding set to "FontSpecific"
++ * in their .afm file, which makes OOo decide to call the fonts "symbol"
++ * fonts. That messes up stuff a _lot_. Therefore, call all Type1 fonts
++ * unicode fonts unless they have "ymbol" or "ingbats" in their name.
++ */
++ if ( !strncmp (((const char *)file+strlen((const char *)file)-4), ".pf", 3)
++ && !(strstr((const char *)family, "ymbol") || strstr((const char *)family, "ingbat")) )
++ pUpdate->m_aEncoding = RTL_TEXTENCODING_UNICODE;
++ }
++
++ fillFontSupportedLanguages (pUpdate, langset);
++
++#if 0
++ aWrapper.FcCharSetDestroy (charset);
++ aWrapper.FcLangSetDestroy (langset);
++#endif
+
+ // update font cache
+ m_pFontCache->updateFontCacheEntry( pUpdate, false );
diff --git a/patches/vclplug/fpicker-gnome-filepicker-hxx.diff b/patches/vclplug/fpicker-gnome-filepicker-hxx.diff
index 0d6605948..089fc6f40 100644
--- a/patches/vclplug/fpicker-gnome-filepicker-hxx.diff
+++ b/patches/vclplug/fpicker-gnome-filepicker-hxx.diff
@@ -1,6 +1,6 @@
--- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ fpicker/source/unx/gnome/SalGtkFilePicker.hxx 2004-09-10 14:33:32.000000000 +0530
-@@ -0,0 +1,401 @@
++++ fpicker/source/unx/gnome/SalGtkFilePicker.hxx 2005-03-11 11:44:03.000000000 +0530
+@@ -0,0 +1,404 @@
+/*************************************************************************
+ *
+ * $RCSfile$
@@ -328,6 +328,9 @@
+ FilterList *m_pFilterList;
+ GtkWidget *m_pVBox;
+ GtkWidget *m_pFilterComboBox;
++ GtkWidget *m_pFilterComboLabel;
++ GtkWidget *m_pFilterComboHBox;
++ GtkWidget *m_pFilterComboAlign;
+
+ enum {
+ AUTOEXTENSION,
@@ -361,7 +364,7 @@
+ };
+
+ GtkWidget *m_pHBoxs[ LIST_LAST ];
-+ GtkWidget *m_pAligns[ LIST_LAST ];
++ GtkWidget *m_pAligns[ LIST_LAST ];
+ GtkWidget *m_pLists[ LIST_LAST ];
+ GtkWidget *m_pListLabels[ LIST_LAST ];
+ bool mbListVisibility[ LIST_LAST ];
@@ -377,7 +380,7 @@
+ void implAddFilterGroup( const OUString& rFilter,
+ const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair>& _rFilters );
+
-+ bool bVersionWidthUnset;
++ bool bVersionWidthUnset;
+ sal_Bool mbPreviewState;
+ gulong mHID_Preview;
+ gulong mHID_FolderChange;
@@ -386,9 +389,9 @@
+ sal_Int32 m_PreviewImageWidth;
+ sal_Int32 m_PreviewImageHeight;
+
-+ void HandleSetListValue(GtkComboBox *pWidget, sal_Int16 nControlAction,
-+ const ::com::sun::star::uno::Any& rValue);
-+ ::com::sun::star::uno::Any HandleGetListValue(GtkComboBox *pWidget, sal_Int16 nControlAction) const;
++ void HandleSetListValue(GtkComboBox *pWidget, sal_Int16 nControlAction,
++ const ::com::sun::star::uno::Any& rValue);
++ ::com::sun::star::uno::Any HandleGetListValue(GtkComboBox *pWidget, sal_Int16 nControlAction) const;
+
+ static void preview_toggled_cb (GtkObject *cb, SalGtkFilePicker *pobjFP);
+ static void filter_changed_cb (GtkFileChooser *file_chooser, GParamSpec *pspec, SalGtkFilePicker *pobjFP);
@@ -400,5 +403,5 @@
+ virtual ~SalGtkFilePicker();
+
+};
-+
++/* vi:set tabstop=4 shiftwidth=4 expandtab: */
+#endif // _SALGTKFILEPICKER_HXX_
diff --git a/patches/vclplug/fpicker-gnome-folderpicker-cxx.diff b/patches/vclplug/fpicker-gnome-folderpicker-cxx.diff
index 5aa4a79ad..111f8199f 100644
--- a/patches/vclplug/fpicker-gnome-folderpicker-cxx.diff
+++ b/patches/vclplug/fpicker-gnome-folderpicker-cxx.diff
@@ -1,6 +1,6 @@
--- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ fpicker/source/unx/gnome/SalGtkFolderPicker.cxx 2004-09-10 14:33:32.000000000 +0530
-@@ -0,0 +1,298 @@
++++ fpicker/source/unx/gnome/SalGtkFolderPicker.cxx 2005-03-11 11:44:03.000000000 +0530
+@@ -0,0 +1,300 @@
+/*************************************************************************
+ *
+ * $RCSfile$
@@ -150,8 +150,10 @@
+SalGtkFolderPicker::SalGtkFolderPicker( const uno::Reference<lang::XMultiServiceFactory>& xServiceMgr ) :
+ m_xServiceMgr( xServiceMgr )
+{
-+ m_pDialog = gtk_file_chooser_dialog_new( "Folder Selection", NULL,
-+ GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
++ CResourceProvider aResProvider;
++ m_pDialog = gtk_file_chooser_dialog_new(
++ OUStringToOString( aResProvider.getResString( FOLDERPICKER_TITLE ), RTL_TEXTENCODING_UTF8 ).getStr(),
++ NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL );
+
+ gtk_dialog_set_default_response( GTK_DIALOG (m_pDialog), GTK_RESPONSE_ACCEPT );
@@ -234,8 +236,8 @@
+
+ sal_Int16 retVal = 0;
+
-+ gint nStatus = gtk_dialog_run( GTK_DIALOG( m_pDialog ) );
-+ gtk_widget_hide( m_pDialog );
++ RunDialog aRunInMain(m_pDialog);
++ gint nStatus = aRunInMain.runandwaitforresult();
+ switch( nStatus )
+ {
+ case GTK_RESPONSE_ACCEPT:
diff --git a/patches/vclplug/fpicker-gnome-vfs-utf-8-encode.diff b/patches/vclplug/fpicker-gnome-vfs-utf-8-encode.diff
new file mode 100644
index 000000000..820d952ed
--- /dev/null
+++ b/patches/vclplug/fpicker-gnome-vfs-utf-8-encode.diff
@@ -0,0 +1,156 @@
+Index: fpicker/source/unx/gnome/SalGtkFilePicker.cxx
+===================================================================
+RCS file: /cvs/gsl/fpicker/source/unx/gnome/SalGtkFilePicker.cxx,v
+retrieving revision 1.5
+diff -u -p -r1.5 SalGtkFilePicker.cxx
+--- fpicker/source/unx/gnome/SalGtkFilePicker.cxx 18 Mar 2005 09:48:46 -0000 1.5
++++ fpicker/source/unx/gnome/SalGtkFilePicker.cxx 30 Mar 2005 12:27:00 -0000
+@@ -857,10 +857,8 @@ uno::Sequence<rtl::OUString> SAL_CALL Sa
+ {
+ gchar *path = gtk_file_chooser_get_current_folder_uri(
+ GTK_FILE_CHOOSER( m_pDialog ));
+- nURLOffset = strlen( path );
+- aSelectedFiles[0] = OUString( reinterpret_cast<const sal_Char*>(path),
+- nURLOffset, RTL_TEXTENCODING_UTF8 );
+- ++nURLOffset;
++ nURLOffset = strlen(path) + 1;
++ aSelectedFiles[0] = uritounicode(path);
+ g_free(path);
+ }
+
+@@ -872,9 +870,7 @@ uno::Sequence<rtl::OUString> SAL_CALL Sa
+ {
+ const gchar *path = reinterpret_cast<gchar*>(pPathList->data)
+ + nURLOffset;
+- aSelectedFiles[ nToIndex ] =
+- OUString( reinterpret_cast<const sal_Char*>( path ),
+- strlen( path ), RTL_TEXTENCODING_UTF8 );
++ aSelectedFiles[ nToIndex ] = uritounicode(path);
+
+ if( GTK_FILE_CHOOSER_ACTION_SAVE == eAction )
+ {
+@@ -986,7 +982,7 @@ sal_Int16 SAL_CALL SalGtkFilePicker::exe
+ Sequence < OUString > aPathSeq = getFiles();
+ if( aPathSeq.getLength() == 1 )
+ {
+- OString sFileName = rtl::OUStringToOString( aPathSeq[0], RTL_TEXTENCODING_UTF8 );
++ OString sFileName = unicodetouri( aPathSeq[0] );
+ if( g_file_test( g_filename_from_uri( sFileName.getStr(), NULL, NULL ), G_FILE_TEST_IS_REGULAR ) )
+ {
+ CResourceProvider aResProvider;
+Index: fpicker/source/unx/gnome/SalGtkFolderPicker.cxx
+===================================================================
+RCS file: /cvs/gsl/fpicker/source/unx/gnome/SalGtkFolderPicker.cxx,v
+retrieving revision 1.4
+diff -u -p -r1.4 SalGtkFolderPicker.cxx
+--- fpicker/source/unx/gnome/SalGtkFolderPicker.cxx 18 Mar 2005 09:49:04 -0000 1.4
++++ fpicker/source/unx/gnome/SalGtkFolderPicker.cxx 30 Mar 2005 12:27:00 -0000
+@@ -173,7 +173,7 @@ void SAL_CALL SalGtkFolderPicker::setDis
+ OSL_ASSERT( m_pDialog != NULL );
+ ::vos::OGuard aGuard( Application::GetSolarMutex() );
+
+- OString aTxt = OUStringToOString( aDirectory, RTL_TEXTENCODING_UTF8 );
++ OString aTxt = unicodetouri( aDirectory );
+
+ if( aTxt.lastIndexOf('/') == aTxt.getLength() - 1 )
+ aTxt = aTxt.copy( 0, aTxt.getLength() - 1 );
+@@ -191,9 +191,7 @@ rtl::OUString SAL_CALL SalGtkFolderPicke
+
+ gchar* pCurrentFolder =
+ gtk_file_chooser_get_current_folder_uri( GTK_FILE_CHOOSER( m_pDialog ) );
+- ::rtl::OUString aCurrentFolderName =
+- ::rtl::OUString( const_cast<const sal_Char *>( pCurrentFolder ),
+- strlen( pCurrentFolder ), RTL_TEXTENCODING_UTF8 );
++ ::rtl::OUString aCurrentFolderName = uritounicode(pCurrentFolder);
+ g_free( pCurrentFolder );
+
+ return aCurrentFolderName;
+Index: fpicker/source/unx/gnome/SalGtkPicker.cxx
+===================================================================
+RCS file: /cvs/gsl/fpicker/source/unx/gnome/SalGtkPicker.cxx,v
+retrieving revision 1.5
+diff -u -p -r1.5 SalGtkPicker.cxx
+--- fpicker/source/unx/gnome/SalGtkPicker.cxx 18 Mar 2005 09:49:17 -0000 1.5
++++ fpicker/source/unx/gnome/SalGtkPicker.cxx 30 Mar 2005 12:27:01 -0000
+@@ -90,6 +90,9 @@
+ #ifndef _SALGTKPICKER_HXX_
+ #include "SalGtkPicker.hxx"
+ #endif
++#ifndef _URLOBJ_HXX
++#include <tools/urlobj.hxx>
++#endif
+ #include <stdio.h>
+
+ //------------------------------------------------------------------------
+@@ -101,6 +104,34 @@ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::uno;
+
++rtl::OUString SalGtkPicker::uritounicode(const gchar* pIn)
++{
++ rtl::OUString sURL( const_cast<const sal_Char *>(pIn), strlen(pIn),
++ RTL_TEXTENCODING_UTF8 );
++ INetURLObject aURL(sURL);
++ if (INET_PROT_FILE == aURL.GetProtocol())
++ {
++ gchar *pEncodedFileName = g_filename_from_uri(pIn, NULL, NULL);
++ rtl::OUString sEncoded(pEncodedFileName, strlen(pEncodedFileName), osl_getThreadTextEncoding());
++ INetURLObject aCurrentURL(OUString::createFromAscii("file:///") + sEncoded);
++ aCurrentURL.SetHost(aURL.GetHost());
++ sURL = aCurrentURL.getExternalURL();
++ }
++ return sURL;
++}
++
++rtl::OString SalGtkPicker::unicodetouri(const rtl::OUString &rURL)
++{
++ OString sURL = OUStringToOString(rURL, RTL_TEXTENCODING_UTF8);
++ INetURLObject aURL(rURL);
++ if (INET_PROT_FILE == aURL.GetProtocol())
++ {
++ rtl::OUString sOUURL = aURL.getExternalURL(INetURLObject::DECODE_WITH_CHARSET, osl_getThreadTextEncoding());
++ sURL = OUStringToOString( sOUURL, osl_getThreadTextEncoding());
++ }
++ return sURL;
++}
++
+ gboolean rundialog(RunDialog *pDialog)
+ {
+ pDialog->run();
+@@ -136,7 +167,7 @@ void SAL_CALL SalGtkPicker::implsetDispl
+ OSL_ASSERT( m_pDialog != NULL );
+ ::vos::OGuard aGuard( Application::GetSolarMutex() );
+
+- OString aTxt = OUStringToOString( aDirectory, RTL_TEXTENCODING_UTF8 );
++ OString aTxt = unicodetouri(aDirectory);
+
+ if( aTxt.lastIndexOf('/') == aTxt.getLength() - 1 )
+ aTxt = aTxt.copy( 0, aTxt.getLength() - 1 );
+@@ -154,9 +185,7 @@ rtl::OUString SAL_CALL SalGtkPicker::imp
+
+ gchar* pCurrentFolder =
+ gtk_file_chooser_get_current_folder_uri( GTK_FILE_CHOOSER( m_pDialog ) );
+- ::rtl::OUString aCurrentFolderName =
+- ::rtl::OUString( const_cast<const sal_Char *>( pCurrentFolder ),
+- strlen( pCurrentFolder ), RTL_TEXTENCODING_UTF8 );
++ ::rtl::OUString aCurrentFolderName = uritounicode(pCurrentFolder);
+ g_free( pCurrentFolder );
+
+ return aCurrentFolderName;
+Index: fpicker/source/unx/gnome/SalGtkPicker.hxx
+===================================================================
+RCS file: /cvs/gsl/fpicker/source/unx/gnome/SalGtkPicker.hxx,v
+retrieving revision 1.3
+diff -u -p -r1.3 SalGtkPicker.hxx
+--- fpicker/source/unx/gnome/SalGtkPicker.hxx 18 Mar 2005 09:49:32 -0000 1.3
++++ fpicker/source/unx/gnome/SalGtkPicker.hxx 30 Mar 2005 12:27:01 -0000
+@@ -110,7 +110,8 @@ class SalGtkPicker
+
+ virtual rtl::OUString SAL_CALL implgetDisplayDirectory( )
+ throw( com::sun::star::uno::RuntimeException );
+-
++ static rtl::OUString uritounicode(const gchar *pIn);
++ static rtl::OString unicodetouri(const rtl::OUString &rURL);
+ };
+
+ class RunDialog
diff --git a/patches/vclplug/fpicker-gnome-xml.diff b/patches/vclplug/fpicker-gnome-xml.diff
index 4b017ec45..170f1a09a 100644
--- a/patches/vclplug/fpicker-gnome-xml.diff
+++ b/patches/vclplug/fpicker-gnome-xml.diff
@@ -1,5 +1,5 @@
--- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ fpicker/source/unx/gnome/fps_gnome.xml 2004-09-10 14:33:32.000000000 +0530
++++ fpicker/source/unx/gnome/fps_gnome.xml 2004-09-08 22:39:55.000000000 +0530
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
diff --git a/patches/vclplug/psprint-fontconfigvar.diff b/patches/vclplug/psprint-fontconfigvar.diff
new file mode 100644
index 000000000..c951eae0c
--- /dev/null
+++ b/patches/vclplug/psprint-fontconfigvar.diff
@@ -0,0 +1,11 @@
+--- psprint/source/fontmanager/makefile.mk 2004-03-15 12:03:52.000000000 +0000
++++ psprint-patched/source/fontmanager/makefile.mk 2004-11-25 23:01:53.000000000 +0000
+@@ -72,7 +72,7 @@
+
+ CFLAGS+= -I..$/fontsubset
+
+-.IF "$(ENABLE_FONTCONFIG)" != ""
++.IF "$(FONTCONFIG_FONTS)" != ""
+ CDEFS += -DENABLE_FONTCONFIG
+ .ENDIF
+
diff --git a/patches/vclplug/vcl-nwf-kde-font-resolving.diff b/patches/vclplug/vcl-nwf-kde-font-resolving.diff
new file mode 100644
index 000000000..2142dfa19
--- /dev/null
+++ b/patches/vclplug/vcl-nwf-kde-font-resolving.diff
@@ -0,0 +1,199 @@
+--- vcl/unx/kde/salnativewidgets-kde.cxx 2005-03-24 14:15:25.620450399 +0100
++++ vcl/unx/kde/salnativewidgets-kde.cxx 2005-03-24 15:24:07.582058524 +0100
+@@ -126,6 +126,14 @@
+ #include <iostream>
+ #include <sm.hxx>
+
++#ifndef _OSL_PROCESS_H_
++#include <osl/process.h>
++#endif
++#ifndef _RTL_LOCALE_HXX_
++#include <rtl/locale.hxx>
++#endif
++#include <fontconfig/fontconfig.h>
++
+ using namespace ::rtl;
+
+ /** Cached native widgets.
+@@ -1427,36 +1435,109 @@ static Color readColor( KConfig *pConfig
+ return toColor( pConfig->readColorEntry( pKey ) );
+ }
+
++/*getFontconfigAlias - get the appropriate font the specific locale
++ from font-config
++
++ Cut&paste from the Gtk+ vclplug
++*/
++void getFontconfigAlias( const OUString &aFont)
++{
++ // Unfortunately, OOo is not smart enough to take font coverages into
++ // account when falling back to get the UI font. For example, since the
++ // "Sans" font returned by Fontconfig as the system default gets re-mapped
++ // to an actual font from VCL.xcu, but that font may or may not have the
++ // correct coverage for all locales, we run into a situation where the
++ // locale is ja_JP but the font specified by VCL.xcu doesn't have Japanese
++ // coverage, resulting in no text drawn at all. So, use fontconfig to
++ // return a font that actually can display the current locale's glyphs
++
++ FcPattern * pFcOldFont;
++ FcPattern * pFcNewFont;
++ FcResult result = (FcResult)0; // Matching fails if result is not initialized to 0
++ ByteString aFontName;
++ FcChar8 * pNewFontName = NULL;
++ OLocale loc( osl_getSystemLocale(rtl_LocaleSystemMessages) );
++ ByteString aLocale( UniString(loc.getRawName()), osl_getThreadTextEncoding() );
++
++ aFontName = ByteString(OUStringToOString(aFont, osl_getThreadTextEncoding()));
++
++ pFcOldFont = FcPatternCreate();
++ if ( pFcOldFont )
++ {
++ FcValue aFcValLang;
++ FcValue aFcValName;
++
++ // Since we always want to make sure that the font can display
++ // characters in the current langauge, the font name is added
++ // as a weak value, so that the locale will override it.
++ aFcValLang.type = FcTypeString;
++ aFcValLang.u.s = (FcChar8 *)(aLocale.GetBuffer());
++ aFcValName.type = FcTypeString;
++ aFcValName.u.s = (FcChar8 *)(aFontName.GetBuffer());
++
++ FcPatternAdd( pFcOldFont, FC_LANG, aFcValLang, false );
++ FcPatternAddWeak( pFcOldFont, FC_FAMILY, aFcValName, true );
++
++ FcConfigSubstitute( 0, pFcOldFont, FcMatchPattern );
++ FcDefaultSubstitute( pFcOldFont );
++
++ // Ask fontconfig to pull together a list of fonts that match
++ // our criteria, language coverage first, then font name
++ pFcNewFont = FcFontMatch( NULL, pFcOldFont, &result );
++ if ( (FcResultMatch == result) && pFcNewFont )
++ {
++ // Use the first font that Fontconfig returns
++ result = FcPatternGetString( pFcNewFont, FC_FAMILY, 0, &pNewFontName );
++ if ( FcResultMatch == result )
++ {
++ aFont = rtl::OUString::createFromAscii((sal_Char *)pNewFontName);
++#if OSL_DEBUG_LEVEL > 1
++ fprintf(stderr, "aFont.getStr() = %s\n",
++ OUStringToOString( aFont, RTL_TEXTENCODING_UTF8 ).getStr());
++#endif
++ }
++ }
++
++ if ( pFcNewFont )
++ FcPatternDestroy( pFcNewFont );
++
++ FcPatternDestroy( pFcOldFont );
++ }
++
++ return;
++}
++
+ /** Helper function to add information to Font from QFont.
+ */
+-static void modifyFont( Font &rFont, const QFont &rQFont )
++static Font toFont( const QFont &rQFont )
+ {
+ QFontInfo qFontInfo( rQFont );
+
+- // Prepend the KDE font, do not override
+- OUString aQFontName = String( rQFont.family().utf8(), RTL_TEXTENCODING_UTF8 );
+- OUString aFontName = rFont.GetName();
+-
+- if ( aQFontName.getLength() > 0 &&
+- aFontName.compareTo( aQFontName, aQFontName.getLength() ) != 0 )
+- {
+- OUStringBuffer aBuffer( 1024 );
+- aBuffer.append( aQFontName );
+- aBuffer.appendAscii( ";", 1 );
+- aBuffer.append( aFontName );
+-
+- rFont.SetName( aBuffer.makeStringAndClear() );
+- }
++ // Get the real name of the KDE font
++ OUString aFontName = String( rQFont.family().utf8(), RTL_TEXTENCODING_UTF8 );
++ getFontconfigAlias( aFontName );
+
+ // QFontInfo should give the right point size, but sometimes it does not,
+ // it seems.
+- int nPointSize = qFontInfo.pointSize();
+- if ( nPointSize <= 0 )
+- nPointSize = rQFont.pointSize();
+- if ( nPointSize > 0 )
+- rFont.SetHeight( nPointSize );
++ int nPointHeight = qFontInfo.pointSize();
++ if ( nPointHeight <= 0 )
++ nPointHeight = rQFont.pointSize();
++
++ sal_Int32 nDPIX, nDPIY;
++ sal_Int32 nDispDPIY = GetSalData()->GetDisplay()->GetResolution().B();
++ GetSalData()->GetDisplay()->GetScreenFontResolution( nDPIX, nDPIY );
++
++ int nHeight = nPointHeight * nDispDPIY / nDPIY;
++ // allow for rounding in back conversion (at SetFont)
++ while( (nHeight * nDPIY / nDispDPIY) > nPointHeight )
++ nHeight--;
++ while( (nHeight * nDPIY / nDispDPIY) < nPointHeight )
++ nHeight++;
++
++ // Create the font and set its attributes
++ Font aFont( aFontName, Size( 0, nHeight ) );
+
+- rFont.SetItalic( qFontInfo.italic()? ITALIC_NORMAL: ITALIC_NONE );
++ aFont.SetItalic( qFontInfo.italic()? ITALIC_NORMAL: ITALIC_NONE );
+
+ FontWeight eWeight = WEIGHT_DONTKNOW;
+ int nWeight = qFontInfo.weight();
+@@ -1470,7 +1551,9 @@ static void modifyFont( Font &rFont, con
+ eWeight = WEIGHT_BOLD;
+ else
+ eWeight = WEIGHT_BLACK;
+- rFont.SetWeight( eWeight );
++ aFont.SetWeight( eWeight );
++
++ return aFont;
+ }
+
+ /** Implementation of KDE integration's main method.
+@@ -1514,8 +1597,7 @@ void KDESalFrame::UpdateSettings( AllSet
+ pKey = "titleFont";
+ if ( pConfig->hasKey( pKey ) )
+ {
+- Font aFont= aStyleSettings.GetTitleFont();
+- modifyFont( aFont, pConfig->readFontEntry( pKey ) );
++ Font aFont = toFont( pConfig->readFontEntry( pKey ) );
+ aStyleSettings.SetTitleFont( aFont );
+ bSetTitleFont = true;
+ }
+@@ -1564,8 +1646,7 @@ void KDESalFrame::UpdateSettings( AllSet
+ aStyleSettings.SetHighlightTextColor( toColor( qColorGroup.highlightedText() ) );
+
+ // Font
+- Font aFont= aStyleSettings.GetAppFont();
+- modifyFont( aFont, kapp->font() );
++ Font aFont = toFont( kapp->font() );
+
+ aStyleSettings.SetAppFont( aFont );
+ aStyleSettings.SetHelpFont( aFont );
+@@ -1598,8 +1679,7 @@ void KDESalFrame::UpdateSettings( AllSet
+ aStyleSettings.SetMenuHighlightTextColor( toColor ( qMenuCG.highlightedText() ) );
+
+ // Font
+- Font aFont= aStyleSettings.GetMenuFont();
+- modifyFont( aFont, pMenuBar->font() );
++ Font aFont = toFont( pMenuBar->font() );
+ aStyleSettings.SetMenuFont( aFont );
+ }
+
+@@ -1607,8 +1687,7 @@ void KDESalFrame::UpdateSettings( AllSet
+ KToolBar *pToolBar = qMainWindow.toolBar();
+ if ( pToolBar )
+ {
+- Font aFont= aStyleSettings.GetToolFont();
+- modifyFont( aFont, pToolBar->font() );
++ Font aFont = toFont( pToolBar->font() );
+ aStyleSettings.SetToolFont( aFont );
+ }
+
diff --git a/patches/vclplug/vcl-source-glyphs.diff b/patches/vclplug/vcl-source-glyphs.diff
index b401f7d15..5121c80f1 100644
--- a/patches/vclplug/vcl-source-glyphs.diff
+++ b/patches/vclplug/vcl-source-glyphs.diff
@@ -2,10 +2,11 @@ Index: vcl/source/glyphs/gcach_ftyp.cxx
===================================================================
RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.cxx,v
retrieving revision 1.98.20.2
-diff -u -p -u -r1.98.20.2 gcach_ftyp.cxx
---- vcl/source/glyphs/gcach_ftyp.cxx 28 Jan 2004 15:22:42 -0000 1.98.20.2
-+++ vcl/source/glyphs/gcach_ftyp.cxx 5 Jul 2004 14:01:28 -0000
-@@ -58,13 +59,10 @@
+Index: vcl/source/glyphs/gcach_ftyp.cxx
+===================================================================
+--- vcl/source/glyphs/gcach_ftyp.cxx.orig 2004-09-12 14:46:23.000000000 +0200
++++ vcl/source/glyphs/gcach_ftyp.cxx 2004-09-14 13:53:47.306959408 +0200
+@@ -58,13 +58,10 @@
*
************************************************************************/
@@ -20,7 +21,7 @@ diff -u -p -u -r1.98.20.2 gcach_ftyp.cxx
#include <gcach_ftyp.hxx>
-@@ -72,17 +70,25 @@
+@@ -72,17 +69,25 @@
#include <outfont.hxx>
#include <bitmap.hxx>
#include <bmpacc.hxx>
@@ -53,19 +54,9 @@ diff -u -p -u -r1.98.20.2 gcach_ftyp.cxx
#ifndef FREETYPE_PATCH
// VERSION_MINOR in freetype.h is too coarse
-@@ -251,15 +258,22 @@ void FtFontFile::Unmap()
- // =======================================================================
-
- FtFontInfo::FtFontInfo( const ImplFontData& rFontData,
-- const ::rtl::OString& rNativeFileName, int nFaceNum, int nFontId, int nSynthetic )
--: mpFontFile( FtFontFile::FindFontFile( rNativeFileName ) ),
-+ const ::rtl::OString& rNativeFileName,
-+ int nFaceNum, int nFontId, int nSynthetic,
-+ const unicodeKernMap* pKern
-+ )
-+:
+@@ -258,8 +263,8 @@ FtFontInfo::FtFontInfo( const ImplFontDa
+ : mpFontFile( FtFontFile::FindFontFile( rNativeFileName ) ),
maFontData( rFontData ),
-+ mpFontFile( FtFontFile::FindFontFile( rNativeFileName ) ),
mnFaceNum( nFaceNum ),
- mnFontId( nFontId ),
mnSynthetic( nSynthetic ),
@@ -73,57 +64,7 @@ diff -u -p -u -r1.98.20.2 gcach_ftyp.cxx
maFaceFT( NULL ),
mnRefCount( 0 )
{
-+ if( pKern )
-+ maUnicodeKernPairs = *pKern;
-+
- maFontData.mpSysData = (void*)nFontId;
- maFontData.mpNext = NULL;
-
-@@ -336,6 +350,43 @@ void FtFontInfo::ReleaseFaceFT( FT_FaceR
- }
- }
-
-+void FtFontInfo::CacheGlyphIndex( sal_Unicode cChar, int nGI ) const
-+{
-+ maGlyphMap[ cChar ] = nGI;
-+
-+ if( maUnicodeKernPairs.size() != maGlyphKernPairs.size() )
-+ {
-+ // move kerning to glyph kerning map
-+ unicodeKernMap::const_iterator left_it =
-+ maUnicodeKernPairs.find( cChar );
-+ std::map< sal_Unicode, int >::const_iterator right_it;
-+ for( left_it = maUnicodeKernPairs.begin(); left_it != maUnicodeKernPairs.end(); ++left_it )
-+ {
-+ if( left_it->first == cChar )
-+ {
-+ for( right_it = left_it->second.begin(); right_it != left_it->second.end(); ++right_it )
-+ {
-+ int nRightGlyph = GetGlyphIndex( right_it->first );
-+ if( nRightGlyph != -1 )
-+ maGlyphKernPairs[ nGI ][ nRightGlyph ] = right_it->second;
-+ }
-+ }
-+ else
-+ {
-+ int nLeftGlyph = GetGlyphIndex( left_it->first );
-+ if( nLeftGlyph != -1 )
-+ {
-+ for( right_it = left_it->second.begin(); right_it != left_it->second.end(); ++right_it )
-+ {
-+ if( right_it->first == cChar )
-+ maGlyphKernPairs[ nLeftGlyph ][ nGI ] = right_it->second;
-+ }
-+ }
-+ }
-+ }
-+ }
-+}
-+
- // -----------------------------------------------------------------------
-
- static unsigned GetUInt( const unsigned char* p ) { return((p[0]<<24)+(p[1]<<16)+(p[2]<<8)+p[3]);}
-@@ -382,11 +433,10 @@ const unsigned char* FtFontInfo::GetTabl
+@@ -425,11 +467,10 @@ const unsigned char* FtFontInfo::GetTabl
// =======================================================================
FreetypeManager::FreetypeManager()
@@ -137,28 +78,7 @@ diff -u -p -u -r1.98.20.2 gcach_ftyp.cxx
#ifdef RTLD_DEFAULT // true if a good dlfcn.h header was included
// Get version of freetype library to enable workarounds.
// Freetype <= 2.0.9 does not have FT_Library_Version().
-@@ -449,7 +499,10 @@ void* FreetypeManager::GetFontHandle( in
- // -----------------------------------------------------------------------
-
- void FreetypeManager::AddFontFile( const rtl::OString& rNormalizedName,
-- int nFaceNum, int nFontId, const ImplFontData* pData )
-+ int nFaceNum, int nFontId,
-+ const ImplFontData* pData,
-+ const unicodeKernMap* pKern
-+ )
- {
- if( !rNormalizedName.getLength() )
- return;
-@@ -457,7 +510,7 @@ void FreetypeManager::AddFontFile( const
- if( maFontList.find( nFontId ) != maFontList.end() )
- return;
-
-- FtFontInfo* pFI = new FtFontInfo( *pData, rNormalizedName, nFaceNum, nFontId, 0 );
-+ FtFontInfo* pFI = new FtFontInfo( *pData, rNormalizedName, nFaceNum, nFontId, 0, pKern );
- maFontList[ nFontId ] = pFI;
- if( mnMaxFontId < nFontId )
- mnMaxFontId = nFontId;
-@@ -482,8 +535,8 @@ long FreetypeManager::AddFontDir( const
+@@ -527,8 +568,8 @@ long FreetypeManager::AddFontDir( const
rcOSL = aDirItem.getFileStatus( aFileStatus );
::rtl::OUString aUSytemPath;
@@ -169,7 +89,7 @@ diff -u -p -u -r1.98.20.2 gcach_ftyp.cxx
::rtl::OString aCFileName = rtl::OUStringToOString( aUSytemPath, theEncoding );
const char* pszFontFileName = aCFileName.getStr();
-@@ -556,8 +609,21 @@ long FreetypeManager::FetchFontList( Imp
+@@ -601,8 +642,21 @@ long FreetypeManager::FetchFontList( Imp
for( FontList::const_iterator it(maFontList.begin()); it != maFontList.end(); ++it, ++nCount )
{
const FtFontInfo& rFFI = *it->second;
@@ -193,27 +113,7 @@ diff -u -p -u -r1.98.20.2 gcach_ftyp.cxx
}
return nCount;
-@@ -581,7 +647,7 @@ FreetypeServerFont* FreetypeManager::Cre
- if( it != maFontList.end() )
- {
- FtFontInfo* pFI = it->second;
-- FreetypeServerFont* pFont = new FreetypeServerFont( rFSD, pFI );
-+ FreetypeServerFont* pFont = new FreetypeServerFont( rFSD, pFI, pFI->GetGlyphKernMap(), pFI->GetUnicodeKernMap() );
- return pFont;
- }
-
-@@ -592,8 +658,8 @@ FreetypeServerFont* FreetypeManager::Cre
- // FreetypeServerFont
- // =======================================================================
-
--FreetypeServerFont::FreetypeServerFont( const ImplFontSelectData& rFSD, FtFontInfo* pFI )
--: ServerFont( rFSD ),
-+FreetypeServerFont::FreetypeServerFont( const ImplFontSelectData& rFSD, FtFontInfo* pFI, const glyphKernMap* pKern, const unicodeKernMap* pUniKern )
-+: ServerFont( rFSD, pKern, pUniKern ),
- mpFontInfo( pFI ),
- maFaceFT( NULL ),
- maSizeFT( NULL ),
-@@ -856,23 +944,23 @@ int FreetypeServerFont::ApplyGlyphTransf
+@@ -903,23 +957,23 @@ int FreetypeServerFont::ApplyGlyphTransf
case GF_ROTL: // left
nAngle += 900;
bStretched = (mfStretch != 1.0);
@@ -248,7 +148,7 @@ diff -u -p -u -r1.98.20.2 gcach_ftyp.cxx
break;
}
-@@ -1049,9 +1137,9 @@ void FreetypeServerFont::InitGlyphData(
+@@ -1096,9 +1150,9 @@ void FreetypeServerFont::InitGlyphData(
if( nGlyphFlags & GF_ROTMASK ) { // for bVertical rotated glyphs
const FT_Size_Metrics& rMetrics = maFaceFT->size->metrics;
#if (FTVERSION < 2000)
@@ -260,7 +160,7 @@ diff -u -p -u -r1.98.20.2 gcach_ftyp.cxx
#endif
}
rGD.SetCharWidth( (nCharWidth + 32) >> 6 );
-@@ -1314,34 +1402,6 @@ ULONG FreetypeServerFont::GetFontCodeRan
+@@ -1361,34 +1415,6 @@ ULONG FreetypeServerFont::GetFontCodeRan
{
int nRangeCount = 0;
@@ -295,7 +195,7 @@ diff -u -p -u -r1.98.20.2 gcach_ftyp.cxx
const unsigned char* pCmap = NULL;
ULONG nLength = 0;
if( FT_IS_SFNT( maFaceFT ) )
-@@ -1409,8 +1469,6 @@ ULONG FreetypeServerFont::GetFontCodeRan
+@@ -1456,8 +1482,6 @@ ULONG FreetypeServerFont::GetFontCodeRan
*(pCodes++) = cCode;
}
}
@@ -304,34 +204,10 @@ diff -u -p -u -r1.98.20.2 gcach_ftyp.cxx
return nRangeCount;
}
// -----------------------------------------------------------------------
-@@ -1420,7 +1478,10 @@ ULONG FreetypeServerFont::GetFontCodeRan
- int FreetypeServerFont::GetGlyphKernValue( int nGlyphLeft, int nGlyphRight ) const
- {
- if( maSizeFT )
-+
- pFTActivateSize( maSizeFT );
-+ if( !FT_HAS_KERNING( maFaceFT ) || !FT_IS_SFNT( maFaceFT ) )
-+ return ServerFont::GetGlyphKernValue( nGlyphLeft, nGlyphRight );
-
- FT_Vector aKernVal;
- FT_Error rcFT = FT_Get_Kerning( maFaceFT, nGlyphLeft, nGlyphRight,
-@@ -1438,7 +1499,7 @@ ULONG FreetypeServerFont::GetKernPairs(
-
- *ppKernPairs = NULL;
- if( !FT_HAS_KERNING( maFaceFT ) || !FT_IS_SFNT( maFaceFT ) )
-- return 0;
-+ return ServerFont::GetKernPairs( ppKernPairs );
-
- // first figure out which glyph pairs are involved in kerning
- ULONG nKernLength = 0;
Index: vcl/source/glyphs/gcach_ftyp.hxx
===================================================================
-RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.hxx,v
-retrieving revision 1.24
-retrieving revision 1.27
-diff -u -p -u -r1.24 -r1.27
---- vcl/source/glyphs/gcach_ftyp.hxx 4 Jul 2003 12:51:33 -0000 1.24
-+++ vcl/source/glyphs/gcach_ftyp.hxx 18 May 2004 10:55:11 -0000 1.27
+--- vcl/source/glyphs/gcach_ftyp.hxx.orig 2004-09-12 14:46:23.000000000 +0200
++++ vcl/source/glyphs/gcach_ftyp.hxx 2004-09-14 13:53:47.307959256 +0200
@@ -65,11 +65,15 @@
#include <glyphcache.hxx>
#include <rtl/textcvt.h>
@@ -352,7 +228,7 @@ diff -u -p -u -r1.24 -r1.27
// -----------------------------------------------------------------------
-@@ -87,7 +85,6 @@ public:
+@@ -87,7 +91,6 @@ public:
const unsigned char* GetBuffer() const { return mpFileMap; }
int GetFileSize() const { return mnFileSize; }
const ::rtl::OString* GetFileName() const { return &maNativeFileName; }
@@ -360,72 +236,7 @@ diff -u -p -u -r1.24 -r1.27
private:
FtFontFile( const ::rtl::OString& rNativeFileName );
-@@ -104,7 +101,9 @@ class FtFontInfo
- {
- public:
- FtFontInfo( const ImplFontData&, const ::rtl::OString&,
-- int nFaceNum, int nFontId, int nSynthetic );
-+ int nFaceNum, int nFontId, int nSynthetic,
-+ const unicodeKernMap* pUnicodeKern = NULL
-+ );
-
- const unsigned char* GetTable( const char*, ULONG* pLength=0 ) const;
-
-@@ -121,6 +120,11 @@ public:
-
- int GetGlyphIndex( sal_Unicode cChar ) const;
- void CacheGlyphIndex( sal_Unicode cChar, int nGI ) const;
-+ const glyphKernMap* GetGlyphKernMap() const
-+ { return (maUnicodeKernPairs.size() || maGlyphKernPairs.size()) ? &maGlyphKernPairs : NULL; }
-+ const unicodeKernMap* GetUnicodeKernMap() const
-+ { return maUnicodeKernPairs.size() ? &maUnicodeKernPairs : NULL; }
-+
-
- private:
- ImplFontData maFontData;
-@@ -135,6 +139,9 @@ private:
- // cache unicode->glyphid mapping because looking it up is expensive
- typedef ::std::hash_map<sal_Unicode,int> FIGlyphMap;
- mutable FIGlyphMap maGlyphMap;
-+
-+ mutable glyphKernMap maGlyphKernPairs;
-+ unicodeKernMap maUnicodeKernPairs;
- };
-
- // these two inlines are very important for performance
-@@ -147,11 +154,6 @@ inline int FtFontInfo::GetGlyphIndex( sa
- return -1;
- }
-
--inline void FtFontInfo::CacheGlyphIndex( sal_Unicode cChar, int nGI ) const
--{
-- maGlyphMap[ cChar ] = nGI;
--}
--
- // -----------------------------------------------------------------------
-
- class FreetypeManager
-@@ -162,7 +164,9 @@ public:
-
- long AddFontDir( const String& rUrlName );
- void AddFontFile( const rtl::OString& rNormalizedName,
-- int nFaceNum, int nFontId, const ImplFontData* );
-+ int nFaceNum, int nFontId, const ImplFontData*,
-+ const unicodeKernMap* pKern = NULL
-+ );
- long FetchFontList( ImplDevFontList* ) const;
- void ClearFontList();
-
-@@ -182,7 +186,7 @@ private:
- class FreetypeServerFont : public ServerFont
- {
- public:
-- FreetypeServerFont( const ImplFontSelectData&, FtFontInfo* );
-+ FreetypeServerFont( const ImplFontSelectData&, FtFontInfo*, const glyphKernMap*, const unicodeKernMap* );
- virtual ~FreetypeServerFont();
-
- virtual const ::rtl::OString* GetFontFileName() const { return mpFontInfo->GetFontFileName(); }
-@@ -206,9 +210,10 @@ public:
+@@ -211,9 +222,10 @@ public:
const unsigned char* GetTable( const char* pName, ULONG* pLength )
{ return mpFontInfo->GetTable( pName, pLength ); }
int GetEmUnits() const;
@@ -439,13 +250,9 @@ diff -u -p -u -r1.24 -r1.27
virtual void InitGlyphData( int nGlyphIndex, GlyphData& ) const;
Index: vcl/source/glyphs/gcach_layout.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/source/glyphs/gcach_layout.cxx,v
-retrieving revision 1.23.20.1
-retrieving revision 1.29
-diff -u -p -u -r1.23.20.1 -r1.29
---- vcl/source/glyphs/gcach_layout.cxx 9 Jan 2004 18:13:49 -0000 1.23.20.1
-+++ vcl/source/glyphs/gcach_layout.cxx 25 Jun 2004 17:09:25 -0000 1.29
-@@ -59,30 +59,29 @@
+--- vcl/source/glyphs/gcach_layout.cxx.orig 2004-09-12 14:26:10.000000000 +0200
++++ vcl/source/glyphs/gcach_layout.cxx 2004-09-14 13:53:47.310958800 +0200
+@@ -59,28 +59,27 @@
************************************************************************/
#define ENABLE_ICU_LAYOUT
@@ -483,9 +290,7 @@ diff -u -p -u -r1.23.20.1 -r1.29
#endif
#if OSL_DEBUG_LEVEL > 1
- #include <cstdio>
- #endif
-@@ -446,6 +446,13 @@
+@@ -450,6 +449,13 @@ IcuLayoutEngine::IcuLayoutEngine( Freety
meScriptCode( USCRIPT_INVALID_CODE )
{}
@@ -501,12 +306,8 @@ diff -u -p -u -r1.23.20.1 -r1.29
IcuLayoutEngine::~IcuLayoutEngine()
Index: vcl/source/glyphs/gcach_rbmp.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/source/glyphs/gcach_rbmp.cxx,v
-retrieving revision 1.3
-retrieving revision 1.4
-diff -u -p -u -r1.3 -r1.4
---- vcl/source/glyphs/gcach_rbmp.cxx 13 Dec 2001 14:54:19 -0000 1.3
-+++ vcl/source/glyphs/gcach_rbmp.cxx 6 Jan 2004 13:58:48 -0000 1.4
+--- vcl/source/glyphs/gcach_rbmp.cxx.orig 2004-09-12 14:26:10.000000000 +0200
++++ vcl/source/glyphs/gcach_rbmp.cxx 2004-09-14 13:53:47.311958648 +0200
@@ -64,7 +64,7 @@
//------------------------------------------------------------------------
@@ -518,12 +319,8 @@ diff -u -p -u -r1.3 -r1.4
//------------------------------------------------------------------------
Index: vcl/source/glyphs/gcach_vdev.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/source/glyphs/gcach_vdev.cxx,v
-retrieving revision 1.11
-retrieving revision 1.15
-diff -u -p -u -r1.11 -r1.15
---- vcl/source/glyphs/gcach_vdev.cxx 5 Aug 2002 07:19:22 -0000 1.11
-+++ vcl/source/glyphs/gcach_vdev.cxx 17 Jun 2004 12:21:43 -0000 1.15
+--- vcl/source/glyphs/gcach_vdev.cxx.orig 2004-09-12 14:26:10.000000000 +0200
++++ vcl/source/glyphs/gcach_vdev.cxx 2004-09-14 13:53:47.312958496 +0200
@@ -75,10 +75,6 @@
long VirtDevServerFont::FetchFontList( ImplDevFontList* pToAdd )
@@ -544,7 +341,7 @@ diff -u -p -u -r1.11 -r1.15
return nCount;
}
-@@ -202,13 +197,16 @@ void VirtDevServerFont::InitGlyphData( i
+@@ -202,13 +196,16 @@ void VirtDevServerFont::InitGlyphData( i
vdev.SetFont( aFont );
// get glyph metrics
@@ -564,7 +361,7 @@ diff -u -p -u -r1.11 -r1.15
rGD.SetSize( aRect.GetSize() );
}
-@@ -223,7 +221,7 @@ bool VirtDevServerFont::GetAntialiasAdvi
+@@ -223,7 +220,7 @@ bool VirtDevServerFont::GetAntialiasAdvi
bool VirtDevServerFont::GetGlyphBitmap1( int nGlyphIndex, RawBitmap& ) const
{
@@ -573,7 +370,7 @@ diff -u -p -u -r1.11 -r1.15
// draw bitmap
vdev.SetOutputSizePixel( aSize, TRUE );
vdev.DrawText( Point(0,0)-rGD.GetMetric().GetOffset(), nGlyphIndex );
-@@ -233,9 +231,8 @@ bool VirtDevServerFont::GetGlyphBitmap1(
+@@ -233,9 +230,8 @@ bool VirtDevServerFont::GetGlyphBitmap1(
const Bitmap& rBitmap = vdev.GetBitmap( Point(0,0), aSize );
rGD.SetBitmap( new Bitmap( rBitmap ) );
return true;
@@ -584,7 +381,7 @@ diff -u -p -u -r1.11 -r1.15
}
// -----------------------------------------------------------------------
-@@ -295,9 +292,8 @@ ULONG VirtDevServerFont::GetKernPairs( I
+@@ -295,9 +291,8 @@ ULONG VirtDevServerFont::GetKernPairs( I
bool VirtDevServerFont::GetGlyphOutline( int nGlyphIndex, PolyPolygon& rPolyPoly ) const
{
@@ -595,7 +392,7 @@ diff -u -p -u -r1.11 -r1.15
Font aFont;
aFont.SetName ( GetFontSelData().maName );
aFont.SetStyleName ( GetFontSelData().maStyleName );
-@@ -311,7 +307,7 @@ bool VirtDevServerFont::GetGlyphOutline(
+@@ -311,7 +306,7 @@ bool VirtDevServerFont::GetGlyphOutline(
const bool bOptimize = true;
return vdev.GetGlyphOutline( nGlyphIndex, rPolyPoly, bOptimize );
@@ -606,12 +403,8 @@ diff -u -p -u -r1.11 -r1.15
// =======================================================================
Index: vcl/source/glyphs/gcach_vdev.hxx
===================================================================
-RCS file: /cvs/gsl/vcl/source/glyphs/gcach_vdev.hxx,v
-retrieving revision 1.5
-retrieving revision 1.7
-diff -u -p -u -r1.5 -r1.7
---- vcl/source/glyphs/gcach_vdev.hxx 15 Feb 2002 15:58:57 -0000 1.5
-+++ vcl/source/glyphs/gcach_vdev.hxx 4 Feb 2004 15:59:34 -0000 1.7
+--- vcl/source/glyphs/gcach_vdev.hxx.orig 2004-09-12 14:26:10.000000000 +0200
++++ vcl/source/glyphs/gcach_vdev.hxx 2004-09-14 13:53:47.312958496 +0200
@@ -72,7 +72,7 @@ public:
virtual bool GetGlyphOutline( int nGlyphIndex, PolyPolygon& ) const;
@@ -623,12 +416,8 @@ diff -u -p -u -r1.5 -r1.7
Index: vcl/source/glyphs/glyphcache.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/source/glyphs/glyphcache.cxx,v
-retrieving revision 1.22.40.2
-retrieving revision 1.26
-diff -u -p -u -r1.22.40.2 -r1.26
---- vcl/source/glyphs/glyphcache.cxx 26 Jan 2004 17:23:59 -0000 1.22.40.2
-+++ vcl/source/glyphs/glyphcache.cxx 18 May 2004 10:55:25 -0000 1.26
+--- vcl/source/glyphs/glyphcache.cxx.orig 2004-09-12 14:46:23.000000000 +0200
++++ vcl/source/glyphs/glyphcache.cxx 2004-09-14 13:53:47.313958344 +0200
@@ -88,8 +88,8 @@ GlyphCache::GlyphCache( ULONG nMaxSize )
mnBytesUsed(sizeof(GlyphCache)),
mnLruIndex(0),
@@ -649,22 +438,7 @@ diff -u -p -u -r1.22.40.2 -r1.26
if( pFontData != it->first.mpFontData )
continue;
-@@ -219,10 +219,12 @@ void GlyphCache::AddFontPath( const Stri
- // -----------------------------------------------------------------------
-
- void GlyphCache::AddFontFile( const rtl::OString& rNormalizedName, int nFaceNum,
-- int nFontId, const ImplFontData* pFontData )
-+ int nFontId, const ImplFontData* pFontData,
-+ const unicodeKernMap* pKern
-+ )
- {
- if( mpFtManager )
-- mpFtManager->AddFontFile( rNormalizedName, nFaceNum, nFontId, pFontData );
-+ mpFtManager->AddFontFile( rNormalizedName, nFaceNum, nFontId, pFontData, pKern );
- }
-
- // -----------------------------------------------------------------------
-@@ -337,7 +339,7 @@ void GlyphCache::GarbageCollect()
+@@ -338,7 +338,7 @@ void GlyphCache::GarbageCollect()
FontList::iterator it_next = maFontList.begin(), it;
while( it_next != maFontList.end() )
{
@@ -673,13 +447,7 @@ diff -u -p -u -r1.22.40.2 -r1.26
ServerFont* pSF = it->second;
if( (pSF != NULL)
&& (pSF->GetRefCount() <= 0)
-@@ -401,15 +403,17 @@ inline void GlyphCache::RemovingGlyph( S
- // ServerFont
- // =======================================================================
-
--ServerFont::ServerFont( const ImplFontSelectData& rFSD )
-+ServerFont::ServerFont( const ImplFontSelectData& rFSD, const glyphKernMap* pKern, const unicodeKernMap* pUniKern )
- : maFontSelData(rFSD),
+@@ -407,8 +407,8 @@ ServerFont::ServerFont( const ImplFontSe
mnExtInfo(0),
mnRefCount(1),
mnBytesUsed( sizeof(ServerFont) ),
@@ -687,80 +455,9 @@ diff -u -p -u -r1.22.40.2 -r1.26
mpPrevGCFont( NULL ),
+ mpNextGCFont( NULL ),
nCos( 0x10000),
-- nSin( 0)
-+ nSin( 0),
-+ mpKernPairs( pKern ),
-+ mpUnicodeKernPairs( pUniKern )
- {
- if( rFSD.mnOrientation != 0 )
- {
-@@ -440,6 +444,65 @@ long ServerFont::Release() const
-
- // -----------------------------------------------------------------------
-
-+int ServerFont::GetGlyphKernValue( int left, int right ) const
-+{
-+ int kern = 0;
-+ if( mpKernPairs )
-+ {
-+ std::map< int, std::map< int, int > >::const_iterator left_it =
-+ mpKernPairs->find( left );
-+ if( left_it != mpKernPairs->end() )
-+ {
-+ std::map< int, int >::const_iterator right_it = left_it->second.find( right );
-+ if( right_it != left_it->second.end() )
-+ kern = right_it->second;
-+ }
-+ }
-+ return kern*(maFontSelData.mnWidth ? maFontSelData.mnWidth : maFontSelData.mnHeight)/1000;
-+}
-+
-+// -----------------------------------------------------------------------
-+
-+ULONG ServerFont::GetKernPairs( struct ImplKernPairData** ppKernPairs ) const
-+{
-+ int nKernEntry = 0;
-+ unicodeKernMap::const_iterator left_it;
-+ std::map< sal_Unicode, int >::const_iterator right_it;
-+ if( mpUnicodeKernPairs )
-+ {
-+ // count the kern entries
-+ for( left_it = mpUnicodeKernPairs->begin(); left_it != mpUnicodeKernPairs->end(); ++left_it )
-+ {
-+ nKernEntry += left_it->second.size();
-+ }
-+ }
-+
-+ // allocate kern pair table
-+ if( nKernEntry )
-+ {
-+ *ppKernPairs = new ImplKernPairData[ nKernEntry ];
-+
-+ // fill in kern pairs
-+ nKernEntry = 0;
-+ for( left_it = mpUnicodeKernPairs->begin(); left_it != mpUnicodeKernPairs->end(); ++left_it )
-+ {
-+ for( right_it = left_it->second.begin(); right_it != left_it->second.end(); ++right_it )
-+ {
-+ (*ppKernPairs)[ nKernEntry ].mnChar1 = (USHORT)left_it->first;
-+ (*ppKernPairs)[ nKernEntry ].mnChar2 = (USHORT)right_it->first;
-+ (*ppKernPairs)[ nKernEntry ].mnKern = right_it->second*(maFontSelData.mnWidth ? maFontSelData.mnWidth : maFontSelData.mnHeight)/1000;
-+ nKernEntry++;
-+ }
-+ }
-+ }
-+ else
-+ *ppKernPairs = NULL;
-+
-+ return (ULONG)nKernEntry;
-+}
-+
-+// -----------------------------------------------------------------------
-+
- GlyphData& ServerFont::GetGlyphData( int nGlyphIndex )
- {
- // usually the GlyphData is cached
-@@ -465,7 +528,7 @@ void ServerFont::GarbageCollect( long nM
+ nSin( 0),
+ mpKernPairs( pKern ),
+@@ -527,7 +586,7 @@ void ServerFont::GarbageCollect( long nM
GlyphList::iterator it_next = maGlyphList.begin(), it;
while( it_next != maGlyphList.end() )
{
@@ -771,13 +468,9 @@ diff -u -p -u -r1.22.40.2 -r1.26
{
Index: vcl/source/glyphs/makefile.mk
===================================================================
-RCS file: /cvs/gsl/vcl/source/glyphs/makefile.mk,v
-retrieving revision 1.5
-retrieving revision 1.6
-diff -u -p -u -r1.5 -r1.6
---- vcl/source/glyphs/makefile.mk 15 Feb 2002 15:52:27 -0000 1.5
-+++ vcl/source/glyphs/makefile.mk 6 Jan 2004 14:00:38 -0000 1.6
-@@ -76,11 +76,9 @@ TARGET=glyphs
+--- vcl/source/glyphs/makefile.mk.orig 2004-09-12 14:26:10.000000000 +0200
++++ vcl/source/glyphs/makefile.mk 2004-09-14 13:53:47.314958192 +0200
+@@ -77,11 +77,9 @@ CFLAGS += $(FREETYPE_CFLAGS)
SLOFILES=\
$(SLO)$/glyphcache.obj \
$(SLO)$/gcach_rbmp.obj \
diff --git a/patches/vclplug/vcl-unx-source-gdi.diff b/patches/vclplug/vcl-unx-source-gdi.diff
index 29d649121..7989f4d08 100644
--- a/patches/vclplug/vcl-unx-source-gdi.diff
+++ b/patches/vclplug/vcl-unx-source-gdi.diff
@@ -3,9 +3,10 @@ Index: vcl/unx/source/gdi/cdeint.cxx
RCS file: /cvs/gsl/vcl/unx/source/gdi/cdeint.cxx,v
retrieving revision 1.8
retrieving revision 1.9
-diff -u -p -u -r1.8 -r1.9
---- vcl/unx/source/gdi/cdeint.cxx 24 Jun 2002 15:53:02 -0000 1.8
-+++ vcl/unx/source/gdi/cdeint.cxx 18 Nov 2003 14:44:27 -0000 1.9
+Index: vcl/unx/source/gdi/cdeint.cxx
+===================================================================
+--- vcl/unx/source/gdi/cdeint.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/cdeint.cxx 2004-09-14 14:09:32.367288400 +0200
@@ -64,14 +64,12 @@
#include <salunx.h>
#include <saldisp.hxx>
@@ -24,12 +25,8 @@ diff -u -p -u -r1.8 -r1.9
mnRefCount++;
Index: vcl/unx/source/gdi/dtint.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/dtint.cxx,v
-retrieving revision 1.16.82.1
-retrieving revision 1.22
-diff -u -p -u -r1.16.82.1 -r1.22
---- vcl/unx/source/gdi/dtint.cxx 15 Jan 2004 12:52:24 -0000 1.16.82.1
-+++ vcl/unx/source/gdi/dtint.cxx 10 May 2004 15:58:19 -0000 1.22
+--- vcl/unx/source/gdi/dtint.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/dtint.cxx 2004-09-14 14:09:32.371287792 +0200
@@ -72,10 +72,8 @@
#include <cdeint.hxx>
#endif
@@ -143,7 +140,7 @@ diff -u -p -u -r1.16.82.1 -r1.22
void DtIntegrator::GetSystemLook( AllSettings& rSettings )
{
--}
+ }
-
-Color DtIntegrator::parseColor( const ByteString& rLine )
-{
@@ -563,15 +560,11 @@ diff -u -p -u -r1.16.82.1 -r1.22
- rSettings.SetMouseSettings( aMouseSettings );
- rSettings.SetStyleSettings( aStyleSettings );
- }
- }
+-}
Index: vcl/unx/source/gdi/gcach_xpeer.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/gcach_xpeer.cxx,v
-retrieving revision 1.32.18.1
-retrieving revision 1.37
-diff -u -p -u -r1.32.18.1 -r1.37
---- vcl/unx/source/gdi/gcach_xpeer.cxx 9 Jan 2004 18:14:01 -0000 1.32.18.1
-+++ vcl/unx/source/gdi/gcach_xpeer.cxx 4 Feb 2004 11:05:23 -0000 1.37
+--- vcl/unx/source/gdi/gcach_xpeer.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/gcach_xpeer.cxx 2004-09-14 14:09:32.372287640 +0200
@@ -61,6 +61,7 @@
#include <rtl/ustring.hxx>
@@ -643,12 +636,8 @@ diff -u -p -u -r1.32.18.1 -r1.37
rGlyphData.SetOffset( +maRawBitmap.mnXOffset, +maRawBitmap.mnYOffset );
Index: vcl/unx/source/gdi/kdeint.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/kdeint.cxx,v
-retrieving revision 1.10
-retrieving revision 1.12
-diff -u -p -u -r1.10 -r1.12
---- vcl/unx/source/gdi/kdeint.cxx 16 Jul 2003 17:46:57 -0000 1.10
-+++ vcl/unx/source/gdi/kdeint.cxx 6 Jan 2004 14:37:00 -0000 1.12
+--- vcl/unx/source/gdi/kdeint.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/kdeint.cxx 2004-09-14 14:09:32.373287488 +0200
@@ -60,18 +60,18 @@
************************************************************************/
@@ -691,12 +680,8 @@ diff -u -p -u -r1.10 -r1.12
if( pTryFiles[i][0] == '~' )
Index: vcl/unx/source/gdi/makefile.mk
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/makefile.mk,v
-retrieving revision 1.9
-retrieving revision 1.13
-diff -u -p -u -r1.9 -r1.13
---- vcl/unx/source/gdi/makefile.mk 27 Aug 2002 14:52:35 -0000 1.9
-+++ vcl/unx/source/gdi/makefile.mk 10 May 2004 15:58:32 -0000 1.13
+--- vcl/unx/source/gdi/makefile.mk.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/makefile.mk 2004-09-14 14:09:32.374287336 +0200
@@ -80,24 +80,29 @@ dummy:
.ELSE # "$(GUIBASE)"!="unx"
@@ -733,21 +718,19 @@ diff -u -p -u -r1.9 -r1.13
.IF "$(USE_XPRINT)" == "TRUE"
CFLAGS+=-D_USE_PRINT_EXTENSION_=1
-@@ -113,8 +118,6 @@ ENVCFLAGS+=-DUSE_CDE
-
- .IF "$(USE_BUILTIN_RASTERIZER)" != ""
+@@ -115,8 +120,6 @@ ENVCFLAGS+=-DUSE_CDE
SLOFILES+= $(SLO)$/gcach_xpeer.obj
--.ENDIF
--
.ENDIF
+-.ENDIF
+-
.ENDIF # "$(GUIBASE)"!="unx"
+
+ # --- Targets ------------------------------------------------------
Index: vcl/unx/source/gdi/pspgraphics.cxx
===================================================================
-RCS file: vcl/unx/source/gdi/pspgraphics.cxx
-diff -N vcl/unx/source/gdi/pspgraphics.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ vcl/unx/source/gdi/pspgraphics.cxx 17 Jun 2004 12:28:07 -0000 1.4
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ vcl/unx/source/gdi/pspgraphics.cxx 2004-09-14 14:09:32.377286880 +0200
@@ -0,0 +1,1355 @@
+/*************************************************************************
+ *
@@ -2106,12 +2089,8 @@ diff -N vcl/unx/source/gdi/pspgraphics.cxx
+}
Index: vcl/unx/source/gdi/salbmp.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/salbmp.cxx,v
-retrieving revision 1.8.274.1
-retrieving revision 1.14
-diff -u -p -u -r1.8.274.1 -r1.14
---- vcl/unx/source/gdi/salbmp.cxx 15 Jan 2004 12:52:46 -0000 1.8.274.1
-+++ vcl/unx/source/gdi/salbmp.cxx 22 Jun 2004 17:42:38 -0000 1.14
+--- vcl/unx/source/gdi/salbmp.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/salbmp.cxx 2004-09-14 14:09:32.382286120 +0200
@@ -59,20 +59,18 @@
*
************************************************************************/
@@ -2638,12 +2617,8 @@ diff -u -p -u -r1.8.274.1 -r1.14
{
Index: vcl/unx/source/gdi/salgdi.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/salgdi.cxx,v
-retrieving revision 1.24.120.2
-retrieving revision 1.33
-diff -u -p -u -r1.24.120.2 -r1.33
---- vcl/unx/source/gdi/salgdi.cxx 15 Jan 2004 12:53:28 -0000 1.24.120.2
-+++ vcl/unx/source/gdi/salgdi.cxx 22 Jun 2004 17:42:18 -0000 1.33
+--- vcl/unx/source/gdi/salgdi.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/salgdi.cxx 2004-09-14 14:09:32.386285512 +0200
@@ -59,14 +59,22 @@
*
************************************************************************/
@@ -3951,12 +3926,8 @@ diff -u -p -u -r1.24.120.2 -r1.33
-
Index: vcl/unx/source/gdi/salgdi2.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/salgdi2.cxx,v
-retrieving revision 1.18.68.1
-retrieving revision 1.25
-diff -u -p -u -r1.18.68.1 -r1.25
---- vcl/unx/source/gdi/salgdi2.cxx 15 Jan 2004 12:53:52 -0000 1.18.68.1
-+++ vcl/unx/source/gdi/salgdi2.cxx 22 Jun 2004 17:42:46 -0000 1.25
+--- vcl/unx/source/gdi/salgdi2.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/salgdi2.cxx 2004-09-14 14:09:32.406282472 +0200
@@ -59,9 +59,6 @@
*
************************************************************************/
@@ -5315,12 +5286,8 @@ diff -u -p -u -r1.18.68.1 -r1.25
Index: vcl/unx/source/gdi/salgdi3.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/salgdi3.cxx,v
-retrieving revision 1.105.46.5
-retrieving revision 1.119
-diff -u -p -u -r1.105.46.5 -r1.119
---- vcl/unx/source/gdi/salgdi3.cxx 13 Feb 2004 14:03:54 -0000 1.105.46.5
-+++ vcl/unx/source/gdi/salgdi3.cxx 17 Jun 2004 12:29:09 -0000 1.119
+--- vcl/unx/source/gdi/salgdi3.cxx.orig 2004-09-12 14:46:23.000000000 +0200
++++ vcl/unx/source/gdi/salgdi3.cxx 2004-09-14 14:11:55.218571704 +0200
@@ -59,10 +59,6 @@
*
************************************************************************/
@@ -5664,7 +5631,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
for( int nStart = 0; rSalLayout.GetNextGlyphs( 1, &nGlyph, aPos, nStart ); )
{
Pixmap aStipple = aX11GlyphPeer.GetPixmap( rFont, nGlyph );
-@@ -1124,186 +1015,27 @@ void SalGraphicsData::DrawServerSimpleFo
+@@ -1124,200 +1015,27 @@ void SalGraphicsData::DrawServerSimpleFo
//--------------------------------------------------------------------------
@@ -5733,10 +5700,24 @@ diff -u -p -u -r1.105.46.5 -r1.119
- // apply pair kerning to prev glyph if requested
- if( SAL_LAYOUT_KERNING_PAIRS & rArgs.mnFlags )
- {
-- // TODO: get kerning value from printer
-- int nKern = 0; //GetGlyphKernValue( nOldGlyphId, nGlyphIndex );
-- nGlyphWidth += nKern;
-- aPrevItem.mnNewWidth = nGlyphWidth;
+- if( nOldGlyphId > 0 )
+- {
+- const std::list< psp::KernPair >& rKernPairs = mrPrinterGfx.getKernPairs(mbVertical);
+- for( std::list< psp::KernPair >::const_iterator it = rKernPairs.begin();
+- it != rKernPairs.end(); ++it )
+- {
+- if( it->first == nOldGlyphId && it->second == nGlyphIndex )
+- {
+- int nTextScale = mrPrinterGfx.GetFontWidth();
+- if( ! nTextScale )
+- nTextScale = mrPrinterGfx.GetFontHeight();
+- int nKern = (mbVertical ? it->kern_y : it->kern_x) * nTextScale;
+- nGlyphWidth += nKern;
+- aPrevItem.mnNewWidth = nGlyphWidth;
+- break;
+- }
+- }
+- }
- }
-
- // finish previous glyph
@@ -5866,7 +5847,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
else
{
// draw complex text
-@@ -1326,35 +1058,7 @@ void SalGraphicsData::DispatchServerFont
+@@ -1340,35 +1058,7 @@ void SalGraphicsData::DispatchServerFont
//--------------------------------------------------------------------------
@@ -5903,7 +5884,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
const Point& rPoint, const sal_Unicode* pStr, int nLength )
{
Display* pDisplay = GetXDisplay();
-@@ -1383,8 +1087,9 @@ void SalGraphicsData::DrawStringUCS2MB(
+@@ -1397,8 +1087,9 @@ void SalGraphicsData::DrawStringUCS2MB(
{
XTextItem16 *pTextItem = (XTextItem16*)alloca( nLength * sizeof(XTextItem16) );
XChar2b *pMBChar = (XChar2b*)pStr;
@@ -5914,7 +5895,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
{
rtl_TextEncoding nEnc;
XFontStruct* pFontStruct = rFont.GetFontStruct( pStr[nChar], &nEnc );
-@@ -1406,15 +1111,13 @@ void SalGraphicsData::DrawStringUCS2MB(
+@@ -1420,15 +1111,13 @@ void SalGraphicsData::DrawStringUCS2MB(
//--------------------------------------------------------------------------
@@ -5931,7 +5912,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
if( mXFont[0] )
nPairs = mXFont[0]->GetFontCodeRanges( pCodePairs );
return nPairs;
-@@ -1449,204 +1152,32 @@ CheckNoNegativeCoordinateWorkaround()
+@@ -1463,204 +1152,32 @@ CheckNoNegativeCoordinateWorkaround()
//
// ----------------------------------------------------------------------------
@@ -5990,29 +5971,29 @@ diff -u -p -u -r1.105.46.5 -r1.119
{
-#ifndef _USE_PRINT_EXTENSION_
- if (maGraphicsData.m_pPrinterGfx != NULL)
-- {
++ if( nTextColor_ != nSalColor )
+ {
- psp::PrinterColor aColor (SALCOLOR_RED (nSalColor),
- SALCOLOR_GREEN (nSalColor),
- SALCOLOR_BLUE (nSalColor));
- maGraphicsData.m_pPrinterGfx->SetTextColor (aColor);
-- }
++ nTextColor_ = nSalColor;
++ nTextPixel_ = GetPixel( nSalColor );
++ bFontGC_ = FALSE;
+ }
- else
- {
-#endif
-
- if( _GetTextColor() != nSalColor )
-+ if( nTextColor_ != nSalColor )
- {
+- {
- _GetTextColor() = nSalColor;
- _GetTextPixel() = _GetPixel( nSalColor );
- _IsFontGC() = FALSE;
- }
-
-#ifndef _USE_PRINT_EXTENSION_
-+ nTextColor_ = nSalColor;
-+ nTextPixel_ = GetPixel( nSalColor );
-+ bFontGC_ = FALSE;
- }
+- }
-#endif
}
@@ -6149,7 +6130,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
{
// inform font manager
rtl::OUString aUSystemPath;
-@@ -1662,7 +1193,7 @@ ImplFontData* SalGraphics::AddTempDevFon
+@@ -1676,7 +1193,7 @@ ImplFontData* SalGraphics::AddTempDevFon
psp::FastPrintFontInfo aInfo;
rMgr.getFontFastInfo( nFontId, aInfo );
ImplFontData* pFontData = new ImplFontData;
@@ -6158,7 +6139,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
pFontData->maName = rFontName;
pFontData->mnQuality += 5800;
-@@ -1676,148 +1207,83 @@ ImplFontData* SalGraphics::AddTempDevFon
+@@ -1690,164 +1207,82 @@ ImplFontData* SalGraphics::AddTempDevFon
// ----------------------------------------------------------------------------
@@ -6167,35 +6148,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
{
-#ifndef _USE_PRINT_EXTENSION_
- if (maGraphicsData.m_pJobData != NULL)
-+ XlfdStorage* pFonts = GetDisplay()->GetXlfdList();
-+
-+ for ( int nIdx = 0; nIdx < pFonts->GetCount(); nIdx++ )
-+ {
-+ ImplFontData *pFontData = new ImplFontData;
-+ pFonts->Get(nIdx)->ToImplFontData( pFontData );
-+ if( pFontData->maName.CompareIgnoreCaseToAscii( "itc ", 4 ) == COMPARE_EQUAL )
-+ pFontData->maName = pFontData->maName.Copy( 4 );
-+ pFontData->mbSubsettable = FALSE;
-+ pFontData->mbEmbeddable = FALSE;
-+ pList->Add( pFontData );
-+ }
-+
-+ aX11GlyphPeer.SetDisplay( GetXDisplay(),
-+ GetDisplay()->GetVisual()->GetVisual() );
-+#ifdef MACOSX
-+ GlyphCache::EnsureInstance( aX11GlyphPeer, true );
-+#else
-+ GlyphCache::EnsureInstance( aX11GlyphPeer, false );
-+#endif
-+ GlyphCache& rGC = GlyphCache::GetInstance();
-+
-+ const psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
-+ ::std::list< psp::fontID > aList;
-+ ::std::list< psp::fontID >::iterator it;
-+ rMgr.getFontList( aList );
-+ unicodeKernMap aKernTab;
-+ for( it = aList.begin(); it != aList.end(); ++it )
- {
+- {
- const char* pLangBoost = NULL;
- const LanguageType aLang = Application::GetSettings().GetUILanguage();
- switch( aLang )
@@ -6225,39 +6178,17 @@ diff -u -p -u -r1.105.46.5 -r1.119
-
- ::std::list< psp::fontID >::iterator it;
- for (it = aList.begin(); it != aList.end(); ++it)
-+ psp::FastPrintFontInfo aInfo;
-+ if( rMgr.getFontFastInfo( *it, aInfo ) )
- {
+- {
- psp::FastPrintFontInfo aInfo;
- if (rMgr.getFontFastInfo (*it, aInfo))
-+ if( aInfo.m_eType == psp::fonttype::Builtin )
-+ continue;
-+ ImplFontData aFontData;
-+ PspGraphics::SetImplFontData( aInfo, aFontData );
-+ // prefer builtin_rasterizer fonts
-+ aFontData.mnQuality += 4096;
-+ // prefer truetype fonts
-+ if( aInfo.m_eType == psp::fonttype::TrueType )
-+ aFontData.mnQuality += 1000;
-+ int nFaceNum = rMgr.getFontFaceNumber( aInfo.m_nID );
-+ if( aFontData.maName.CompareIgnoreCaseToAscii( "itc ", 4 ) == COMPARE_EQUAL )
-+ aFontData.maName = aFontData.maName.Copy( 4 );
-+ if( nFaceNum < 0 )
-+ nFaceNum = 0;
-+
-+
-+ const unicodeKernMap* pKernTab = NULL;
-+ if( aInfo.m_eType == psp::fonttype::Type1 )
- {
+- {
- ImplFontData *pFontData = new ImplFontData;
- SetImplFontData( aInfo, *pFontData );
- pFontData->mpSysData = (void*)*it;
- if( pFontData->maName.CompareIgnoreCaseToAscii( "itc ", 4 ) == COMPARE_EQUAL )
- pFontData->maName = pFontData->maName.Copy( 4 );
- if( aInfo.m_eType == psp::fonttype::TrueType )
-+ const std::list< psp::KernPair >& rKernPairs = rMgr.getKernPairs( *it );
-+ if( rKernPairs.size() )
- {
+- {
- // prefer truetype fonts
- pFontData->mnQuality += 10;
- // asian type 1 fonts are not known
@@ -6270,29 +6201,35 @@ diff -u -p -u -r1.105.46.5 -r1.119
- if( pLangBoost && aFileName.Copy( nPos+1, 3 ).EqualsIgnoreCaseAscii( pLangBoost ) )
- pFontData->mnQuality += 10;
- }
-+ aKernTab.clear();
-+ for( std::list< psp::KernPair >::const_iterator it = rKernPairs.begin();
-+ it != rKernPairs.end(); ++it )
-+ aKernTab[ it->first ][ it->second ] = it->kern_x;
-+ pKernTab = & aKernTab;
- }
+- }
- pList->Add( pFontData );
- }
-+
-+ // handling of alias names is done by GlyphCache::FetchFontList
-+ rGC.AddFontFile( rMgr.getFontFileSysPath( aInfo.m_nID ), nFaceNum,
-+ aInfo.m_nID, &aFontData, pKernTab );
- }
- }
+- }
+- }
+- }
- else
-#endif
- {
- XlfdStorage* pFonts = _GetDisplay()->GetXlfdList();
-
+-
- for ( int nIdx = 0; nIdx < pFonts->GetCount(); nIdx++ )
- {
- ImplFontData *pFontData = new ImplFontData;
--#ifdef MACOSX
++ XlfdStorage* pFonts = GetDisplay()->GetXlfdList();
++
++ for ( int nIdx = 0; nIdx < pFonts->GetCount(); nIdx++ )
++ {
++ ImplFontData *pFontData = new ImplFontData;
++ pFonts->Get(nIdx)->ToImplFontData( pFontData );
++ if( pFontData->maName.CompareIgnoreCaseToAscii( "itc ", 4 ) == COMPARE_EQUAL )
++ pFontData->maName = pFontData->maName.Copy( 4 );
++ pFontData->mbSubsettable = FALSE;
++ pFontData->mbEmbeddable = FALSE;
++ pList->Add( pFontData );
++ }
++
++ aX11GlyphPeer.SetDisplay( GetXDisplay(),
++ GetDisplay()->GetVisual()->GetVisual() );
+ #ifdef MACOSX
- // don't use bitmap X fonts on OS X
- if ( pFonts->Get(nIdx)->GetFontType() != TYPE_RASTER )
-#endif
@@ -6311,17 +6248,31 @@ diff -u -p -u -r1.105.46.5 -r1.119
- maGraphicsData.GetDisplay()->GetVisual()->GetVisual() );
-#ifdef MACOSX
- GlyphCache::EnsureInstance( aX11GlyphPeer, true );
--#else
++ GlyphCache::EnsureInstance( aX11GlyphPeer, true );
+ #else
- GlyphCache::EnsureInstance( aX11GlyphPeer, false );
--#endif
++ GlyphCache::EnsureInstance( aX11GlyphPeer, false );
+ #endif
- GlyphCache& rGC = GlyphCache::GetInstance();
-
- const psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
- ::std::list< psp::fontID > aList;
- ::std::list< psp::fontID >::iterator it;
- rMgr.getFontList( aList );
+- unicodeKernMap aKernTab;
- for( it = aList.begin(); it != aList.end(); ++it )
-- {
++ GlyphCache& rGC = GlyphCache::GetInstance();
++
++ const psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
++ ::std::list< psp::fontID > aList;
++ ::std::list< psp::fontID >::iterator it;
++ rMgr.getFontList( aList );
++ unicodeKernMap aKernTab;
++ for( it = aList.begin(); it != aList.end(); ++it )
++ {
++ psp::FastPrintFontInfo aInfo;
++ if( rMgr.getFontFastInfo( *it, aInfo ) )
+ {
- psp::FastPrintFontInfo aInfo;
- if( rMgr.getFontFastInfo( *it, aInfo ) )
- {
@@ -6339,14 +6290,58 @@ diff -u -p -u -r1.105.46.5 -r1.119
- aFontData.maName = aFontData.maName.Copy( 4 );
- if( nFaceNum < 0 )
- nFaceNum = 0;
++ if( aInfo.m_eType == psp::fonttype::Builtin )
++ continue;
++ ImplFontData aFontData;
++ PspGraphics::SetImplFontData( aInfo, aFontData );
++ // prefer builtin_rasterizer fonts
++ aFontData.mnQuality += 4096;
++ // prefer truetype fonts
++ if( aInfo.m_eType == psp::fonttype::TrueType )
++ aFontData.mnQuality += 1000;
++ int nFaceNum = rMgr.getFontFaceNumber( aInfo.m_nID );
++ if( aFontData.maName.CompareIgnoreCaseToAscii( "itc ", 4 ) == COMPARE_EQUAL )
++ aFontData.maName = aFontData.maName.Copy( 4 );
++ if( nFaceNum < 0 )
++ nFaceNum = 0;
++
+
+- const unicodeKernMap* pKernTab = NULL;
+- if( aInfo.m_eType == psp::fonttype::Type1 )
++ const unicodeKernMap* pKernTab = NULL;
++ if( aInfo.m_eType == psp::fonttype::Type1 )
++ {
++ const std::list< psp::KernPair >& rKernPairs = rMgr.getKernPairs( *it );
++ if( rKernPairs.size() )
+ {
+- const std::list< psp::KernPair >& rKernPairs = rMgr.getKernPairs( *it );
+- if( rKernPairs.size() )
+- {
+- aKernTab.clear();
+- for( std::list< psp::KernPair >::const_iterator it = rKernPairs.begin();
+- it != rKernPairs.end(); ++it )
+- aKernTab[ it->first ][ it->second ] = it->kern_x;
+- pKernTab = & aKernTab;
+- }
++ aKernTab.clear();
++ for( std::list< psp::KernPair >::const_iterator it = rKernPairs.begin();
++ it != rKernPairs.end(); ++it )
++ aKernTab[ it->first ][ it->second ] = it->kern_x;
++ pKernTab = & aKernTab;
+ }
+-
- rGC.AddFontFile( rMgr.getFontFileSysPath( aInfo.m_nID ), nFaceNum,
-- aInfo.m_nID, &aFontData );
-- }
-- }
+- aInfo.m_nID, &aFontData, pKernTab );
+ }
++
++ // handling of alias names is done by GlyphCache::FetchFontList
++ rGC.AddFontFile( rMgr.getFontFileSysPath( aInfo.m_nID ), nFaceNum,
++ aInfo.m_nID, &aFontData, pKernTab );
+ }
-
- rGC.FetchFontList( pList );
-#endif // USE_BUILTIN_RASTERIZER
-- }
+ }
+ rGC.FetchFontList( pList );
}
@@ -6369,7 +6364,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
}
// ----------------------------------------------------------------------------
-@@ -1831,136 +1297,53 @@ sal_DivideNeg( long n1, long n2 )
+@@ -1861,136 +1296,53 @@ sal_DivideNeg( long n1, long n2 )
// ----------------------------------------------------------------------------
void
@@ -6517,7 +6512,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
if( !pSF )
return FALSE;
-@@ -1972,13 +1355,13 @@ BOOL SalGraphics::GetGlyphBoundRect( lon
+@@ -2002,13 +1354,13 @@ BOOL SalGraphics::GetGlyphBoundRect( lon
// ---------------------------------------------------------------------------
@@ -6533,7 +6528,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
if( !pSF )
return FALSE;
-@@ -1991,29 +1374,13 @@ BOOL SalGraphics::GetGlyphOutline( long
+@@ -2021,29 +1373,13 @@ BOOL SalGraphics::GetGlyphOutline( long
//--------------------------------------------------------------------------
@@ -6565,7 +6560,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
else if( mXFont[ nFallbackLevel ] )
pLayout = new X11FontLayout( *mXFont[ nFallbackLevel ] );
else
-@@ -2024,18 +1391,10 @@ SalLayout* SalGraphicsData::GetTextLayou
+@@ -2054,18 +1390,10 @@ SalLayout* SalGraphicsData::GetTextLayou
//--------------------------------------------------------------------------
@@ -6586,7 +6581,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
sal_uInt8* pEncoding,
sal_Int32* pWidths,
int nGlyphs,
-@@ -2049,41 +1408,7 @@ BOOL SalGraphics::CreateFontSubset(
+@@ -2079,41 +1407,7 @@ BOOL SalGraphics::CreateFontSubset(
// which this method was created). The correct way would
// be to have the GlyphCache search for the ImplFontData pFont
psp::fontID aFont = (psp::fontID)pFont->mpSysData;
@@ -6629,7 +6624,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
#else
return FALSE;
#endif
-@@ -2091,7 +1416,7 @@ BOOL SalGraphics::CreateFontSubset(
+@@ -2121,7 +1415,7 @@ BOOL SalGraphics::CreateFontSubset(
//--------------------------------------------------------------------------
@@ -6638,7 +6633,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
{
#ifndef _USE_PRINT_EXTENSION_
// in this context the sysdata member of pFont should
-@@ -2100,61 +1425,7 @@ const void* SalGraphics::GetEmbedFontDat
+@@ -2130,61 +1424,7 @@ const void* SalGraphics::GetEmbedFontDat
// which this method was created). The correct way would
// be to have the GlyphCache search for the ImplFontData pFont
psp::fontID aFont = (psp::fontID)pFont->mpSysData;
@@ -6701,7 +6696,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
#else
return NULL;
#endif
-@@ -2162,14 +1433,16 @@ const void* SalGraphics::GetEmbedFontDat
+@@ -2192,14 +1432,16 @@ const void* SalGraphics::GetEmbedFontDat
//--------------------------------------------------------------------------
@@ -6721,7 +6716,7 @@ diff -u -p -u -r1.105.46.5 -r1.119
{
#ifndef _USE_PRINT_EXTENSION_
// in this context the sysdata member of pFont should
-@@ -2178,17 +1451,7 @@ const std::map< sal_Unicode, sal_Int32 >
+@@ -2208,17 +1450,7 @@ const std::map< sal_Unicode, sal_Int32 >
// which this method was created). The correct way would
// be to have the GlyphCache search for the ImplFontData pFont
psp::fontID aFont = (psp::fontID)pFont->mpSysData;
@@ -6742,10 +6737,8 @@ diff -u -p -u -r1.105.46.5 -r1.119
#endif
Index: vcl/unx/source/gdi/salnativewidgets-kde.cxx
===================================================================
-RCS file: vcl/unx/source/gdi/salnativewidgets-kde.cxx
-diff -N vcl/unx/source/gdi/salnativewidgets-kde.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ vcl/unx/source/gdi/salnativewidgets-kde.cxx 10 May 2004 15:59:25 -0000 1.2
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ vcl/unx/source/gdi/salnativewidgets-kde.cxx 2004-09-14 14:09:32.421280192 +0200
@@ -0,0 +1,1633 @@
+/*************************************************************************
+ *
@@ -8382,12 +8375,8 @@ diff -N vcl/unx/source/gdi/salnativewidgets-kde.cxx
+/* vim: set tabstop=8 shiftwidth=4: */
Index: vcl/unx/source/gdi/salogl.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/salogl.cxx,v
-retrieving revision 1.7
-retrieving revision 1.11
-diff -u -p -u -r1.7 -r1.11
---- vcl/unx/source/gdi/salogl.cxx 15 Apr 2003 16:10:05 -0000 1.7
-+++ vcl/unx/source/gdi/salogl.cxx 10 May 2004 15:59:38 -0000 1.11
+--- vcl/unx/source/gdi/salogl.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/salogl.cxx 2004-09-14 14:09:32.422280040 +0200
@@ -59,8 +59,6 @@
*
************************************************************************/
@@ -8679,12 +8668,8 @@ diff -u -p -u -r1.7 -r1.11
int nVisuals )
Index: vcl/unx/source/gdi/salprnpsp.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/salprnpsp.cxx,v
-retrieving revision 1.27.40.2
-retrieving revision 1.33
-diff -u -p -u -r1.27.40.2 -r1.33
---- vcl/unx/source/gdi/salprnpsp.cxx 28 Jan 2004 15:25:52 -0000 1.27.40.2
-+++ vcl/unx/source/gdi/salprnpsp.cxx 10 May 2004 15:59:51 -0000 1.33
+--- vcl/unx/source/gdi/salprnpsp.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/salprnpsp.cxx 2004-09-14 14:09:32.426279432 +0200
@@ -79,14 +79,14 @@
#ifndef _SV_JOBSET_H
#include <jobset.h>
@@ -9256,12 +9241,8 @@ diff -u -p -u -r1.27.40.2 -r1.33
Index: vcl/unx/source/gdi/salvd.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/salvd.cxx,v
-retrieving revision 1.4
-retrieving revision 1.8
-diff -u -p -u -r1.4 -r1.8
---- vcl/unx/source/gdi/salvd.cxx 27 Mar 2003 17:58:52 -0000 1.4
-+++ vcl/unx/source/gdi/salvd.cxx 10 May 2004 16:00:04 -0000 1.8
+--- vcl/unx/source/gdi/salvd.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/salvd.cxx 2004-09-14 14:09:32.427279280 +0200
@@ -59,9 +59,6 @@
*
************************************************************************/
@@ -9484,12 +9465,8 @@ diff -u -p -u -r1.4 -r1.8
}
Index: vcl/unx/source/gdi/xfont.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/xfont.cxx,v
-retrieving revision 1.29.82.2
-retrieving revision 1.36
-diff -u -p -u -r1.29.82.2 -r1.36
---- vcl/unx/source/gdi/xfont.cxx 26 Jan 2004 17:26:20 -0000 1.29.82.2
-+++ vcl/unx/source/gdi/xfont.cxx 17 Jun 2004 12:29:36 -0000 1.36
+--- vcl/unx/source/gdi/xfont.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/xfont.cxx 2004-09-14 14:09:32.428279128 +0200
@@ -76,8 +76,11 @@
#ifndef _SV_OUTFONT_HXX
#include <outfont.hxx>
@@ -9514,7 +9491,7 @@ diff -u -p -u -r1.29.82.2 -r1.36
mpRangeCodes(NULL),
mnRangeCount(-1)
{
-@@ -434,7 +438,7 @@ ExtendedFontStruct::GetDefaultWidth()
+@@ -437,7 +440,7 @@ ExtendedFontStruct::GetDefaultWidth()
// is compatible with iso8859-X at least in the range to 0x7f
sal_Size
ExtendedFontStruct::GetCharWidth8( sal_Unicode nFrom, sal_Unicode nTo,
@@ -9523,7 +9500,7 @@ diff -u -p -u -r1.29.82.2 -r1.36
{
if ( !(nFrom <= nTo) )
return 0;
-@@ -477,7 +481,7 @@ ExtendedFontStruct::GetCharWidth8( sal_U
+@@ -480,7 +483,7 @@ ExtendedFontStruct::GetCharWidth8( sal_U
// Handle utf16 encoded fonts, which do not require conversion
sal_Size
ExtendedFontStruct::GetCharWidthUTF16( sal_Unicode nFrom, sal_Unicode nTo,
@@ -9532,7 +9509,7 @@ diff -u -p -u -r1.29.82.2 -r1.36
{
if ( !(nFrom <= nTo) )
return 0;
-@@ -523,7 +527,7 @@ ExtendedFontStruct::GetCharWidthUTF16( s
+@@ -526,7 +529,7 @@ ExtendedFontStruct::GetCharWidthUTF16( s
// font in fontstruct, 8 and 16 bit fonts are handled the same way
sal_Size
ExtendedFontStruct::GetCharWidth16( sal_Unicode nFrom, sal_Unicode nTo,
@@ -9541,7 +9518,7 @@ diff -u -p -u -r1.29.82.2 -r1.36
{
if ( nFrom > nTo )
return 0;
-@@ -608,8 +612,8 @@ ExtendedFontStruct::GetCharWidth16( sal_
+@@ -611,8 +614,8 @@ ExtendedFontStruct::GetCharWidth16( sal_
}
sal_Size
@@ -9552,7 +9529,7 @@ diff -u -p -u -r1.29.82.2 -r1.36
{
sal_Size nConverted = 0;
-@@ -707,7 +711,9 @@ bool X11FontLayout::LayoutText( ImplLayo
+@@ -710,7 +713,9 @@ bool X11FontLayout::LayoutText( ImplLayo
{
Point aNewPos( 0, 0 );
bool bRightToLeft;
@@ -9563,7 +9540,7 @@ diff -u -p -u -r1.29.82.2 -r1.36
{
sal_Unicode cChar = rArgs.mpStr[ nCharPos ];
if( bRightToLeft )
-@@ -722,7 +728,7 @@ bool X11FontLayout::LayoutText( ImplLayo
+@@ -725,7 +730,7 @@ bool X11FontLayout::LayoutText( ImplLayo
nGlyphIndex = 0; // drop NotDef fallback glyphs
}
@@ -9572,7 +9549,7 @@ diff -u -p -u -r1.29.82.2 -r1.36
mrFont.GetCharWidth( cChar, &nPhysGlyphWidth, &nLogGlyphWidth );
int nGlyphFlags = (nPhysGlyphWidth > 0) ? 0 : GlyphItem::IS_IN_CLUSTER;
if( bRightToLeft )
-@@ -753,7 +759,7 @@ void X11FontLayout::DrawText( SalGraphic
+@@ -756,7 +761,7 @@ void X11FontLayout::DrawText( SalGraphic
int nMaxGlyphs = GetOrientation() ? 1 : MAXGLYPHS;
Point aPos;
@@ -9581,7 +9558,7 @@ diff -u -p -u -r1.29.82.2 -r1.36
sal_Unicode pStr[ MAXGLYPHS ];
for( int nStart=0;;)
{
-@@ -764,7 +770,7 @@ void X11FontLayout::DrawText( SalGraphic
+@@ -767,7 +772,7 @@ void X11FontLayout::DrawText( SalGraphic
for( int i = 0; i < nGlyphCount; ++i )
pStr[ i ] = aGlyphAry[ i ] & GF_IDXMASK;
@@ -9592,12 +9569,8 @@ diff -u -p -u -r1.29.82.2 -r1.36
Index: vcl/unx/source/gdi/xlfd_attr.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/xlfd_attr.cxx,v
-retrieving revision 1.14
-retrieving revision 1.15
-diff -u -p -u -r1.14 -r1.15
---- vcl/unx/source/gdi/xlfd_attr.cxx 12 Jun 2003 08:19:39 -0000 1.14
-+++ vcl/unx/source/gdi/xlfd_attr.cxx 6 Jan 2004 14:41:47 -0000 1.15
+--- vcl/unx/source/gdi/xlfd_attr.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/xlfd_attr.cxx 2004-09-14 14:09:32.433278368 +0200
@@ -120,10 +120,12 @@ Attribute::Compare( const char *p, int n
const rtl::OString&
Attribute::GetKey ()
@@ -9614,12 +9587,8 @@ diff -u -p -u -r1.14 -r1.15
Index: vcl/unx/source/gdi/xlfd_extd.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/xlfd_extd.cxx,v
-retrieving revision 1.16.46.2
-retrieving revision 1.21
-diff -u -p -u -r1.16.46.2 -r1.21
---- vcl/unx/source/gdi/xlfd_extd.cxx 26 Jan 2004 17:26:45 -0000 1.16.46.2
-+++ vcl/unx/source/gdi/xlfd_extd.cxx 30 Mar 2004 13:43:43 -0000 1.21
+--- vcl/unx/source/gdi/xlfd_extd.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/xlfd_extd.cxx 2004-09-14 14:09:32.435278064 +0200
@@ -652,7 +652,7 @@ ScalableBitmapXlfd::ToString( ByteString
rString += '-';
rString += ByteString::CreateFromInt32( rInfo.mnResolutionY );
@@ -9733,12 +9702,8 @@ diff -u -p -u -r1.16.46.2 -r1.21
AppendAttribute( mpFactory->RetrieveCharset(rInfo.mnCharset), rString );
Index: vcl/unx/source/gdi/xlfd_extd.hxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/xlfd_extd.hxx,v
-retrieving revision 1.9.120.2
-retrieving revision 1.12
-diff -u -p -u -r1.9.120.2 -r1.12
---- vcl/unx/source/gdi/xlfd_extd.hxx 26 Jan 2004 17:27:37 -0000 1.9.120.2
-+++ vcl/unx/source/gdi/xlfd_extd.hxx 17 Mar 2004 10:07:56 -0000 1.12
+--- vcl/unx/source/gdi/xlfd_extd.hxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/xlfd_extd.hxx 2004-09-14 14:09:32.435278064 +0200
@@ -93,8 +93,8 @@ class XlfdStorage;
class ExtendedXlfd {
@@ -9752,12 +9717,8 @@ diff -u -p -u -r1.9.120.2 -r1.12
ExtendedXlfd();
Index: vcl/unx/source/gdi/xlfd_smpl.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/xlfd_smpl.cxx,v
-retrieving revision 1.5
-retrieving revision 1.7
-diff -u -p -u -r1.5 -r1.7
---- vcl/unx/source/gdi/xlfd_smpl.cxx 15 Apr 2003 16:11:23 -0000 1.5
-+++ vcl/unx/source/gdi/xlfd_smpl.cxx 18 May 2004 13:49:24 -0000 1.7
+--- vcl/unx/source/gdi/xlfd_smpl.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/xlfd_smpl.cxx 2004-09-14 14:09:32.436277912 +0200
@@ -282,12 +282,12 @@ Xlfd::ToString( ByteString &rString ) co
AppendAttribute( mpFactory->RetrieveSetwidth(mnSetwidth), rString );
AppendAttribute( mpFactory->RetrieveAddstyle(mnAddstyle), rString );
@@ -9779,12 +9740,8 @@ diff -u -p -u -r1.5 -r1.7
Index: vcl/unx/source/gdi/xprintext.cxx
===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/xprintext.cxx,v
-retrieving revision 1.6
-retrieving revision 1.8
-diff -u -p -u -r1.6 -r1.8
---- vcl/unx/source/gdi/xprintext.cxx 15 Apr 2003 16:11:42 -0000 1.6
-+++ vcl/unx/source/gdi/xprintext.cxx 30 Mar 2004 13:43:56 -0000 1.8
+--- vcl/unx/source/gdi/xprintext.cxx.orig 2004-09-12 14:26:04.000000000 +0200
++++ vcl/unx/source/gdi/xprintext.cxx 2004-09-14 14:09:32.437277760 +0200
@@ -59,8 +59,6 @@
*
************************************************************************/
diff --git a/src/openabout_mandrakelinux.bmp b/src/openabout_mandrakelinux.bmp
new file mode 100644
index 000000000..a936b8982
--- /dev/null
+++ b/src/openabout_mandrakelinux.bmp
Binary files differ
diff --git a/src/openintro_ark.bmp b/src/openintro_ark.bmp
new file mode 100644
index 000000000..14c256e61
--- /dev/null
+++ b/src/openintro_ark.bmp
Binary files differ