diff options
author | Jan Holesovsky <kendy@suse.cz> | 2011-03-23 16:58:56 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@suse.cz> | 2011-03-23 16:58:56 +0100 |
commit | 1dc1e72f738e02f6025c0b619ca6947b367f4a26 (patch) | |
tree | 515f3addeb75791f706fcee40319570c0b51228b | |
parent | ec4883a4f4b9e64bf2594d362ca1831eaa740f42 (diff) | |
parent | dff4613b22cf811fdeb732ed527e0b113c2259aa (diff) |
Merge commit 'ooo/DEV300_m103'
Conflicts:
jfreereport/java/flute/makefile.mk
jfreereport/java/libbase/makefile.mk
jfreereport/java/libfonts/makefile.mk
jfreereport/java/libformula/makefile.mk
jfreereport/java/libloader/makefile.mk
jfreereport/java/librepository/makefile.mk
jfreereport/java/libserializer/makefile.mk
jfreereport/java/libxml/makefile.mk
jfreereport/java/sac/makefile.mk
mysqlc/source/mysqlc_connection.cxx
mysqlc/source/mysqlc_connection.hxx
mysqlc/source/mysqlc_databasemetadata.cxx
mysqlc/source/mysqlc_databasemetadata.hxx
mysqlc/source/mysqlc_driver.cxx
mysqlc/source/mysqlc_driver.hxx
mysqlc/source/mysqlc_general.hxx
mysqlc/source/mysqlc_preparedstatement.hxx
mysqlc/source/mysqlc_resultsetmetadata.hxx
mysqlc/source/mysqlc_statement.hxx
sdext/source/minimizer/impoptimizer.cxx
sdext/source/pdfimport/config/description.xml
sdext/source/pdfimport/tree/drawtreevisiting.cxx
sdext/source/presenter/PresenterWindowManager.cxx
swext/prj/build.lst
63 files changed, 1937 insertions, 644 deletions
diff --git a/jfreereport/java/flute/makefile.mk b/jfreereport/java/flute/makefile.mk index ffe668c..c25bd99 100644 --- a/jfreereport/java/flute/makefile.mk +++ b/jfreereport/java/flute/makefile.mk @@ -29,27 +29,27 @@ PRJ=..$/.. PRJNAME=jfreereport TARGET=flute -VERSION=-1.3.0 # --- Settings ----------------------------------------------------- .INCLUDE : settings.mk .INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk .IF "$(SOLAR_JAVA)" != "" # --- Files -------------------------------------------------------- .IF "$(L10N_framework)"=="" -TARFILE_NAME=$(TARGET) -TARFILE_MD5=f3e2febd267c8e4b13df00dac211dd6d -TARFILE_ROOTDIR=$(TARGET) -# PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch -# CONVERTFILES=build.xml - +TARFILE_NAME=$(TARGET)-$(FLUTE_VERSION) +TARFILE_MD5=d8bd5eed178db6e2b18eeed243f85aa8 +# TARFILE_ROOTDIR=$(TARGET) +TARFILE_IS_FLAT=true +PATCH_FILES=$(PACKAGE_DIR)$/$(TARGET).patch +CONVERTFILES=common_build.xml .IF "$(JAVACISGCJ)"=="yes" JAVA_HOME= .EXPORT : JAVA_HOME -BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(FLUTE_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar .ELSE BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar .ENDIF @@ -65,9 +65,15 @@ BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" .IF "$(SOLAR_JAVA)" != "" .INCLUDE : tg_ext.mk .IF "$(L10N_framework)"=="" -ALLTAR : $(CLASSDIR)$/$(TARGET)$(VERSION).jar -$(CLASSDIR)$/$(TARGET)$(VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) - $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/$(TARGET).jar $(CLASSDIR)$/$(TARGET)$(VERSION).jar +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(FLUTE_VERSION).jar + +$(PACKAGE_DIR)$/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)$/patches$/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(FLUTE_VERSION)/g' > $(PACKAGE_DIR)$/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)$/so_converted_$(TARGET).dummy + +$(CLASSDIR)$/$(TARGET)-$(FLUTE_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/dist$/$(TARGET)-$(FLUTE_VERSION).jar $(CLASSDIR)$/$(TARGET)-$(FLUTE_VERSION).jar .ENDIF .ENDIF diff --git a/jfreereport/java/jfreereport/makefile.mk b/jfreereport/java/jfreereport/makefile.mk index cd815d2..fb082f9 100644 --- a/jfreereport/java/jfreereport/makefile.mk +++ b/jfreereport/java/jfreereport/makefile.mk @@ -29,21 +29,20 @@ PRJ=..$/.. PRJNAME=jfreereport TARGET=flow-engine -VERSION=-0.9.2 # --- Settings ----------------------------------------------------- .INCLUDE : settings.mk .INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk .IF "$(SOLAR_JAVA)" != "" # --- Files -------------------------------------------------------- .IF "$(L10N_framework)"=="" -TARFILE_NAME=core -TARFILE_MD5=d4c4d91ab3a8e52a2e69d48d34ef4df4 -TARFILE_ROOTDIR=core +TARFILE_NAME=$(TARGET)-$(FLOW_ENGINE_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=ba2930200c9f019c2d93a8c88c651a0f PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch -# ADDITIONAL_FILES=MANIFEST.MF CONVERTFILES=build.xml .IF "$(JAVACISGCJ)"=="yes" @@ -64,8 +63,8 @@ BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" .IF "$(SOLAR_JAVA)" != "" .INCLUDE : tg_ext.mk .IF "$(L10N_framework)"=="" -ALLTAR : $(CLASSDIR)$/$(TARGET)$(VERSION).jar -$(CLASSDIR)$/$(TARGET)$(VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) - $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/$(TARGET).jar $(CLASSDIR)$/$(TARGET)$(VERSION).jar +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(FLOW_ENGINE_VERSION).jar +$(CLASSDIR)$/$(TARGET)-$(FLOW_ENGINE_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/$(TARGET).jar $(CLASSDIR)$/$(TARGET)-$(FLOW_ENGINE_VERSION).jar .ENDIF .ENDIF diff --git a/jfreereport/java/libbase/makefile.mk b/jfreereport/java/libbase/makefile.mk index 15197e0..eed5a62 100644 --- a/jfreereport/java/libbase/makefile.mk +++ b/jfreereport/java/libbase/makefile.mk @@ -29,26 +29,27 @@ PRJ=..$/.. PRJNAME=jfreereport TARGET=libbase -VERSION=-1.0.0 # --- Settings ----------------------------------------------------- .INCLUDE : settings.mk .INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk .IF "$(SOLAR_JAVA)" != "" # --- Files -------------------------------------------------------- -TARFILE_NAME=$(TARGET) -TARFILE_MD5=8ea307d71d11140574bfb9fcc2487e33 -TARFILE_ROOTDIR=$(TARGET) +TARFILE_NAME=$(TARGET)-$(LIBBASE_VERSION) +TARFILE_MD5=eeb2c7ddf0d302fba4bfc6e97eac9624 +#TARFILE_ROOTDIR=$(TARGET) +TARFILE_IS_FLAT=true -# PATCH_FILES=$(PRJ)$/patches$/libbase.patch -# CONVERTFILES=build.xml +PATCH_FILES=$(PACKAGE_DIR)$/$(TARGET).patch +CONVERTFILES=common_build.xml .IF "$(JAVACISGCJ)"=="yes" JAVA_HOME= .EXPORT : JAVA_HOME -BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBBASE_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar .ELSE BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar .ENDIF @@ -64,8 +65,13 @@ BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" .IF "$(L10N_framework)"=="" .INCLUDE : tg_ext.mk -ALLTAR : $(CLASSDIR)$/$(TARGET)$(VERSION).jar +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(LIBBASE_VERSION).jar +$(PACKAGE_DIR)$/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)$/patches$/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(LIBBASE_VERSION)/g' > $(PACKAGE_DIR)$/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)$/so_converted_$(TARGET).dummy + # XCLASSPATH/CLASSPATH does not work and we only can give lib once. But # the build.xmls fortunately take *.jar out of lib so we can copy our # commons-logging.jar here - yes, even in the system-apache commons case. @@ -79,7 +85,7 @@ $(CLASSDIR)$/commons-logging.jar : $(COPY) $(COMMONS_LOGGING_JAR) $(CLASSDIR)$/commons-logging.jar .ENDIF -$(CLASSDIR)$/$(TARGET)$(VERSION).jar : $(CLASSDIR)$/commons-logging.jar $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) - $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/$(TARGET).jar $(CLASSDIR)$/$(TARGET)$(VERSION).jar +$(CLASSDIR)$/$(TARGET)-$(LIBBASE_VERSION).jar : $(CLASSDIR)$/commons-logging.jar $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/dist$/$(TARGET)-$(LIBBASE_VERSION).jar $(CLASSDIR)$/$(TARGET)-$(LIBBASE_VERSION).jar .ENDIF .ENDIF diff --git a/jfreereport/java/libfonts/makefile.mk b/jfreereport/java/libfonts/makefile.mk index cd2ff34..a14bc88 100644 --- a/jfreereport/java/libfonts/makefile.mk +++ b/jfreereport/java/libfonts/makefile.mk @@ -29,26 +29,26 @@ PRJ=..$/.. PRJNAME=jfreereport TARGET=libfonts -VERSION=-1.0.0 # --- Settings ----------------------------------------------------- .INCLUDE : settings.mk .INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk .IF "$(SOLAR_JAVA)" != "" # --- Files -------------------------------------------------------- .IF "$(L10N_framework)"=="" -TARFILE_NAME=$(TARGET) -TARFILE_MD5=f7925ba8491fe570e5164d2c72791358 -TARFILE_ROOTDIR=$(TARGET) -PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch -CONVERTFILES=build.xml +TARFILE_NAME=$(TARGET)-$(LIBFONTS_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=3bdf40c0d199af31923e900d082ca2dd +PATCH_FILES=$(PACKAGE_DIR)$/$(TARGET).patch +CONVERTFILES=common_build.xml .IF "$(JAVACISGCJ)"=="yes" JAVA_HOME= .EXPORT : JAVA_HOME -BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBFONTS_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar .ELSE BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar .ENDIF @@ -63,9 +63,15 @@ BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" .IF "$(SOLAR_JAVA)" != "" .INCLUDE : tg_ext.mk -ALLTAR : $(CLASSDIR)$/$(TARGET)$(VERSION).jar -$(CLASSDIR)$/$(TARGET)$(VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) - $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/$(TARGET).jar $(CLASSDIR)$/$(TARGET)$(VERSION).jar +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(LIBFONTS_VERSION).jar + +$(PACKAGE_DIR)$/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)$/patches$/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(LIBFONTS_VERSION)/g' > $(PACKAGE_DIR)$/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)$/so_converted_$(TARGET).dummy + +$(CLASSDIR)$/$(TARGET)-$(LIBFONTS_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/dist$/$(TARGET)-$(LIBFONTS_VERSION).jar $(CLASSDIR)$/$(TARGET)-$(LIBFONTS_VERSION).jar .ENDIF .ENDIF diff --git a/jfreereport/java/libformula/makefile.mk b/jfreereport/java/libformula/makefile.mk index 28fcf99..3cc3453 100644 --- a/jfreereport/java/libformula/makefile.mk +++ b/jfreereport/java/libformula/makefile.mk @@ -29,28 +29,26 @@ PRJ=..$/.. PRJNAME=jfreereport TARGET=libformula -VERSION=-0.2.0 # --- Settings ----------------------------------------------------- .INCLUDE : settings.mk .INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk .IF "$(SOLAR_JAVA)" != "" # --- Files -------------------------------------------------------- .IF "$(L10N_framework)"=="" -TARFILE_NAME=$(TARGET) -TARFILE_MD5=d1a3205871c3c52e8a50c9f18510ae12 -TARFILE_ROOTDIR=$(TARGET) -PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch -CONVERTFILES=build.xml \ - source$/org$/pentaho$/reporting$/libraries$/formula$/function$/datetime$/DateDifFunction.java \ - source$/org$/pentaho$/reporting$/libraries$/formula$/lvalues$/FormulaFunction.java +TARFILE_NAME=$(TARGET)-$(LIBFORMULA_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=3404ab6b1792ae5f16bbd603bd1e1d03 +PATCH_FILES=$(PACKAGE_DIR)$/$(TARGET).patch +CONVERTFILES=common_build.xml .IF "$(JAVACISGCJ)"=="yes" JAVA_HOME= .EXPORT : JAVA_HOME -BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBFORMULA_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar .ELSE BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar .ENDIF @@ -66,9 +64,15 @@ BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" .IF "$(SOLAR_JAVA)" != "" .INCLUDE : tg_ext.mk -ALLTAR : $(CLASSDIR)$/$(TARGET)$(VERSION).jar -$(CLASSDIR)$/$(TARGET)$(VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) - $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/$(TARGET).jar $(CLASSDIR)$/$(TARGET)$(VERSION).jar +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(LIBFORMULA_VERSION).jar + +$(PACKAGE_DIR)$/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)$/patches$/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(LIBFORMULA_VERSION)/g' > $(PACKAGE_DIR)$/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)$/so_converted_$(TARGET).dummy + +$(CLASSDIR)$/$(TARGET)-$(LIBFORMULA_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/dist$/$(TARGET)-$(LIBFORMULA_VERSION).jar $(CLASSDIR)$/$(TARGET)-$(LIBFORMULA_VERSION).jar .ENDIF # $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/source$/org$/jfree$/formula$/function$/information$/IsRef-Function.properties : diff --git a/jfreereport/java/liblayout/makefile.mk b/jfreereport/java/liblayout/makefile.mk index ba70d79..7e4977d 100644 --- a/jfreereport/java/liblayout/makefile.mk +++ b/jfreereport/java/liblayout/makefile.mk @@ -29,19 +29,19 @@ PRJ=..$/.. PRJNAME=jfreereport TARGET=liblayout -VERSION=-0.2.9 # --- Settings ----------------------------------------------------- .INCLUDE : settings.mk .INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk .IF "$(SOLAR_JAVA)" != "" # --- Files -------------------------------------------------------- .IF "$(L10N_framework)"=="" -TARFILE_NAME=$(TARGET) -TARFILE_MD5=79600e696a98ff95c2eba976f7a8dfbb -TARFILE_ROOTDIR=$(TARGET) +TARFILE_NAME=$(TARGET)-$(LIBLAYOUT_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=db60e4fde8dd6d6807523deb71ee34dc PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch CONVERTFILES=build.xml @@ -63,9 +63,9 @@ BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" .IF "$(SOLAR_JAVA)" != "" .INCLUDE : tg_ext.mk -ALLTAR : $(CLASSDIR)$/$(TARGET)$(VERSION).jar -$(CLASSDIR)$/$(TARGET)$(VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) - $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/$(TARGET).jar $(CLASSDIR)$/$(TARGET)$(VERSION).jar +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(LIBLAYOUT_VERSION).jar +$(CLASSDIR)$/$(TARGET)-$(LIBLAYOUT_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/$(TARGET).jar $(CLASSDIR)$/$(TARGET)-$(LIBLAYOUT_VERSION).jar .ENDIF .ENDIF diff --git a/jfreereport/java/libloader/makefile.mk b/jfreereport/java/libloader/makefile.mk index cfb5955..5aecdf3 100644 --- a/jfreereport/java/libloader/makefile.mk +++ b/jfreereport/java/libloader/makefile.mk @@ -29,26 +29,27 @@ PRJ=..$/.. PRJNAME=jfreereport TARGET=libloader -VERSION=-1.0.0 # --- Settings ----------------------------------------------------- .INCLUDE : settings.mk .INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk .IF "$(SOLAR_JAVA)" != "" # --- Files -------------------------------------------------------- -TARFILE_NAME=$(TARGET) -TARFILE_MD5=a06a496d7a43cbdc35e69dbe678efadb -TARFILE_ROOTDIR=$(TARGET) -PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch -CONVERTFILES=build.xml +TARFILE_NAME=$(TARGET)-$(LIBLOADER_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=97b2d4dba862397f446b217e2b623e71 +PATCH_FILES=$(PACKAGE_DIR)$/$(TARGET).patch +CONVERTFILES=common_build.xml + .IF "$(L10N_framework)"=="" .IF "$(JAVACISGCJ)"=="yes" JAVA_HOME= .EXPORT : JAVA_HOME -BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBLOADER_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar .ELSE BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar .ENDIF @@ -63,9 +64,15 @@ BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" .IF "$(SOLAR_JAVA)" != "" .INCLUDE : tg_ext.mk -ALLTAR : $(CLASSDIR)$/$(TARGET)$(VERSION).jar -$(CLASSDIR)$/$(TARGET)$(VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) - $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/$(TARGET).jar $(CLASSDIR)$/$(TARGET)$(VERSION).jar +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(LIBLOADER_VERSION).jar + +$(PACKAGE_DIR)$/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)$/patches$/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(LIBLOADER_VERSION)/g' > $(PACKAGE_DIR)$/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)$/so_converted_$(TARGET).dummy + +$(CLASSDIR)$/$(TARGET)-$(LIBLOADER_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/dist$/$(TARGET)-$(LIBLOADER_VERSION).jar $(CLASSDIR)$/$(TARGET)-$(LIBLOADER_VERSION).jar .ENDIF .ENDIF diff --git a/jfreereport/java/librepository/makefile.mk b/jfreereport/java/librepository/makefile.mk index d39daa1..afe3a21 100644 --- a/jfreereport/java/librepository/makefile.mk +++ b/jfreereport/java/librepository/makefile.mk @@ -29,26 +29,27 @@ PRJ=..$/.. PRJNAME=jfreereport TARGET=librepository -VERSION=-1.0.0 # --- Settings ----------------------------------------------------- .INCLUDE : settings.mk .INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk .IF "$(SOLAR_JAVA)" != "" # --- Files -------------------------------------------------------- -TARFILE_NAME=$(TARGET) -TARFILE_MD5=dbb3757275dc5cc80820c0b4dd24ed95 -TARFILE_ROOTDIR=$(TARGET) -PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch -CONVERTFILES=build.xml +TARFILE_NAME=$(TARGET)-$(LIBREPOSITORY_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=8ce2fcd72becf06c41f7201d15373ed9 +PATCH_FILES=$(PACKAGE_DIR)$/$(TARGET).patch +CONVERTFILES=common_build.xml + .IF "$(L10N_framework)"=="" .IF "$(JAVACISGCJ)"=="yes" JAVA_HOME= .EXPORT : JAVA_HOME -BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBREPOSITORY_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar .ELSE BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar .ENDIF @@ -63,9 +64,15 @@ BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" .IF "$(SOLAR_JAVA)" != "" .INCLUDE : tg_ext.mk -ALLTAR : $(CLASSDIR)$/$(TARGET)$(VERSION).jar -$(CLASSDIR)$/$(TARGET)$(VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) - $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/$(TARGET).jar $(CLASSDIR)$/$(TARGET)$(VERSION).jar +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(LIBREPOSITORY_VERSION).jar + +$(PACKAGE_DIR)$/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)$/patches$/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(LIBREPOSITORY_VERSION)/g' > $(PACKAGE_DIR)$/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)$/so_converted_$(TARGET).dummy + +$(CLASSDIR)$/$(TARGET)-$(LIBREPOSITORY_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/dist$/$(TARGET)-$(LIBREPOSITORY_VERSION).jar $(CLASSDIR)$/$(TARGET)-$(LIBREPOSITORY_VERSION).jar .ENDIF .ENDIF diff --git a/jfreereport/java/libserializer/makefile.mk b/jfreereport/java/libserializer/makefile.mk index 05cf850..cabca08 100644 --- a/jfreereport/java/libserializer/makefile.mk +++ b/jfreereport/java/libserializer/makefile.mk @@ -29,26 +29,26 @@ PRJ=..$/.. PRJNAME=jfreereport TARGET=libserializer -VERSION=-1.0.0 # --- Settings ----------------------------------------------------- .INCLUDE : settings.mk .INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk .IF "$(SOLAR_JAVA)" != "" # --- Files -------------------------------------------------------- .IF "$(L10N_framework)"=="" -TARFILE_NAME=$(TARGET) -TARFILE_MD5=5aba06ede2daa9f2c11892fbd7bc3057 -TARFILE_ROOTDIR=$(TARGET) -PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch -CONVERTFILES=build.xml +TARFILE_NAME=$(TARGET)-$(LIBSERIALIZER_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=f94d9870737518e3b597f9265f4e9803 +PATCH_FILES=$(PACKAGE_DIR)$/$(TARGET).patch +CONVERTFILES=common_build.xml .IF "$(JAVACISGCJ)"=="yes" JAVA_HOME= .EXPORT : JAVA_HOME -BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBSERIALIZER_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar .ELSE BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar .ENDIF @@ -63,9 +63,15 @@ BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" .IF "$(SOLAR_JAVA)" != "" .INCLUDE : tg_ext.mk -ALLTAR : $(CLASSDIR)$/$(TARGET)$(VERSION).jar -$(CLASSDIR)$/$(TARGET)$(VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) - $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/$(TARGET).jar $(CLASSDIR)$/$(TARGET)$(VERSION).jar +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(LIBSERIALIZER_VERSION).jar + +$(PACKAGE_DIR)$/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)$/patches$/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(LIBSERIALIZER_VERSION)/g' > $(PACKAGE_DIR)$/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)$/so_converted_$(TARGET).dummy + +$(CLASSDIR)$/$(TARGET)-$(LIBSERIALIZER_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/dist$/$(TARGET)-$(LIBSERIALIZER_VERSION).jar $(CLASSDIR)$/$(TARGET)-$(LIBSERIALIZER_VERSION).jar .ENDIF .ENDIF diff --git a/jfreereport/java/libxml/makefile.mk b/jfreereport/java/libxml/makefile.mk index 17109ee..9719703 100644 --- a/jfreereport/java/libxml/makefile.mk +++ b/jfreereport/java/libxml/makefile.mk @@ -29,26 +29,26 @@ PRJ=..$/.. PRJNAME=jfreereport TARGET=libxml -VERSION=-1.0.0 # --- Settings ----------------------------------------------------- .INCLUDE : settings.mk .INCLUDE : antsettings.mk +.INCLUDE : $(PRJ)$/version.mk .IF "$(SOLAR_JAVA)" != "" # --- Files -------------------------------------------------------- .IF "$(L10N_framework)"=="" -TARFILE_NAME=$(TARGET) -TARFILE_MD5=67b42915c8432abf0a922438f00860a2 -TARFILE_ROOTDIR=$(TARGET) -PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch -CONVERTFILES=build.xml +TARFILE_NAME=$(TARGET)-$(LIBXML_VERSION) +TARFILE_IS_FLAT=true +TARFILE_MD5=ace6ab49184e329db254e454a010f56d +PATCH_FILES=$(PACKAGE_DIR)$/$(TARGET).patch +CONVERTFILES=common_build.xml .IF "$(JAVACISGCJ)"=="yes" JAVA_HOME= .EXPORT : JAVA_HOME -BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar +BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dbuild.id="10682" -Dproject.revision="$(LIBXML_VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar .ELSE BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) jar .ENDIF @@ -63,9 +63,15 @@ BUILD_ACTION=$(ANT) -Dlib="../../../class" -Dbuild.label="build-$(RSCREVISION)" .IF "$(SOLAR_JAVA)" != "" .INCLUDE : tg_ext.mk -ALLTAR : $(CLASSDIR)$/$(TARGET)$(VERSION).jar -$(CLASSDIR)$/$(TARGET)$(VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) - $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/build$/lib$/$(TARGET).jar $(CLASSDIR)$/$(TARGET)$(VERSION).jar +ALLTAR : $(CLASSDIR)$/$(TARGET)-$(LIBXML_VERSION).jar + +$(PACKAGE_DIR)$/$(TARGET).patch : + @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + ( $(TYPE:s/+//) $(PRJ)$/patches$/common_build.patch | $(SED) 's/libloader-1.1.3/$(TARGET)-$(LIBXML_VERSION)/g' > $(PACKAGE_DIR)$/$(TARGET).patch ) + $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)$/so_converted_$(TARGET).dummy + +$(CLASSDIR)$/$(TARGET)-$(LIBXML_VERSION).jar : $(PACKAGE_DIR)$/$(INSTALL_FLAG_FILE) + $(COPY) $(PACKAGE_DIR)$/$(TARFILE_ROOTDIR)$/dist$/$(TARGET)-$(LIBXML_VERSION).jar $(CLASSDIR)$/$(TARGET)-$(LIBXML_VERSION).jar .ENDIF .ENDIF diff --git a/jfreereport/java/sac/makefile.mk b/jfreereport/java/sac/makefile.mk index a0dafe9..4dc9b06 100644 --- a/jfreereport/java/sac/makefile.mk +++ b/jfreereport/java/sac/makefile.mk @@ -58,7 +58,7 @@ ADDITIONAL_FILES=build.xml .IF "$(JAVACISGCJ)"=="yes" JAVA_HOME= .EXPORT : JAVA_HOME -BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) all +BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dantcontrib.available="true" -Dproject.revision="$(VERSION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) all .ELSE BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) -f $(ANT_BUILDFILE) all .ENDIF diff --git a/jfreereport/patches/common_build.patch b/jfreereport/patches/common_build.patch new file mode 100755 index 0000000..3d5330b --- /dev/null +++ b/jfreereport/patches/common_build.patch @@ -0,0 +1,76 @@ +--- misc/libloader-1.1.3/common_build.xml 2009-11-16 10:25:34.000000000 +0100 ++++ misc/build/libloader-1.1.3/common_build.xml 2009-12-04 10:22:24.277647200 +0100 +@@ -497,7 +497,7 @@ + Sets a property build.id to the either "development" or the svn revision + if in release mode + ====================================================================--> +- <target name="set-build.id" unless="build.id" depends="install-antcontrib"> ++ <target name="set-build.id" unless="build.id" > + <if> + <istrue value="${release}" /> + <then> +@@ -1061,6 +1061,11 @@ + Performs the actual compile + ====================================================================--> + <target name="compile.compile" depends="init"> ++ <copy todir="${classes.dir}"> ++ <fileset dir="source"> ++ <include name="**/*.properties"/> ++ </fileset> ++ </copy> + <javac destdir="${classes.dir}" + debug="${javac.debug}" + deprecation="${javac.deprecation}" +@@ -1082,27 +1082,32 @@ + duplicate copying of resources from src tree (handled by compile.src_copy + if jar.include.source is set. + ====================================================================--> +- <target name="compile.res_copy" depends="install-antcontrib"> +- <if> +- <available file="${res.dir}" /> +- <then> +- <copy todir="${classes.dir}"> +- <fileset dir="${res.dir}" /> +- </copy> +- </then> +- </if> ++ <target name="compile.res_copy" > ++ <condition property="copy.res.available"> ++ <available file="$(res.dir)" type="dir" /> ++ </condition> ++ <antcall target="copy.res" /> + +- <if> +- <not> +- <isset property="jar.include.source" /> +- </not> +- <then> +- <copy todir="${classes.dir}" flatten="false"> +- <fileset dir="${src.dir}" excludes="**/*.java" /> +- </copy> +- </then> +- </if> +- </target> ++ <condition property="copy.res.class.available"> ++ <not> ++ <isset property="jar.include.source" /> ++ </not> ++ </condition> ++ <antcall target="copy.res.class" /> ++ </target> ++ ++ <target name="copy.res" if="copy.res.available" > ++ <copy todir="${classes.dir}"> ++ <fileset dir="${res.dir}"/> ++ </copy> ++ </target> ++ ++ <target name="copy.res.class" if="copy.res.class.available" > ++ <uptodate targetfile="${classes.dir}" property="s"> ++ <srcfiles dir= "${src.dir}" excludes="**/*.java" /> ++ <flattenmapper/> ++ </uptodate> ++ </target> + + + <!--======================================================================= diff --git a/jfreereport/patches/flow-engine.patch b/jfreereport/patches/flow-engine.patch index 13da432..aef70cb 100644 --- a/jfreereport/patches/flow-engine.patch +++ b/jfreereport/patches/flow-engine.patch @@ -1,5 +1,5 @@ ---- misc/core/build.xml (Revision 6728) -+++ misc/build/core/build.xml (Arbeitskopie) +--- misc/flow-engine-0.9.4/build.xml (Revision 6728) ++++ misc/build/flow-engine-0.9.4/build.xml (Arbeitskopie) @@ -24,6 +24,6 @@ <!-- Setup the compile classpath --> <path id="classpath"> diff --git a/jfreereport/patches/flute.patch b/jfreereport/patches/flute.patch deleted file mode 100644 index aad7756..0000000 --- a/jfreereport/patches/flute.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- misc/flute/build.xml (Revision 6820) -+++ misc/build/flute/build.xml (Arbeitskopie) -@@ -9,6 +9,7 @@ - <property name="build.doc" value="${build}/api"/> - <property name="build.lib" value="${build}/lib"/> - <property name="packagenames" value="org.w3c.flute.*"/> -+ <property name="lib" value="lib"/> - - <!-- Targets --> - <!-- Prepare build directories --> -@@ -21,7 +22,7 @@ - - <!-- Setup the compile classpath --> - <path id="classpath"> -- <fileset dir="lib"> -+ <fileset dir="${lib}"> - <include name="*.jar" /> - </fileset> - </path> diff --git a/jfreereport/patches/libbase.patch b/jfreereport/patches/libbase.patch deleted file mode 100644 index f6a7560..0000000 --- a/jfreereport/patches/libbase.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- misc/libbase/build.xml (Revision 6728) -+++ misc/build/libbase/build.xml (Arbeitskopie) -@@ -6,6 +6,7 @@ - <property name="build.classes" value="${build}/classes"/> - <property name="build.doc" value="${build}/api"/> - <property name="build.lib" value="${build}/lib"/> -+ <property name="lib" value="lib"/> - - <!-- Targets --> - <!-- Prepare build directories --> -@@ -18,7 +19,7 @@ - - <!-- Setup the compile classpath --> - <path id="classpath"> -- <fileset dir="lib"> -+ <fileset dir="${lib}"> - <include name="*.jar" /> - </fileset> - </path> diff --git a/jfreereport/patches/libfonts.patch b/jfreereport/patches/libfonts.patch deleted file mode 100644 index 63c5a1a..0000000 --- a/jfreereport/patches/libfonts.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- misc/libfonts/build.xml (Revision 6728) -+++ misc/build/libfonts/build.xml (Arbeitskopie) -@@ -23,6 +23,6 @@ - <!-- Setup the compile classpath --> - <path id="classpath"> -- <fileset dir="lib"> -+ <fileset dir="${lib}"> - <include name="*.jar" /> - </fileset> - </path> diff --git a/jfreereport/patches/libformula.patch b/jfreereport/patches/libformula.patch deleted file mode 100644 index 07968b4..0000000 --- a/jfreereport/patches/libformula.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- misc/libformula/source/org/pentaho/reporting/libraries/formula/function/datetime/DateDifFunction.java 2008-12-12 13:04:46.000000000 +0100 -+++ misc/build/libformula/source/org/pentaho/reporting/libraries/formula/function/datetime/DateDifFunction.java 2008-12-15 08:15:18.293125000 +0100 -@@ -198,12 +198,6 @@ - LibFormulaErrorValue.ERROR_INVALID_ARGUMENT_VALUE); - } - -- if (res < 0) -- { -- throw new EvaluationException( -- LibFormulaErrorValue.ERROR_INVALID_ARGUMENT_VALUE); -- } -- - //noinspection UnpredictableBigDecimalConstructorCall - return new TypeValuePair(NumberType.GENERIC_NUMBER, new BigDecimal((double) res)); - } ---- misc/libformula/source/org/pentaho/reporting/libraries/formula/lvalues/FormulaFunction.java 2008-12-12 13:04:46.000000000 +0100 -+++ misc/build/libformula/source/org/pentaho/reporting/libraries/formula/lvalues/FormulaFunction.java 2008-12-15 08:13:14.308750000 +0100 -@@ -161,7 +161,8 @@ - - for (int i = 0; i < parameters.length; i++) - { -- parameters[i].initialize(context); -+ if ( parameters[i] != null ) -+ parameters[i].initialize(context); - } - } - diff --git a/jfreereport/patches/liblayout.patch b/jfreereport/patches/liblayout.patch index ef9cb5b..4b1c231 100644 --- a/jfreereport/patches/liblayout.patch +++ b/jfreereport/patches/liblayout.patch @@ -1,5 +1,5 @@ ---- misc/liblayout/build.xml (Revision 6728) -+++ misc/build/liblayout/build.xml (Arbeitskopie) +--- misc/liblayout-0.2.10/build.xml (Revision 6728) ++++ misc/build/liblayout-0.2.10/build.xml (Arbeitskopie) @@ -24,6 +24,6 @@ <!-- Setup the compile classpath --> <path id="classpath"> diff --git a/jfreereport/patches/libloader.patch b/jfreereport/patches/libloader.patch deleted file mode 100644 index 82a2624..0000000 --- a/jfreereport/patches/libloader.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- misc/libloader/build.xml 2009-02-12 18:01:56.000000000 +0100 -+++ misc/build/libloader/build.xml 2009-02-13 09:57:21.856601684 +0100 -@@ -23,7 +23,7 @@ - - <!-- Setup the compile classpath --> - <path id="classpath"> -- <fileset dir="lib"> -+ <fileset dir="${lib}"> - <include name="*.jar" /> - </fileset> - </path> diff --git a/jfreereport/patches/librepository.patch b/jfreereport/patches/librepository.patch deleted file mode 100644 index 8a98159..0000000 --- a/jfreereport/patches/librepository.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- misc/librepository/build.xml (Revision 6728) -+++ misc/build/librepository/build.xml (Arbeitskopie) -@@ -24,6 +24,6 @@ - <!-- Setup the compile classpath --> - <path id="classpath"> -- <fileset dir="lib"> -+ <fileset dir="${lib}"> - <include name="*.jar" /> - </fileset> - </path> diff --git a/jfreereport/patches/libserializer.patch b/jfreereport/patches/libserializer.patch deleted file mode 100644 index 830fdb9..0000000 --- a/jfreereport/patches/libserializer.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- misc/libserializer/build.xml (Revision 6728) -+++ misc/build/libserializer/build.xml (Arbeitskopie) -@@ -24,6 +24,6 @@ - <!-- Setup the compile classpath --> - <path id="classpath"> -- <fileset dir="lib"> -+ <fileset dir="${lib}"> - <include name="*.jar" /> - </fileset> - </path> diff --git a/jfreereport/patches/libxml.patch b/jfreereport/patches/libxml.patch deleted file mode 100644 index 50981a4..0000000 --- a/jfreereport/patches/libxml.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- misc/libxml/build.xml (Revision 6728) -+++ misc/build/libxml/build.xml (Arbeitskopie) -@@ -24,6 +24,6 @@ - <!-- Setup the compile classpath --> - <path id="classpath"> -- <fileset dir="lib"> -+ <fileset dir="${lib}"> - <include name="*.jar" /> - </fileset> - </path> diff --git a/jfreereport/prj/d.lst b/jfreereport/prj/d.lst index a63f3a1..2527cc6 100644 --- a/jfreereport/prj/d.lst +++ b/jfreereport/prj/d.lst @@ -1 +1,2 @@ ..\%__SRC%\class\*.jar %_DEST%\bin%_EXT%\*.jar +..\version.mk %_DEST%\bin%_EXT%\jfreereport_version.mk diff --git a/jfreereport/version.mk b/jfreereport/version.mk new file mode 100644 index 0000000..cd9a805 --- /dev/null +++ b/jfreereport/version.mk @@ -0,0 +1,12 @@ +FLUTE_VERSION=1.1.6 +LIBBASE_VERSION=1.1.6 +LIBFONTS_VERSION=1.1.6 +LIBFORMAT_VERSION=1.1.6 +LIBFORMULA_VERSION=1.1.7 +LIBLAYOUT_VERSION=0.2.10 +LIBLOADER_VERSION=1.1.6 +LIBREPOSITORY_VERSION=1.1.6 +LIBSERIALIZER_VERSION=1.1.6 +LIBXML_VERSION=1.1.7 +FLOW_ENGINE_VERSION=0.9.4 + diff --git a/reportbuilder/java/com/sun/star/report/SDBCReportData.java b/reportbuilder/java/com/sun/star/report/SDBCReportData.java index 21e1ab2..5f185fc 100644 --- a/reportbuilder/java/com/sun/star/report/SDBCReportData.java +++ b/reportbuilder/java/com/sun/star/report/SDBCReportData.java @@ -47,7 +47,6 @@ import com.sun.star.util.Time; import java.sql.Timestamp; - public class SDBCReportData implements DataSource { @@ -349,7 +348,7 @@ public class SDBCReportData implements DataSource private Object convertObject(final int type, final Object obj) { - final Object ret; + Object ret; switch (type) { case DataType.DATE: @@ -365,7 +364,14 @@ public class SDBCReportData implements DataSource case DataType.NUMERIC: if (!(obj instanceof Any)) { - ret = new java.math.BigDecimal((String) obj); + try + { + ret = new java.math.BigDecimal(String.valueOf(obj)); + } + catch (NumberFormatException ex) + { + ret = obj; + } } else { diff --git a/reportbuilder/java/com/sun/star/report/function/metadata/makefile.mk b/reportbuilder/java/com/sun/star/report/function/metadata/makefile.mk index d68a2f8..9ba0c02 100644 --- a/reportbuilder/java/com/sun/star/report/function/metadata/makefile.mk +++ b/reportbuilder/java/com/sun/star/report/function/metadata/makefile.mk @@ -32,12 +32,15 @@ PACKAGE = com$/sun$/star$/report$/function$/metadata # --- Settings ----------------------------------------------------- .INCLUDE: settings.mk +.INCLUDE : $(SOLARBINDIR)/jfreereport_version.mk #----- compile .java files ----------------------------------------- .IF "$(SYSTEM_JFREEREPORT)" == "YES" EXTRAJARFILES = $(LIBBASE_JAR) $(LIBFORMULA_JAR) .ELSE -JARFILES = libbase-1.0.0.jar libformula-0.2.0.jar +JARFILES += \ + libbase-$(LIBBASE_VERSION).jar \ + libformula-$(LIBFORMULA_VERSION).jar .ENDIF JAVAFILES := AuthorFunction.java \ @@ -47,18 +50,20 @@ JAVAFILES := AuthorFunction.java \ MetaDataFunctionCategory.java # PROPERTYFILES := $(shell @$(FIND) . -name "*.properties") -PROPERTYFILES := $(CLASSDIR)$/$(PACKAGE)$/category.properties \ - $(CLASSDIR)$/$(PACKAGE)$/category_en_US.properties \ - $(CLASSDIR)$/$(PACKAGE)$/Author-Function.properties \ - $(CLASSDIR)$/$(PACKAGE)$/Author-Function_en_US.properties \ - $(CLASSDIR)$/$(PACKAGE)$/Title-Function.properties \ - $(CLASSDIR)$/$(PACKAGE)$/Title-Function_en_US.properties +PROPERTYFILES:=$(CLASSDIR)$/$(PACKAGE)$/category.properties \ + $(CLASSDIR)$/$(PACKAGE)$/Title-Function.properties\ + $(CLASSDIR)$/$(PACKAGE)$/category_en_US.properties \ + $(CLASSDIR)$/$(PACKAGE)$/Author-Function.properties \ + $(CLASSDIR)$/$(PACKAGE)$/Author-Function_en_US.properties \ + $(CLASSDIR)$/$(PACKAGE)$/Title-Function_en_US.properties +L10NPROPERTYFILES = $(PROPERTYFILES) +ALLTAR : $(PROPERTYFILES) # --- Targets ------------------------------------------------------ .INCLUDE : target.mk -ALLTAR : $(PROPERTYFILES) - -$(CLASSDIR)$/$(PACKAGE)$/%.properties : %.properties +.IF "$(WITH_LANG)"=="" +$(CLASSDIR)/$(PACKAGE)/%.properties : %.properties @@-$(MKDIRHIER) $(@:d) - $(COPY) $< $@ + $(COMMAND_ECHO)$(COPY) $< $@ +.ENDIF diff --git a/reportbuilder/java/com/sun/star/report/pentaho/Manifest.mf b/reportbuilder/java/com/sun/star/report/pentaho/Manifest.mf index 70f3ff6..5d27005 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/Manifest.mf +++ b/reportbuilder/java/com/sun/star/report/pentaho/Manifest.mf @@ -1,7 +1,7 @@ RegistrationClassName: com.sun.star.report.pentaho.SOReportJobFactory Class-Path: reportbuilderwizard.jar - flute-1.3.0.jar libserializer-1.0.0.jar libbase-1.0.0.jar - libfonts-1.0.0.jar libformula-0.2.0.jar liblayout-0.2.9.jar - libloader-1.0.0.jar librepository-1.0.0.jar libxml-1.0.0.jar - flow-engine-0.9.2.jar sac.jar commons-logging-1.1.1.jar + flute-1.1.6.jar libserializer-1.1.6.jar libbase-1.1.6.jar + libfonts-1.1.6.jar libformula-1.1.7.jar liblayout-0.2.10.jar + libloader-1.1.6.jar librepository-1.1.6.jar libxml-1.1.7.jar + flow-engine-0.9.4.jar sac.jar commons-logging-1.1.1.jar UNO-Type-Path: diff --git a/reportbuilder/java/com/sun/star/report/pentaho/loader/InputRepositoryLoader.java b/reportbuilder/java/com/sun/star/report/pentaho/loader/InputRepositoryLoader.java index 124b4cd..95a6679 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/loader/InputRepositoryLoader.java +++ b/reportbuilder/java/com/sun/star/report/pentaho/loader/InputRepositoryLoader.java @@ -34,6 +34,7 @@ import java.util.HashMap; import java.util.Map; import org.pentaho.reporting.libraries.resourceloader.ResourceData; +import org.pentaho.reporting.libraries.resourceloader.ResourceException; import org.pentaho.reporting.libraries.resourceloader.ResourceKey; import org.pentaho.reporting.libraries.resourceloader.ResourceException; import org.pentaho.reporting.libraries.resourceloader.ResourceKeyCreationException; diff --git a/reportbuilder/java/com/sun/star/report/pentaho/makefile.mk b/reportbuilder/java/com/sun/star/report/pentaho/makefile.mk index 9280fcd..d309e1d 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/makefile.mk +++ b/reportbuilder/java/com/sun/star/report/pentaho/makefile.mk @@ -33,13 +33,25 @@ PACKAGE = com$/sun$/star$/report$/pentaho nodep=true # --- Settings ----------------------------------------------------- .INCLUDE: settings.mk +.INCLUDE : $(SOLARBINDIR)/jfreereport_version.mk #----- compile .java files ----------------------------------------- JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar .IF "$(SYSTEM_JFREEREPORT)" == "YES" EXTRAJARFILES += $(FLUTE_JAR) $(LIBBASE_JAR) $(LIBXML_JAR) $(JFREEREPORT_JAR) $(LIBLOADER_JAR) $(SAC_JAR) $(LIBLAYOUT_JAR) $(LIBSERIALIZER_JAR) $(LIBFONTS_JAR) $(LIBFORMULA_JAR) $(LIBREPOSITORY_JAR) .ELSE -JARFILES += flute-1.3.0.jar libbase-1.0.0.jar libfonts-1.0.0.jar libformula-0.2.0.jar liblayout-0.2.9.jar libloader-1.0.0.jar librepository-1.0.0.jar libxml-1.0.0.jar flow-engine-0.9.2.jar sac.jar +JARFILES += \ + flute-$(FLUTE_VERSION).jar \ + libserializer-$(LIBSERIALIZER_VERSION).jar \ + libbase-$(LIBBASE_VERSION).jar \ + libfonts-$(LIBFONTS_VERSION).jar \ + libformula-$(LIBFORMULA_VERSION).jar \ + liblayout-$(LIBLAYOUT_VERSION).jar \ + libloader-$(LIBLOADER_VERSION).jar \ + librepository-$(LIBREPOSITORY_VERSION).jar \ + libxml-$(LIBXML_VERSION).jar \ + flow-engine-$(FLOW_ENGINE_VERSION).jar \ + sac.jar .ENDIF .IF "$(SYSTEM_APACHE_COMMONS)" == "YES" diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java b/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java index 68bf323..852f58e 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java +++ b/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java @@ -41,6 +41,18 @@ import com.sun.star.report.pentaho.model.OfficeStyles; import com.sun.star.report.pentaho.model.OfficeStylesCollection; import com.sun.star.report.pentaho.styles.LengthCalculator; import com.sun.star.report.pentaho.styles.StyleMapper; +import com.sun.org.apache.xerces.internal.parsers.DOMParser; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; import java.awt.Image; @@ -54,6 +66,7 @@ import java.io.Reader; import java.io.StringReader; import java.io.StringWriter; import java.io.Writer; +import java.io.InputStream; import java.util.ArrayList; import java.util.Iterator; @@ -137,7 +150,6 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget public static final String FAILED = "Failed"; public static final String VERTICAL_POS = "vertical-pos"; private static final String ZERO_CM = "0cm"; - /** the verison of the ODF specification to which generated documents * shall conform. */ public static final String ODF_VERSION = "1.2"; @@ -381,7 +393,7 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget rootAttributes.addNamespaceDeclaration("xsi", OfficeNamespaces.XSI_NS); rootAttributes.addNamespaceDeclaration("grddl", OfficeNamespaces.GRDDL_NS); rootAttributes.setAttribute(OfficeNamespaces.OFFICE_NS, "version", - ODF_VERSION); + ODF_VERSION); this.rootXmlWriter.writeXmlDeclaration("UTF-8"); this.rootXmlWriter.writeTag(OfficeNamespaces.OFFICE_NS, "document-content", rootAttributes, XmlWriterSupport.OPEN); @@ -1037,6 +1049,53 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget getXmlWriter().writeCloseTag(); } + public void copyMeta() + { + // now copy the meta.xml + if (getInputRepository().isReadable("meta.xml")) + { + InputStream inputStream = null; + try + { + inputStream = getInputRepository().createInputStream("meta.xml"); + DOMParser dOMParser = new DOMParser(); + dOMParser.parse(new InputSource(inputStream)); + Document document = dOMParser.getDocument(); + NodeList nl = document.getElementsByTagName("document-meta/meta/generator"); + Node node = document.getFirstChild().getFirstChild().getFirstChild().getFirstChild(); + String creator = node.getNodeValue(); + node.setNodeValue(creator + "/report_builder"); + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + transformer.setOutputProperty(OutputKeys.METHOD, "xml"); + + final OutputStream outputMetaStream = getOutputRepository().createOutputStream("meta.xml", "text/xml"); + StreamResult result = new StreamResult(outputMetaStream); + DOMSource source = new DOMSource(document); + transformer.transform(source, result); + + //IOUtils.getInstance().copyStreams(inputStream, outputMetaStream); + outputMetaStream.flush(); + outputMetaStream.close(); + } + catch (java.lang.Exception ex) + { + } finally + { + if (inputStream != null) + { + try + { + inputStream.close(); + } + catch (IOException ex) + { + Logger.getLogger(OfficeDocumentReportTarget.class.getName()).log(Level.SEVERE, null, ex); + } + } + } + } + } + public void endReport(final ReportStructureRoot report) throws DataSourceException, ReportProcessingException { diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java b/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java index 3b1061a..f176c6e 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java +++ b/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java @@ -261,26 +261,6 @@ public class ChartRawReportTarget extends OfficeDocumentReportTarget throws DataSourceException, ReportProcessingException { super.endReport(report); - try - { - // now copy the meta.xml - if (getInputRepository().isReadable("meta.xml")) - { - final InputStream inputStream = getInputRepository().createInputStream("meta.xml"); - try - { - final OutputStream outputMetaStream = getOutputRepository().createOutputStream("meta.xml", "text/xml"); - IOUtils.getInstance().copyStreams(inputStream, outputMetaStream); - outputMetaStream.close(); - } finally - { - inputStream.close(); - } - } - } - catch (IOException ioe) - { - throw new ReportProcessingException("Failed to write settings document", ioe); - } + copyMeta(); } } diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java b/reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java index f163029..386ba82 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java +++ b/reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java @@ -845,6 +845,7 @@ public class SpreadsheetRawReportTarget extends OfficeDocumentReportTarget setElementBoundaryCollectionPass(false); resetTableCounter(); columnCounter = 0; + copyMeta(); } private boolean isElementBoundaryCollectionPass() diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportTarget.java b/reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportTarget.java index a780e0a..8d601c6 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportTarget.java +++ b/reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportTarget.java @@ -26,6 +26,7 @@ ************************************************************************/ package com.sun.star.report.pentaho.output.text; + import com.sun.star.report.DataSourceFactory; import com.sun.star.report.ImageService; import com.sun.star.report.InputRepository; @@ -45,7 +46,7 @@ import com.sun.star.report.pentaho.output.StyleUtilities; import com.sun.star.report.pentaho.styles.LengthCalculator; import java.io.IOException; -import java.io.InputStream; + import java.io.OutputStream; import java.io.OutputStreamWriter; @@ -53,6 +54,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.Map; + import org.jfree.layouting.input.style.values.CSSNumericValue; import org.jfree.layouting.util.AttributeMap; import org.jfree.report.DataSourceException; @@ -67,7 +69,6 @@ import org.jfree.report.util.AttributeNameGenerator; import org.jfree.report.util.IntegerCache; import org.pentaho.reporting.libraries.base.util.FastStack; -import org.pentaho.reporting.libraries.base.util.IOUtils; import org.pentaho.reporting.libraries.base.util.ObjectUtilities; import org.pentaho.reporting.libraries.resourceloader.ResourceKey; import org.pentaho.reporting.libraries.resourceloader.ResourceManager; @@ -1270,7 +1271,7 @@ public class TextRawReportTarget extends OfficeDocumentReportTarget rootAttributes.addNamespaceDeclaration("config", OfficeNamespaces.CONFIG); rootAttributes.addNamespaceDeclaration("ooo", OfficeNamespaces.OO2004_NS); rootAttributes.setAttribute(OfficeNamespaces.OFFICE_NS, "version", - OfficeDocumentReportTarget.ODF_VERSION); + OfficeDocumentReportTarget.ODF_VERSION); final OutputStream outputStream = getOutputRepository().createOutputStream("settings.xml", "text/xml"); final XmlWriter xmlWriter = new XmlWriter(new OutputStreamWriter(outputStream, "UTF-8"), createTagDescription()); xmlWriter.setAlwaysAddNamespace(true); @@ -1291,20 +1292,7 @@ public class TextRawReportTarget extends OfficeDocumentReportTarget xmlWriter.writeCloseTag(); xmlWriter.close(); - // now copy the meta.xml - if (getInputRepository().isReadable("meta.xml")) - { - final InputStream inputStream = getInputRepository().createInputStream("meta.xml"); - try - { - final OutputStream outputMetaStream = getOutputRepository().createOutputStream("meta.xml", "text/xml"); - IOUtils.getInstance().copyStreams(inputStream, outputMetaStream); - outputMetaStream.close(); - } finally - { - inputStream.close(); - } - } + copyMeta(); } catch (IOException ioe) { diff --git a/reportbuilder/java/com/sun/star/report/pentaho/styles/stylemapper.xml b/reportbuilder/java/com/sun/star/report/pentaho/styles/stylemapper.xml index 112f559..a249edc 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/styles/stylemapper.xml +++ b/reportbuilder/java/com/sun/star/report/pentaho/styles/stylemapper.xml @@ -27,142 +27,746 @@ --> <style-mapper-definition xmlns="http://jfreereport.sourceforge.net/namespaces/engine/openoffice/stylemapper"> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - element-name="p" - attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - attribute-name="style-name" - style-family="paragraph" - type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - element-name="p" - attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - attribute-name="class-names" - style-family="paragraph" - type="styleNameRefs"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - element-name="list" - attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - attribute-name="style-name" - style-family="paragraph" - type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - element-name="section" + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="a" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="text" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="alphabetical-index" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="section" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="alphabetical-index-entry-template" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="paragraph" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="bibliography" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="section" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="bibliography-entry-template" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="paragraph" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="h" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="paragraph" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="illustration-index" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="section" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="illustration-index-entry-template" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="paragraph" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="index-entry-bibliography" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="character" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="index-entry-chapter" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="character" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="index-entry-link-end" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="character" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="index-entry-link-start" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="character" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="index-entry-page-number" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="character" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="index-entry-span" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="character" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="index-entry-tab-stop" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="character" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="index-entry-text" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="character" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="index-source-style" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="paragraph" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="index-title" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="section" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="index-title-template" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="character" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="linenumbering-configuration" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="text" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="list" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="list" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="list-level-style-bullet" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="text" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="list-level-style-number" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="character" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="numbered-paragraph" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="list" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="object-index" attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" attribute-name="style-name" style-family="section" type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - element-name="span" - attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - attribute-name="style-name" - style-family="text" - type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - element-name="span" - attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - attribute-name="class-names" - style-family="text" - type="styleNameRefs"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - element-name="ruby" - attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - attribute-name="style-name" - style-family="ruby" - type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - element-name="ruby-text" - attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" - attribute-name="style-name" - style-family="paragraph" - type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" - element-name="table" - attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" - attribute-name="style-name" - style-family="table" - type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" - element-name="table-column" - attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" - attribute-name="style-name" - style-family="table-column" - type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" - element-name="table-row" - attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" - attribute-name="style-name" - style-family="table-row" - type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" - element-name="table-cell" - attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="object-index-entry-template" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="paragraph" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="outline-level-style" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="character" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="p" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="paragraph" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="p" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="class-names" + style-family="paragraph" + type="styleNameRefs"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="ruby" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="ruby" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="ruby-text" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="paragraph" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="section" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="section" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="span" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="text" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="span" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="class-names" + style-family="text" + type="styleNameRefs"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="table-index" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="section" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="table-index-entry-template" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="paragraph" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="table-of-content" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="section" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="table-of-content-entry-template" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="paragraph" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="user-index" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="section" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + element-name="user-index-entry-template" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + attribute-name="style-name" + style-family="paragraph" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="table" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="background" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="body" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table-cell" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="covered-table-cell" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table-cell" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="even-columns" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table-cell" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="even-rows" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table-cell" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="first-column" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table-cell" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="first-row" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table-cell" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="last-column" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table-cell" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="last-row" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table-cell" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="odd-columns" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table-cell" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="odd-rows" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table-cell" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="table-cell" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table-cell" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="table-column" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table-column" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + element-name="table-row" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + attribute-name="style-name" + style-family="table-row" + type="styleNameRef"/> + + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" + element-name="cube" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" + element-name="extrude" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" + element-name="rotate" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" + element-name="scene" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" + element-name="sphere" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="caption" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="circle" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="connector" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="control" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="custom-shape" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="ellipse" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="frame" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="g" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="line" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="measure" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="page" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="page-thumbnail" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="path" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" attribute-name="style-name" - style-family="table-cell" + style-family="graphic" type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" - element-name="custom-shape" + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="polygon" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="polyline" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="rect" attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" attribute-name="style-name" style-family="graphic" type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" - element-name="frame" + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="regular-polygon" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:office:1.0" + element-name="annotation" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + element-name="notes" attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" attribute-name="style-name" style-family="graphic" type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" - element-name="chart" - attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:style:1.0" + element-name="handout-master" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:style:1.0" + element-name="master-page" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="graphic" + type="styleNameRef"/> + + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" + element-name="cube" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" + element-name="extrude" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" + element-name="rotate" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" + element-name="scene" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" + element-name="sphere" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="caption" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="circle" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="connector" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="custom-shape" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="ellipse" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="frame" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="g" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="line" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="measure" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="page-thumbnail" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="path" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" attribute-name="style-name" - style-family="chart" + style-family="presentation" type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" - element-name="title" - attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="polygon" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="polyline" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="rect" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" attribute-name="style-name" - style-family="chart" + style-family="presentation" type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + element-name="regular-polygon" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:office:1.0" + element-name="annotation" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" + attribute-name="style-name" + style-family="presentation" + type="styleNameRef"/> + + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" element-name="axis" attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" attribute-name="style-name" style-family="chart" type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" - element-name="series" + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="chart" attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" attribute-name="style-name" style-family="chart" type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" - element-name="wall" + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="data-label" attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" attribute-name="style-name" style-family="chart" type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" - element-name="floor" + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="data-point" attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" attribute-name="style-name" style-family="chart" type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" - element-name="legend" + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="equation" attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" attribute-name="style-name" style-family="chart" type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" - element-name="plot-area" + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="error-indicator" attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" attribute-name="style-name" style-family="chart" type="styleNameRef"/> - <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" - element-name="grid" + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="floor" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + attribute-name="style-name" + style-family="chart" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="footer" attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" attribute-name="style-name" style-family="chart" type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="grid" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + attribute-name="style-name" + style-family="chart" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="legend" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + attribute-name="style-name" + style-family="chart" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="mean-value" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + attribute-name="style-name" + style-family="chart" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="plot-area" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + attribute-name="style-name" + style-family="chart" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="regression-curve" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + attribute-name="style-name" + style-family="chart" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="series" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + attribute-name="style-name" + style-family="chart" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="stock-gain-marker" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + attribute-name="style-name" + style-family="chart" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="stock-loss-marker" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + attribute-name="style-name" + style-family="chart" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="stock-range-line" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + attribute-name="style-name" + style-family="chart" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="subtitle" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + attribute-name="style-name" + style-family="chart" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="title" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + attribute-name="style-name" + style-family="chart" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + element-name="wall" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + attribute-name="style-name" + style-family="chart" + type="styleNameRef"/> + <mapping element-namespace="urn:oasis:names:tc:opendocument:xmlns:style:1.0" + element-name="drop-cap" + attribute-namespace="urn:oasis:names:tc:opendocument:xmlns:style:1.0" + attribute-name="style-name" + style-family="text" + type="styleNameRef"/> </style-mapper-definition> diff --git a/reportbuilder/java/com/sun/star/report/util/makefile.mk b/reportbuilder/java/com/sun/star/report/util/makefile.mk index 8361ee6..70e290e 100644 --- a/reportbuilder/java/com/sun/star/report/util/makefile.mk +++ b/reportbuilder/java/com/sun/star/report/util/makefile.mk @@ -32,12 +32,16 @@ PACKAGE = com$/sun$/star$/report$/util # --- Settings ----------------------------------------------------- .INCLUDE: settings.mk +.INCLUDE : $(SOLARBINDIR)/jfreereport_version.mk #----- compile .java files ----------------------------------------- .IF "$(SYSTEM_JFREEREPORT)" == "YES" EXTRAJARFILES = $(LIBBASE_JAR) $(LIBXML_JAR) $(JFREEREPORT_JAR) .ELSE -JARFILES = libbase-1.0.0.jar libxml-1.0.0.jar flow-engine-0.9.2.jar +JARFILES += \ + libbase-$(LIBBASE_VERSION).jar \ + libxml-$(LIBXML_VERSION).jar \ + flow-engine-$(FLOW_ENGINE_VERSION).jar .ENDIF JAVAFILES = DefaultJobProperties.java DefaultParameterMap.java DefaultReportJobDefinition.java ManifestWriter.java diff --git a/reportbuilder/util/description.xml b/reportbuilder/util/description.xml index a44fbdd..a44fbdd 100755..100644 --- a/reportbuilder/util/description.xml +++ b/reportbuilder/util/description.xml diff --git a/reportbuilder/util/hidother.src b/reportbuilder/util/hidother.src deleted file mode 100644 index f85a8c8..0000000 --- a/reportbuilder/util/hidother.src +++ /dev/null @@ -1,146 +0,0 @@ -/************************************************************************* -* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * -************************************************************************/ - -#include "../inc/helpids.hrc" -#include "../inc/rptui_slotid.hrc" - -#ifndef _SBASLTID_HRC -#include <svx/svxids.hrc> -#endif - -hidspecial UID_RPT_RPT_APP_VIEW { HelpId = UID_RPT_RPT_APP_VIEW ; }; -hidspecial UID_RPT_SCROLLWINDOW { HelpId = UID_RPT_SCROLLWINDOW ; }; -hidspecial UID_RPT_REPORTWINDOW { HelpId = UID_RPT_REPORTWINDOW ; }; -hidspecial HID_RPT_HORZ_RULER { HelpId = HID_RPT_HORZ_RULER ; }; -hidspecial UID_RPT_SECTIONSWINDOW { HelpId = UID_RPT_SECTIONSWINDOW ; }; -hidspecial UID_RPT_VIEWSWINDOW { HelpId = UID_RPT_VIEWSWINDOW ; }; -hidspecial HID_RPT_ENDMARKER { HelpId = HID_RPT_ENDMARKER ; }; -hidspecial HID_RPT_SPLITTER { HelpId = HID_RPT_SPLITTER ; }; -hidspecial HID_REPORTSECTION { HelpId = HID_REPORTSECTION ; }; -hidspecial HID_RPT_HORZ_SCROLLBAR { HelpId = HID_RPT_HORZ_SCROLLBAR ; }; -hidspecial HID_RPT_VERT_SCROLLBAR { HelpId = HID_RPT_VERT_SCROLLBAR ; }; -hidspecial HID_RPT_STARTMARKER { HelpId = HID_RPT_STARTMARKER ; }; - -hidspecial SID_RPT_SHOWREPORTEXPLORER { HelpId = SID_RPT_SHOWREPORTEXPLORER ; }; -hidspecial SID_PAGEHEADERFOOTER { HelpId = SID_PAGEHEADERFOOTER ; }; -hidspecial SID_REPORTHEADERFOOTER { HelpId = SID_REPORTHEADERFOOTER ; }; -hidspecial SID_SORTINGANDGROUPING { HelpId = SID_SORTINGANDGROUPING ; }; -hidspecial SID_INSERT_FLD_PGNUMBER { HelpId = SID_INSERT_FLD_PGNUMBER ; }; -hidspecial SID_CONDITIONALFORMATTING { HelpId = SID_CONDITIONALFORMATTING ; }; -hidspecial SID_PAGEDIALOG { HelpId = SID_PAGEDIALOG ; }; -hidspecial SID_SETCONTROLDEFAULTS { HelpId = SID_SETCONTROLDEFAULTS ; }; -hidspecial SID_INSERTBREAK { HelpId = SID_INSERTBREAK ; }; -hidspecial HID_RPT_FIELDEXPRESSION { HelpId = HID_RPT_FIELDEXPRESSION ; }; -hidspecial HID_RPT_SORTORDER { HelpId = HID_RPT_SORTORDER ; }; -hidspecial HID_RPT_GROUPSBRW { HelpId = HID_RPT_GROUPSBRW ; }; -hidspecial HID_RPT_GROUPSSORTING_DLG { HelpId = HID_RPT_GROUPSSORTING_DLG ; }; -hidspecial HID_RPT_PAGENUMBERS_DLG { HelpId = HID_RPT_PAGENUMBERS_DLG ; }; -hidspecial HID_RPT_DATETIME_DLG { HelpId = HID_RPT_DATETIME_DLG ; }; -hidspecial HID_RPT_CONDFORMAT_DLG { HelpId = HID_RPT_CONDFORMAT_DLG ; }; -hidspecial HID_RPT_CRTL_FORMAT_PREVIEW { HelpId = HID_RPT_CRTL_FORMAT_PREVIEW ; }; -hidspecial HID_RPT_COND_DLG { HelpId = HID_RPT_COND_DLG ; }; -hidspecial HID_RPT_POPUP_COLOR_CTRL { HelpId = HID_RPT_POPUP_COLOR_CTRL ; }; -hidspecial HID_RPT_POPUP_COLOR { HelpId = HID_RPT_POPUP_COLOR ; }; -hidspecial SID_ESCAPE { HelpId = SID_ESCAPE ; }; -hidspecial HID_RPT_PROPDLG_TAB_GENERAL { HelpId = HID_RPT_PROPDLG_TAB_GENERAL ; }; -hidspecial HID_RPT_PROPDLG_TAB_DATA { HelpId = HID_RPT_PROPDLG_TAB_DATA ; }; - -hidspecial HID_RPT_PROP_FORCENEWPAGE { HelpId = HID_RPT_PROP_FORCENEWPAGE; }; -hidspecial HID_RPT_PROP_NEWROWORCOL { HelpId = HID_RPT_PROP_NEWROWORCOL; }; -hidspecial HID_RPT_PROP_KEEPTOGETHER { HelpId = HID_RPT_PROP_KEEPTOGETHER; }; -hidspecial HID_RPT_PROP_CANGROW { HelpId = HID_RPT_PROP_CANGROW; }; -hidspecial HID_RPT_PROP_CANSHRINK { HelpId = HID_RPT_PROP_CANSHRINK; }; -hidspecial HID_RPT_PROP_REPEATSECTION { HelpId = HID_RPT_PROP_REPEATSECTION; }; -hidspecial HID_RPT_PROP_PRINTREPEATEDVALUES { HelpId = HID_RPT_PROP_PRINTREPEATEDVALUES; }; -hidspecial HID_RPT_PROP_CONDITIONALPRINTEXPRESSION { HelpId = HID_RPT_PROP_CONDITIONALPRINTEXPRESSION; }; -hidspecial HID_RPT_PROP_STARTNEWCOLUMN { HelpId = HID_RPT_PROP_STARTNEWCOLUMN; }; -hidspecial HID_RPT_PROP_STARTNEWPAGE { HelpId = HID_RPT_PROP_STARTNEWPAGE; }; -hidspecial HID_RPT_PROP_RESETPAGENUMBER { HelpId = HID_RPT_PROP_RESETPAGENUMBER; }; -hidspecial HID_RPT_PROP_MINHEIGHTNEWPAGE { HelpId = HID_RPT_PROP_MINHEIGHTNEWPAGE; }; -hidspecial HID_RPT_PROP_PRINTWHENGROUPCHANGE { HelpId = HID_RPT_PROP_PRINTWHENGROUPCHANGE; }; -hidspecial HID_RPT_PROP_VISIBLE { HelpId = HID_RPT_PROP_VISIBLE; }; -hidspecial HID_RPT_PROP_GROUPKEEPTOGETHER { HelpId = HID_RPT_PROP_GROUPKEEPTOGETHER; }; -hidspecial HID_RPT_PROP_PAGEHEADEROPTION { HelpId = HID_RPT_PROP_PAGEHEADEROPTION; }; -hidspecial HID_RPT_PROP_PAGEFOOTEROPTION { HelpId = HID_RPT_PROP_PAGEFOOTEROPTION; }; -hidspecial UID_RPT_PROP_DLG_LINE_STYLE { HelpId = UID_RPT_PROP_DLG_LINE_STYLE; }; -hidspecial HID_RPT_PROP_RPT_POSITIONX { HelpId = HID_RPT_PROP_RPT_POSITIONX; }; -hidspecial HID_RPT_PROP_RPT_POSITIONY { HelpId = HID_RPT_PROP_RPT_POSITIONY; }; -hidspecial HID_RPT_PROP_RPT_WIDTH { HelpId = HID_RPT_PROP_RPT_WIDTH; }; -hidspecial HID_RPT_PROP_RPT_HEIGHT { HelpId = HID_RPT_PROP_RPT_HEIGHT; }; -hidspecial HID_RPT_START_TITLE { HelpId = HID_RPT_START_TITLE; }; -hidspecial HID_RPT_START_IMAGE { HelpId = HID_RPT_START_IMAGE; }; -hidspecial SID_EXECUTE_REPORT { HelpId = SID_EXECUTE_REPORT; }; - -hidspecial SID_RPT_TEXTDOCUMENT { HelpId = SID_RPT_TEXTDOCUMENT; }; -hidspecial SID_RPT_SPREADSHEET { HelpId = SID_RPT_SPREADSHEET; }; -hidspecial HID_RPT_PROP_DEEPTRAVERSING { HelpId = HID_RPT_PROP_DEEPTRAVERSING; }; -hidspecial HID_RPT_PROP_PREEVALUATED { HelpId = HID_RPT_PROP_PREEVALUATED; }; -hidspecial HID_RPT_NAVIGATOR_DLG { HelpId = HID_RPT_NAVIGATOR_DLG; }; -hidspecial HID_REPORT_NAVIGATOR_TREE { HelpId = HID_REPORT_NAVIGATOR_TREE; }; -hidspecial SID_RPT_NEW_FUNCTION { HelpId = SID_RPT_NEW_FUNCTION; }; -hidspecial HID_RPT_PROP_FORMULA { HelpId = HID_RPT_PROP_FORMULA; }; -hidspecial HID_RPT_PROP_INITIALFORMULA { HelpId = HID_RPT_PROP_INITIALFORMULA; };x -hidspecial HID_RPT_PROP_DATAFIELD { HelpId = HID_RPT_PROP_DATAFIELD; }; -hidspecial HID_RPT_PROP_RPT_FONT { HelpId = HID_RPT_PROP_RPT_FONT; }; -hidspecial UID_RPT_RPT_PROP_DLG_FONT_TYPE { HelpId = UID_RPT_RPT_PROP_DLG_FONT_TYPE; }; -hidspecial HID_RPT_PROP_BACKCOLOR { HelpId = HID_RPT_PROP_BACKCOLOR; }; -hidspecial HID_RPT_PROP_PRESERVEIRI { HelpId = HID_RPT_PROP_PRESERVEIRI; }; - -hidspecial SID_OBJECT_SMALLESTWIDTH { HelpId = SID_OBJECT_SMALLESTWIDTH; }; -hidspecial SID_OBJECT_SMALLESTHEIGHT { HelpId = SID_OBJECT_SMALLESTHEIGHT; }; -hidspecial SID_OBJECT_GREATESTWIDTH { HelpId = SID_OBJECT_GREATESTWIDTH; }; -hidspecial SID_OBJECT_GREATESTHEIGHT { HelpId = SID_OBJECT_GREATESTHEIGHT; }; - -hidspecial HID_RPT_PROP_BACKTRANSPARENT { HelpId = HID_RPT_PROP_BACKTRANSPARENT; }; -hidspecial HID_RPT_PROP_CONTROLBACKGROUNDTRANSPARENT { HelpId = HID_RPT_PROP_CONTROLBACKGROUNDTRANSPARENT; }; - -hidspecial SID_ARRANGEMENU { HelpId = SID_ARRANGEMENU; }; -hidspecial SID_SELECTALL_IN_SECTION { HelpId = SID_SELECTALL_IN_SECTION; }; -hidspecial SID_SECTION_ALIGN { HelpId = SID_SECTION_ALIGN; }; -hidspecial SID_SECTION_ALIGN_LEFT { HelpId = SID_SECTION_ALIGN_LEFT; }; -hidspecial SID_SECTION_ALIGN_CENTER { HelpId = SID_SECTION_ALIGN_CENTER; }; -hidspecial SID_SECTION_ALIGN_RIGHT { HelpId = SID_SECTION_ALIGN_RIGHT; }; -hidspecial SID_SECTION_ALIGN_UP { HelpId = SID_SECTION_ALIGN_UP; }; -hidspecial SID_SECTION_ALIGN_MIDDLE { HelpId = SID_SECTION_ALIGN_MIDDLE; }; -hidspecial SID_SECTION_ALIGN_DOWN { HelpId = SID_SECTION_ALIGN_DOWN; }; -hidspecial SID_NEXT_MARK { HelpId = SID_NEXT_MARK; }; -hidspecial SID_PREV_MARK { HelpId = SID_PREV_MARK; }; - -hidspecial UID_RPT_PROP_CHARTTYPE_DLG { HelpId = UID_RPT_PROP_CHARTTYPE_DLG; }; -hidspecial HID_RPT_PROP_CHARTTYPE { HelpId = HID_RPT_PROP_CHARTTYPE; }; -hidspecial HID_RPT_FIELD_SEL_WIN { HelpId = HID_RPT_FIELD_SEL_WIN; }; -hidspecial HID_RPT_FIELD_SEL { HelpId = HID_RPT_FIELD_SEL; }; -hidspecial HID_RPT_PROP_FORMULALIST { HelpId = HID_RPT_PROP_FORMULALIST; }; -hidspecial HID_RPT_PROP_SCOPE { HelpId = HID_RPT_PROP_SCOPE; }; -hidspecial HID_RPT_PROP_TYPE { HelpId = HID_RPT_PROP_TYPE; }; -hidspecial UID_RPT_PROP_DLG_LINKFIELDS { HelpId = UID_RPT_PROP_DLG_LINKFIELDS; }; -hidspecial HID_RPT_PROP_MASTERFIELDS { HelpId = HID_RPT_PROP_MASTERFIELDS; }; -hidspecial HID_RPT_PROP_DETAILFIELDS { HelpId = HID_RPT_PROP_DETAILFIELDS; }; -hidspecial HID_RPT_PROP_PREVIEW_COUNT { HelpId = HID_RPT_PROP_PREVIEW_COUNT; }; -hidspecial HID_RPT_PROP_AREA { HelpId = HID_RPT_PROP_AREA; }; -hidspecial UID_RPT_RPT_PROP_DLG_AREA { HelpId = UID_RPT_RPT_PROP_DLG_AREA; }; -hidspecial HID_RPT_PROP_MIMETYPE { HelpId = HID_RPT_PROP_MIMETYPE; };
\ No newline at end of file diff --git a/reportbuilder/util/makefile.mk b/reportbuilder/util/makefile.mk index 55ba88c..9dcb8b4 100755..100644 --- a/reportbuilder/util/makefile.mk +++ b/reportbuilder/util/makefile.mk @@ -38,6 +38,8 @@ EXTENSION_VERSION_BASE=1.2.1 # --- Settings ---------------------------------- .INCLUDE : makefile.pmk +.INCLUDE : $(SOLARBINDIR)/jfreereport_version.mk + .IF "$(L10N_framework)"=="" # ------------------------------------------------------------------ # calready set in util$/makefile.pmk @@ -94,16 +96,16 @@ COMPONENT_EXTJARFILES = \ .IF "$(SYSTEM_JFREEREPORT)" != "YES" COMPONENT_EXTJARFILES += \ - $(EXTENSIONDIR)$/flute-1.3.0.jar \ - $(EXTENSIONDIR)$/libserializer-1.0.0.jar \ - $(EXTENSIONDIR)$/libbase-1.0.0.jar \ - $(EXTENSIONDIR)$/libfonts-1.0.0.jar \ - $(EXTENSIONDIR)$/libformula-0.2.0.jar \ - $(EXTENSIONDIR)$/liblayout-0.2.9.jar \ - $(EXTENSIONDIR)$/libloader-1.0.0.jar \ - $(EXTENSIONDIR)$/librepository-1.0.0.jar \ - $(EXTENSIONDIR)$/libxml-1.0.0.jar \ - $(EXTENSIONDIR)$/flow-engine-0.9.2.jar \ + $(EXTENSIONDIR)$/flute-$(FLUTE_VERSION).jar \ + $(EXTENSIONDIR)$/libserializer-$(LIBSERIALIZER_VERSION).jar \ + $(EXTENSIONDIR)$/libbase-$(LIBBASE_VERSION).jar \ + $(EXTENSIONDIR)$/libfonts-$(LIBFONTS_VERSION).jar \ + $(EXTENSIONDIR)$/libformula-$(LIBFORMULA_VERSION).jar \ + $(EXTENSIONDIR)$/liblayout-$(LIBLAYOUT_VERSION).jar \ + $(EXTENSIONDIR)$/libloader-$(LIBLOADER_VERSION).jar \ + $(EXTENSIONDIR)$/librepository-$(LIBREPOSITORY_VERSION).jar \ + $(EXTENSIONDIR)$/libxml-$(LIBXML_VERSION).jar \ + $(EXTENSIONDIR)$/flow-engine-$(FLOW_ENGINE_VERSION).jar \ $(EXTENSIONDIR)$/sac.jar .ENDIF .IF "$(SYSTEM_APACHE_COMMONS)" != "YES" diff --git a/reportbuilder/util/makefile.pmk b/reportbuilder/util/makefile.pmk index 5661322..5661322 100644..100755 --- a/reportbuilder/util/makefile.pmk +++ b/reportbuilder/util/makefile.pmk diff --git a/sdext/source/minimizer/description.xml b/sdext/source/minimizer/description.xml index f10e8c2..f10e8c2 100755..100644 --- a/sdext/source/minimizer/description.xml +++ b/sdext/source/minimizer/description.xml diff --git a/sdext/source/minimizer/graphiccollector.cxx b/sdext/source/minimizer/graphiccollector.cxx index fffa1e8..e5061ac 100644 --- a/sdext/source/minimizer/graphiccollector.cxx +++ b/sdext/source/minimizer/graphiccollector.cxx @@ -71,7 +71,7 @@ const DeviceInfo& GraphicCollector::GetDeviceInfo( const Reference< XComponentCo return aDeviceInfo; } -void ImpAddEntity( std::vector< GraphicCollector::GraphicEntity >& rGraphicEntities, Reference< XGraphic >& rxGraphic, const GraphicSettings& rGraphicSettings, const GraphicCollector::GraphicUser& rUser ) +void ImpAddEntity( std::vector< GraphicCollector::GraphicEntity >& rGraphicEntities, const GraphicSettings& rGraphicSettings, const GraphicCollector::GraphicUser& rUser ) { const rtl::OUString aGraphicURL( rUser.maGraphicURL ); const rtl::OUString sPackageURL( RTL_CONSTASCII_USTRINGPARAM("vnd.sun.star.GraphicObject:") ); @@ -94,7 +94,7 @@ void ImpAddEntity( std::vector< GraphicCollector::GraphicEntity >& rGraphicEntit } if ( aIter == rGraphicEntities.end() ) { - GraphicCollector::GraphicEntity aEntity( rxGraphic, rUser ); + GraphicCollector::GraphicEntity aEntity( rUser ); rGraphicEntities.push_back( aEntity ); } } @@ -134,7 +134,7 @@ void ImpAddGraphicEntity( const Reference< XComponentContext >& rxMSF, Reference } aUser.maGraphicCropLogic = aGraphicCropLogic; aUser.maLogicalSize = aLogicalSize; - ImpAddEntity( rGraphicEntities, xGraphic, rGraphicSettings, aUser ); + ImpAddEntity( rGraphicEntities, rGraphicSettings, aUser ); } } @@ -199,7 +199,7 @@ void ImpAddFillBitmapEntity( const Reference< XComponentContext >& rxMSF, const aUser.mbFillBitmap = sal_True; aUser.maLogicalSize = aLogicalSize; aUser.mxPagePropertySet = rxPagePropertySet; - ImpAddEntity( rGraphicEntities, xGraphic, rGraphicSettings, aUser ); + ImpAddEntity( rGraphicEntities, rGraphicSettings, aUser ); } } } diff --git a/sdext/source/minimizer/graphiccollector.hxx b/sdext/source/minimizer/graphiccollector.hxx index 392a632..54a84e7 100644 --- a/sdext/source/minimizer/graphiccollector.hxx +++ b/sdext/source/minimizer/graphiccollector.hxx @@ -77,14 +77,13 @@ class GraphicCollector struct GraphicEntity { - com::sun::star::uno::Reference< com::sun::star::graphic::XGraphic > mxGraphic; // the corresponding XGraphic of the Shape com::sun::star::awt::Size maLogicalSize; // the biggest logical size the graphic will be displayed sal_Bool mbRemoveCropArea; // com::sun::star::text::GraphicCrop maGraphicCropLogic; std::vector< GraphicUser > maUser; - GraphicEntity( const com::sun::star::uno::Reference< com::sun::star::graphic::XGraphic >& xGraphic, const GraphicUser& rUser ) - : mxGraphic( xGraphic ), maLogicalSize( rUser.maLogicalSize ), mbRemoveCropArea( sal_False ), maGraphicCropLogic( 0, 0, 0, 0 ) { maUser.push_back( rUser ); }; + GraphicEntity( const GraphicUser& rUser ) + : maLogicalSize( rUser.maLogicalSize ), mbRemoveCropArea( sal_False ), maGraphicCropLogic( 0, 0, 0, 0 ) { maUser.push_back( rUser ); }; }; static const com::sun::star::awt::DeviceInfo& GetDeviceInfo( const com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >& rxFact ); diff --git a/sdext/source/minimizer/impoptimizer.cxx b/sdext/source/minimizer/impoptimizer.cxx index 30edc80..d335216 100644 --- a/sdext/source/minimizer/impoptimizer.cxx +++ b/sdext/source/minimizer/impoptimizer.cxx @@ -406,66 +406,84 @@ void CompressGraphics( ImpOptimizer& rOptimizer, const Reference< XComponentCont rOptimizer.SetStatusValue( TK_Progress, Any( static_cast< sal_Int32 >( nProgress ) ) ); rOptimizer.DispatchStatus(); - GraphicSettings aGraphicSettings( rGraphicSettings ); - aGraphicSettings.mbRemoveCropArea = aGraphicIter->mbRemoveCropArea; - - Reference< XPropertySet > xNewGraphicPropertySet( aGraphicIter->mxGraphic, UNO_QUERY_THROW ); - awt::Size aSize100thMM( GraphicCollector::GetOriginalSize( rxMSF, aGraphicIter->mxGraphic ) ); - Reference< XGraphic > xNewGraphic( ImpCompressGraphic( rxMSF, aGraphicIter->mxGraphic, aGraphicIter->maLogicalSize, aGraphicIter->maGraphicCropLogic, aGraphicSettings ) ); - if ( xNewGraphic.is() ) + if ( aGraphicIter->maUser.size() ) { - // applying graphic to each user - std::vector< GraphicCollector::GraphicUser >::iterator aGraphicUserIter( aGraphicIter->maUser.begin() ); - while( aGraphicUserIter != aGraphicIter->maUser.end() ) + GraphicSettings aGraphicSettings( rGraphicSettings ); + aGraphicSettings.mbRemoveCropArea = aGraphicIter->mbRemoveCropArea; + + Reference< XGraphic > xGraphic; + if ( aGraphicIter->maUser[ 0 ].mbFillBitmap && aGraphicIter->maUser[ 0 ].mxPropertySet.is() ) + { + Reference< XBitmap > xFillBitmap; + if ( aGraphicIter->maUser[ 0 ].mxPropertySet->getPropertyValue( TKGet( TK_FillBitmap ) ) >>= xFillBitmap ) + xGraphic = Reference< XGraphic >( xFillBitmap, UNO_QUERY_THROW ); + } + else if ( aGraphicIter->maUser[ 0 ].mxShape.is() ) + { + Reference< XPropertySet > xShapePropertySet( aGraphicIter->maUser[ 0 ].mxShape, UNO_QUERY_THROW ); + xShapePropertySet->getPropertyValue( TKGet( TK_Graphic ) ) >>= xGraphic; + } + if ( xGraphic.is() ) { - if ( aGraphicUserIter->mxShape.is() ) + Reference< XPropertySet > xNewGraphicPropertySet( xGraphic, UNO_QUERY_THROW ); + awt::Size aSize100thMM( GraphicCollector::GetOriginalSize( rxMSF, xGraphic ) ); + Reference< XGraphic > xNewGraphic( ImpCompressGraphic( rxMSF, xGraphic, aGraphicIter->maLogicalSize, aGraphicIter->maGraphicCropLogic, aGraphicSettings ) ); + if ( xNewGraphic.is() ) { - rtl::OUString sEmptyGraphicURL; - Reference< XPropertySet > xShapePropertySet( aGraphicUserIter->mxShape, UNO_QUERY_THROW ); - xShapePropertySet->setPropertyValue( TKGet( TK_GraphicURL ), Any( sEmptyGraphicURL ) ); - xShapePropertySet->setPropertyValue( TKGet( TK_Graphic ), Any( xNewGraphic ) ); - - if ( aGraphicUserIter->maGraphicCropLogic.Left || aGraphicUserIter->maGraphicCropLogic.Top - || aGraphicUserIter->maGraphicCropLogic.Right || aGraphicUserIter->maGraphicCropLogic.Bottom ) - { // removing crop area was not possible or should't been applied - text::GraphicCrop aGraphicCropLogic( 0, 0, 0, 0 ); - if ( !aGraphicSettings.mbRemoveCropArea ) + // applying graphic to each user + std::vector< GraphicCollector::GraphicUser >::iterator aGraphicUserIter( aGraphicIter->maUser.begin() ); + while( aGraphicUserIter != aGraphicIter->maUser.end() ) + { + if ( aGraphicUserIter->mxShape.is() ) { - awt::Size aNewSize( GraphicCollector::GetOriginalSize( rxMSF, xNewGraphic ) ); - aGraphicCropLogic.Left = (sal_Int32)((double)aGraphicUserIter->maGraphicCropLogic.Left * ((double)aNewSize.Width / (double)aSize100thMM.Width)); - aGraphicCropLogic.Top = (sal_Int32)((double)aGraphicUserIter->maGraphicCropLogic.Top * ((double)aNewSize.Height / (double)aSize100thMM.Height)); - aGraphicCropLogic.Right = (sal_Int32)((double)aGraphicUserIter->maGraphicCropLogic.Right * ((double)aNewSize.Width / (double)aSize100thMM.Width)); - aGraphicCropLogic.Bottom = (sal_Int32)((double)aGraphicUserIter->maGraphicCropLogic.Bottom * ((double)aNewSize.Height / (double)aSize100thMM.Height)); + rtl::OUString sEmptyGraphicURL; + Reference< XPropertySet > xShapePropertySet( aGraphicUserIter->mxShape, UNO_QUERY_THROW ); + xShapePropertySet->setPropertyValue( TKGet( TK_GraphicURL ), Any( sEmptyGraphicURL ) ); + xShapePropertySet->setPropertyValue( TKGet( TK_Graphic ), Any( xNewGraphic ) ); + + if ( aGraphicUserIter->maGraphicCropLogic.Left || aGraphicUserIter->maGraphicCropLogic.Top + || aGraphicUserIter->maGraphicCropLogic.Right || aGraphicUserIter->maGraphicCropLogic.Bottom ) + { // removing crop area was not possible or should't been applied + text::GraphicCrop aGraphicCropLogic( 0, 0, 0, 0 ); + if ( !aGraphicSettings.mbRemoveCropArea ) + { + awt::Size aNewSize( GraphicCollector::GetOriginalSize( rxMSF, xNewGraphic ) ); + aGraphicCropLogic.Left = (sal_Int32)((double)aGraphicUserIter->maGraphicCropLogic.Left * ((double)aNewSize.Width / (double)aSize100thMM.Width)); + aGraphicCropLogic.Top = (sal_Int32)((double)aGraphicUserIter->maGraphicCropLogic.Top * ((double)aNewSize.Height / (double)aSize100thMM.Height)); + aGraphicCropLogic.Right = (sal_Int32)((double)aGraphicUserIter->maGraphicCropLogic.Right * ((double)aNewSize.Width / (double)aSize100thMM.Width)); + aGraphicCropLogic.Bottom = (sal_Int32)((double)aGraphicUserIter->maGraphicCropLogic.Bottom * ((double)aNewSize.Height / (double)aSize100thMM.Height)); + } + xShapePropertySet->setPropertyValue( TKGet( TK_GraphicCrop ), Any( aGraphicCropLogic ) ); + } } - xShapePropertySet->setPropertyValue( TKGet( TK_GraphicCrop ), Any( aGraphicCropLogic ) ); - } - } - else if ( aGraphicUserIter->mxPropertySet.is() ) - { - Reference< XBitmap > xFillBitmap( xNewGraphic, UNO_QUERY ); - if ( xFillBitmap.is() ) - { - awt::Size aSize; - sal_Bool bLogicalSize; - - Reference< XPropertySet >& rxPropertySet( aGraphicUserIter->mxPropertySet ); - rxPropertySet->setPropertyValue( TKGet( TK_FillBitmap ), Any( xFillBitmap ) ); - if ( ( rxPropertySet->getPropertyValue( TKGet( TK_FillBitmapLogicalSize ) ) >>= bLogicalSize ) - && ( rxPropertySet->getPropertyValue( TKGet( TK_FillBitmapSizeX ) ) >>= aSize.Width ) - && ( rxPropertySet->getPropertyValue( TKGet( TK_FillBitmapSizeY ) ) >>= aSize.Height ) ) + else if ( aGraphicUserIter->mxPropertySet.is() ) { - if ( !aSize.Width || !aSize.Height ) + Reference< XBitmap > xFillBitmap( xNewGraphic, UNO_QUERY ); + if ( xFillBitmap.is() ) { - rxPropertySet->setPropertyValue( TKGet( TK_FillBitmapLogicalSize ), Any( sal_True ) ); - rxPropertySet->setPropertyValue( TKGet( TK_FillBitmapSizeX ), Any( aGraphicUserIter->maLogicalSize.Width ) ); - rxPropertySet->setPropertyValue( TKGet( TK_FillBitmapSizeY ), Any( aGraphicUserIter->maLogicalSize.Height ) ); + awt::Size aSize; + sal_Bool bLogicalSize; + + Reference< XPropertySet >& rxPropertySet( aGraphicUserIter->mxPropertySet ); + rxPropertySet->setPropertyValue( TKGet( TK_FillBitmap ), Any( xFillBitmap ) ); + if ( ( rxPropertySet->getPropertyValue( TKGet( TK_FillBitmapLogicalSize ) ) >>= bLogicalSize ) + && ( rxPropertySet->getPropertyValue( TKGet( TK_FillBitmapSizeX ) ) >>= aSize.Width ) + && ( rxPropertySet->getPropertyValue( TKGet( TK_FillBitmapSizeY ) ) >>= aSize.Height ) ) + { + if ( !aSize.Width || !aSize.Height ) + { + rxPropertySet->setPropertyValue( TKGet( TK_FillBitmapLogicalSize ), Any( sal_True ) ); + rxPropertySet->setPropertyValue( TKGet( TK_FillBitmapSizeX ), Any( aGraphicUserIter->maLogicalSize.Width ) ); + rxPropertySet->setPropertyValue( TKGet( TK_FillBitmapSizeY ), Any( aGraphicUserIter->maLogicalSize.Height ) ); + } + } + if ( aGraphicUserIter->mxPagePropertySet.is() ) + aGraphicUserIter->mxPagePropertySet->setPropertyValue( TKGet( TK_Background ), Any( rxPropertySet ) ); } } - if ( aGraphicUserIter->mxPagePropertySet.is() ) - aGraphicUserIter->mxPagePropertySet->setPropertyValue( TKGet( TK_Background ), Any( rxPropertySet ) ); + ++aGraphicUserIter; } } - ++aGraphicUserIter; } } ++aGraphicIter; diff --git a/sdext/source/minimizer/makefile.mk b/sdext/source/minimizer/makefile.mk index 0ab276f..164f106 100755..100644 --- a/sdext/source/minimizer/makefile.mk +++ b/sdext/source/minimizer/makefile.mk @@ -75,7 +75,7 @@ SHL1DEPN= SHL1IMPLIB= i$(SHL1TARGET) SHL1LIBS= $(SLB)$/$(TARGET).lib SHL1DEF= $(MISC)$/$(SHL1TARGET).def -SHL1VERSIONMAP=$(SOLARENV)/src/component.map +SHL1VERSIONMAP=$(SOLARENV)/src/reg-component.map SHL1RPATH= OXT DEF1NAME= $(SHL1TARGET) diff --git a/sdext/source/pdfimport/config/description.xml b/sdext/source/pdfimport/config/description.xml index 6ba2604..416e549 100755..100644 --- a/sdext/source/pdfimport/config/description.xml +++ b/sdext/source/pdfimport/config/description.xml @@ -10,7 +10,7 @@ <OpenOffice.org-minimal-version value="3.0" dep:name="OpenOffice.org 3.0"/> </dependencies> - <version value="1.0.3" /> + <version value="1.0.5" /> <platform value="UPDATED_SUPPORTED_PLATFORM" /> diff --git a/sdext/source/pdfimport/config/pdf_import_filter.xcu b/sdext/source/pdfimport/config/pdf_import_filter.xcu index f10a002..7cfb352 100644 --- a/sdext/source/pdfimport/config/pdf_import_filter.xcu +++ b/sdext/source/pdfimport/config/pdf_import_filter.xcu @@ -20,7 +20,7 @@ <value>pdf_Portable_Document_Format</value> </prop> <prop oor:name="UIName"> - <value xml:lang="x-default">PDF - Portable Document Format</value> + <value xml:lang="x-default">PDF - Portable Document Format (Draw)</value> </prop> <prop oor:name="TemplateName"/> <prop oor:name="UIComponent"/> @@ -49,7 +49,7 @@ <value>pdf_Portable_Document_Format</value> </prop> <prop oor:name="UIName"> - <value xml:lang="x-default">PDF - Portable Document Format</value> + <value xml:lang="x-default">PDF - Portable Document Format (Impress)</value> </prop> <prop oor:name="TemplateName"/> <prop oor:name="UIComponent"/> @@ -78,7 +78,7 @@ <value>pdf_Portable_Document_Format</value> </prop> <prop oor:name="UIName"> - <value xml:lang="x-default">PDF - Portable Document Format</value> + <value xml:lang="x-default">PDF - Portable Document Format (Writer)</value> </prop> <prop oor:name="TemplateName"/> <prop oor:name="UIComponent"/> diff --git a/sdext/source/pdfimport/filterdet.cxx b/sdext/source/pdfimport/filterdet.cxx index dfc42ad..c83919c 100644 --- a/sdext/source/pdfimport/filterdet.cxx +++ b/sdext/source/pdfimport/filterdet.cxx @@ -693,6 +693,8 @@ uno::Reference< io::XStream > getAdditionalStream( const rtl::OUString& rtl::OString aIsoPwd = rtl::OUStringToOString( io_rPwd, RTL_TEXTENCODING_ISO_8859_1 ); bAuthenticated = pPDFFile->setupDecryptionData( aIsoPwd.getStr() ); + // trash password string on heap + rtl_zeroMemory( (void*)aIsoPwd.getStr(), aIsoPwd.getLength() ); } if( ! bAuthenticated ) { @@ -720,6 +722,8 @@ uno::Reference< io::XStream > getAdditionalStream( const rtl::OUString& rtl::OString aIsoPwd = rtl::OUStringToOString( io_rPwd, RTL_TEXTENCODING_ISO_8859_1 ); bAuthenticated = pPDFFile->setupDecryptionData( aIsoPwd.getStr() ); + // trash password string on heap + rtl_zeroMemory( (void*)aIsoPwd.getStr(), aIsoPwd.getLength() ); } while( bEntered && ! bAuthenticated ); } diff --git a/sdext/source/pdfimport/inc/pdfparse.hxx b/sdext/source/pdfimport/inc/pdfparse.hxx index b579fde..5c21323 100644 --- a/sdext/source/pdfimport/inc/pdfparse.hxx +++ b/sdext/source/pdfimport/inc/pdfparse.hxx @@ -261,6 +261,8 @@ struct PDFFile : public PDFContainer bool decrypt( const sal_uInt8* pInBuffer, sal_uInt32 nLen, sal_uInt8* pOutBuffer, unsigned int nObject, unsigned int nGeneration ) const; + + rtl::OUString getDecryptionKey() const; }; struct PDFObject : public PDFContainer diff --git a/sdext/source/pdfimport/inc/treevisitorfactory.hxx b/sdext/source/pdfimport/inc/treevisitorfactory.hxx index fd9ad74..6a08f5c 100644 --- a/sdext/source/pdfimport/inc/treevisitorfactory.hxx +++ b/sdext/source/pdfimport/inc/treevisitorfactory.hxx @@ -54,7 +54,7 @@ namespace pdfi virtual boost::shared_ptr<ElementTreeVisitor> createStyleCollectingVisitor( StyleContainer&, PDFIProcessor&) const = 0; /// Create visitor that emits tree to an output target - virtual boost::shared_ptr<ElementTreeVisitor> createEmittingVisitor(EmitContext&) const = 0; + virtual boost::shared_ptr<ElementTreeVisitor> createEmittingVisitor(EmitContext&, PDFIProcessor&) const = 0; }; typedef boost::shared_ptr<TreeVisitorFactory> TreeVisitorFactorySharedPtr; diff --git a/sdext/source/pdfimport/makefile.mk b/sdext/source/pdfimport/makefile.mk index 2a9697f..64accda 100755..100644 --- a/sdext/source/pdfimport/makefile.mk +++ b/sdext/source/pdfimport/makefile.mk @@ -90,7 +90,7 @@ SHL1STDLIBS=\ SHL1DEPN= SHL1IMPLIB= i$(SHL1TARGET) SHL1DEF= $(MISC)$/$(SHL1TARGET).def -SHL1VERSIONMAP=$(SOLARENV)/src/component.map +SHL1VERSIONMAP=$(SOLARENV)/src/reg-component.map SHL1RPATH=OXT DEF1NAME=$(SHL1TARGET) diff --git a/sdext/source/pdfimport/pdfparse/pdfentries.cxx b/sdext/source/pdfimport/pdfparse/pdfentries.cxx index a207ba7..4665c51 100644 --- a/sdext/source/pdfimport/pdfparse/pdfentries.cxx +++ b/sdext/source/pdfimport/pdfparse/pdfentries.cxx @@ -33,6 +33,7 @@ #include <rtl/strbuf.hxx> #include <rtl/ustring.hxx> +#include <rtl/ustrbuf.hxx> #include <rtl/alloc.h> #include <rtl/digest.h> #include <rtl/cipher.h> @@ -64,6 +65,8 @@ struct EmitImplData XRefTable m_aXRefTable; // container of all indirect objects (usually a PDFFile*) const PDFContainer* m_pObjectContainer; + unsigned int m_nDecryptObject; + unsigned int m_nDecryptGeneration; // returns true if the xref table was updated bool insertXref( unsigned int nObject, unsigned int nGeneration, unsigned int nOffset ) @@ -85,7 +88,9 @@ struct EmitImplData } EmitImplData( const PDFContainer* pTopContainer ) : - m_pObjectContainer( pTopContainer ) + m_pObjectContainer( pTopContainer ), + m_nDecryptObject( 0 ), + m_nDecryptGeneration( 0 ) {} ~EmitImplData() {} bool decrypt( const sal_uInt8* pInBuffer, sal_uInt32 nLen, sal_uInt8* pOutBuffer, @@ -94,6 +99,12 @@ struct EmitImplData const PDFFile* pFile = dynamic_cast<const PDFFile*>(m_pObjectContainer); return pFile ? pFile->decrypt( pInBuffer, nLen, pOutBuffer, nObject, nGeneration ) : false; } + + void setDecryptObject( unsigned int nObject, unsigned int nGeneration ) + { + m_nDecryptObject = nObject; + m_nDecryptGeneration = nGeneration; + } }; } @@ -204,6 +215,46 @@ bool PDFString::emit( EmitContext& rWriteContext ) const { if( ! rWriteContext.write( " ", 1 ) ) return false; + EmitImplData* pEData = getEmitData( rWriteContext ); + if( rWriteContext.m_bDecrypt && pEData && pEData->m_nDecryptObject ) + { + OString aFiltered( getFilteredString() ); + // decrypt inplace (evil since OString is supposed to be const + // however in this case we know that getFilteredString returned a singular string instance + pEData->decrypt( (sal_uInt8*)aFiltered.getStr(), aFiltered.getLength(), + (sal_uInt8*)aFiltered.getStr(), + pEData->m_nDecryptObject, pEData->m_nDecryptGeneration ); + // check for string or hex string + const sal_Char* pStr = aFiltered.getStr(); + if( aFiltered.getLength() > 1 && + ( (pStr[0] == sal_Char(0xff) && pStr[1] == sal_Char(0xfe)) || + (pStr[0] == sal_Char(0xfe) && pStr[1] == sal_Char(0xff)) ) ) + { + static const char pHexTab[16] = { '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; + if( ! rWriteContext.write( "<", 1 ) ) + return false; + for( sal_Int32 i = 0; i < aFiltered.getLength(); i++ ) + { + if( ! rWriteContext.write( pHexTab + ((sal_uInt32(pStr[i]) >> 4) & 0x0f), 1 ) ) + return false; + if( ! rWriteContext.write( pHexTab + (sal_uInt32(pStr[i]) & 0x0f), 1 ) ) + return false; + } + if( ! rWriteContext.write( ">", 1 ) ) + return false; + } + else + { + if( ! rWriteContext.write( "(", 1 ) ) + return false; + if( ! rWriteContext.write( aFiltered.getStr(), aFiltered.getLength() ) ) + return false; + if( ! rWriteContext.write( ")", 1 ) ) + return false; + } + return true; + } return rWriteContext.write( m_aString.getStr(), m_aString.getLength() ); } @@ -423,6 +474,15 @@ bool PDFContainer::emitSubElements( EmitContext& rWriteContext ) const int nEle = m_aSubElements.size(); for( int i = 0; i < nEle; i++ ) { + if( rWriteContext.m_bDecrypt ) + { + const PDFName* pName = dynamic_cast<PDFName*>(m_aSubElements[i]); + if( pName && pName->m_aName.equals( rtl::OString("Encrypt") ) ) + { + i++; + continue; + } + } if( ! m_aSubElements[i]->emit( rWriteContext ) ) return false; } @@ -740,7 +800,7 @@ bool PDFObject::writeStream( EmitContext& rWriteContext, const PDFFile* pParsedF { char* pStream = NULL; unsigned int nBytes = 0; - if( getDeflatedStream( &pStream, &nBytes, pParsedFile, rWriteContext ) && nBytes ) + if( getDeflatedStream( &pStream, &nBytes, pParsedFile, rWriteContext ) && nBytes && rWriteContext.m_bDeflate ) { sal_uInt8* pOutBytes = NULL; sal_uInt32 nOutBytes = 0; @@ -772,17 +832,27 @@ bool PDFObject::emit( EmitContext& rWriteContext ) const if( ! rWriteContext.write( aBuf.getStr(), aBuf.getLength() ) ) return false; - if( rWriteContext.m_bDeflate && pEData ) + if( pEData ) + pEData->setDecryptObject( m_nNumber, m_nGeneration ); + if( (rWriteContext.m_bDeflate || rWriteContext.m_bDecrypt) && pEData ) { char* pStream = NULL; unsigned int nBytes = 0; - if( getDeflatedStream( &pStream, &nBytes, pEData->m_pObjectContainer, rWriteContext ) - && pStream && nBytes ) + bool bDeflate = getDeflatedStream( &pStream, &nBytes, pEData->m_pObjectContainer, rWriteContext ); + if( pStream && nBytes ) { // unzip the stream sal_uInt8* pOutBytes = NULL; sal_uInt32 nOutBytes = 0; - unzipToBuffer( pStream, nBytes, &pOutBytes, &nOutBytes ); + if( bDeflate && rWriteContext.m_bDeflate ) + unzipToBuffer( pStream, nBytes, &pOutBytes, &nOutBytes ); + else + { + // nothing to deflate, but decryption has happened + pOutBytes = (sal_uInt8*)pStream; + nOutBytes = (sal_uInt32)nBytes; + } + if( nOutBytes ) { // clone this object @@ -790,8 +860,32 @@ bool PDFObject::emit( EmitContext& rWriteContext ) const // set length in the dictionary to new stream length PDFNumber* pNewLen = new PDFNumber( double(nOutBytes) ); pClone->m_pStream->m_pDict->insertValue( "Length", pNewLen ); - // delete flatedecode filter - pClone->m_pStream->m_pDict->eraseValue( "Filter" ); + + if( bDeflate && rWriteContext.m_bDeflate ) + { + // delete flatedecode filter + std::hash_map<OString,PDFEntry*,OStringHash>::const_iterator it = + pClone->m_pStream->m_pDict->m_aMap.find( "Filter" ); + if( it != pClone->m_pStream->m_pDict->m_aMap.end() ) + { + PDFName* pFilter = dynamic_cast<PDFName*>(it->second); + if( pFilter && pFilter->m_aName.equals( "FlateDecode" ) ) + pClone->m_pStream->m_pDict->eraseValue( "Filter" ); + else + { + PDFArray* pArray = dynamic_cast<PDFArray*>(it->second); + if( pArray && ! pArray->m_aSubElements.empty() ) + { + pFilter = dynamic_cast<PDFName*>(pArray->m_aSubElements.front()); + if( pFilter && pFilter->m_aName.equals( "FlateDecode" ) ) + { + delete pFilter; + pArray->m_aSubElements.erase( pArray->m_aSubElements.begin() ); + } + } + } + } + } // write sub elements except stream bool bRet = true; @@ -810,17 +904,23 @@ bool PDFObject::emit( EmitContext& rWriteContext ) const if( bRet ) bRet = rWriteContext.write( "\nendstream\nendobj\n", 18 ); rtl_freeMemory( pStream ); - rtl_freeMemory( pOutBytes ); + if( pOutBytes != (sal_uInt8*)pStream ) + rtl_freeMemory( pOutBytes ); + if( pEData ) + pEData->setDecryptObject( 0, 0 ); return bRet; } - rtl_freeMemory( pOutBytes ); + if( pOutBytes != (sal_uInt8*)pStream ) + rtl_freeMemory( pOutBytes ); } rtl_freeMemory( pStream ); } - if( ! emitSubElements( rWriteContext ) ) - return false; - return rWriteContext.write( "\nendobj\n", 8 ); + bool bRet = emitSubElements( rWriteContext ) && + rWriteContext.write( "\nendobj\n", 8 ); + if( pEData ) + pEData->setDecryptObject( 0, 0 ); + return bRet; } PDFEntry* PDFObject::clone() const @@ -1183,6 +1283,23 @@ bool PDFFile::setupDecryptionData( const OString& rPwd ) const return bValid; } +rtl::OUString PDFFile::getDecryptionKey() const +{ + rtl::OUStringBuffer aBuf( ENCRYPTION_KEY_LEN * 2 ); + if( impl_getData()->m_bIsEncrypted ) + { + for( sal_uInt32 i = 0; i < m_pData->m_nKeyLength; i++ ) + { + static const sal_Unicode pHexTab[16] = { '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; + aBuf.append( pHexTab[(m_pData->m_aDecryptionKey[i] >> 4) & 0x0f] ); + aBuf.append( pHexTab[(m_pData->m_aDecryptionKey[i] & 0x0f)] ); + } + + } + return aBuf.makeStringAndClear(); +} + PDFFileImplData* PDFFile::impl_getData() const { if( m_pData ) @@ -1309,13 +1426,13 @@ PDFFileImplData* PDFFile::impl_getData() const if( pNum ) m_pData->m_nPEntry = static_cast<sal_uInt32>(static_cast<sal_Int32>(pNum->m_fValue)); #if OSL_DEBUG_LEVEL > 1 - fprintf( stderr, "p entry is %p\n", m_pData->m_nPEntry ); + fprintf( stderr, "p entry is %p\n", (void*)m_pData->m_nPEntry ); #endif } #if OSL_DEBUG_LEVEL > 1 fprintf( stderr, "Encryption dict: sec handler: %s, version = %d, revision = %d, key length = %d\n", pFilter ? OUStringToOString( pFilter->getFilteredName(), RTL_TEXTENCODING_UTF8 ).getStr() : "<unknown>", - (int)m_pData->m_nAlgoVersion, (int)m_pData->m_nStandardRevision, m_pData->m_nKeyLength ); + (int)m_pData->m_nAlgoVersion, (int)m_pData->m_nStandardRevision, (int)m_pData->m_nKeyLength ); #endif break; } diff --git a/sdext/source/pdfimport/pdfparse/pdfparse.cxx b/sdext/source/pdfimport/pdfparse/pdfparse.cxx index f72f132..ad67493 100644 --- a/sdext/source/pdfimport/pdfparse/pdfparse.cxx +++ b/sdext/source/pdfimport/pdfparse/pdfparse.cxx @@ -576,7 +576,7 @@ PDFEntry* PDFReader::read( const char* pBuffer, unsigned int nLen ) aInfo.stop, pBuffer, aInfo.stop - pBuffer, aInfo.hit ? "true" : "false", aInfo.full ? "true" : "false", - aInfo.length ); + (int)aInfo.length ); #endif } catch( parser_error<const char*, const char*>& rError ) @@ -656,7 +656,7 @@ PDFEntry* PDFReader::read( const char* pFileName ) aInfo.stop - file_start, aInfo.hit ? "true" : "false", aInfo.full ? "true" : "false", - aInfo.length ); + (int)aInfo.length ); #endif } catch( parser_error< const char*, file_iterator<> >& rError ) diff --git a/sdext/source/pdfimport/tree/drawtreevisiting.cxx b/sdext/source/pdfimport/tree/drawtreevisiting.cxx index c4d7ccc..cd2e558 100644 --- a/sdext/source/pdfimport/tree/drawtreevisiting.cxx +++ b/sdext/source/pdfimport/tree/drawtreevisiting.cxx @@ -37,13 +37,15 @@ #include "drawtreevisiting.hxx" #include "genericelements.hxx" -#include <basegfx/polygon/b2dpolypolygontools.hxx> -#include <basegfx/range/b2drange.hxx> +#include "basegfx/polygon/b2dpolypolygontools.hxx" +#include "basegfx/range/b2drange.hxx" -#include <com/sun/star/i18n/XBreakIterator.hpp> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include "com/sun/star/i18n/XBreakIterator.hpp" +#include "com/sun/star/lang/XMultiServiceFactory.hpp" #include "comphelper/processfactory.hxx" -#include <com/sun/star/i18n/ScriptType.hpp> +#include "com/sun/star/i18n/ScriptType.hpp" +#include "com/sun/star/i18n/DirectionProperty.hpp" + #include <string.h> using namespace ::com::sun::star; @@ -80,6 +82,18 @@ const ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator > return mxBreakIter; } +const ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XCharacterClassification >& DrawXmlEmitter::GetCharacterClassification() +{ + if ( !mxCharClass.is() ) + { + Reference< XComponentContext > xContext( m_rEmitContext.m_xContext, uno::UNO_SET_THROW ); + Reference< XMultiComponentFactory > xMSF( xContext->getServiceManager(), uno::UNO_SET_THROW ); + Reference < XInterface > xInterface = xMSF->createInstanceWithContext(::rtl::OUString::createFromAscii("com.sun.star.i18n.CharacterClassification"), xContext); + mxCharClass = uno::Reference< i18n::XCharacterClassification >( xInterface, uno::UNO_QUERY ); + } + return mxCharClass; +} + void DrawXmlEmitter::visit( HyperlinkElement& elem, const std::list< Element* >::const_iterator& ) { if( elem.Children.empty() ) @@ -120,6 +134,26 @@ void DrawXmlEmitter::visit( TextElement& elem, const std::list< Element* >::cons rtl::OUString str(elem.Text.getStr()); + // Check for RTL + bool isRTL = false; + Reference< i18n::XCharacterClassification > xCC( GetCharacterClassification() ); + if( xCC.is() ) + { + for(int i=1; i< elem.Text.getLength(); i++) + { + sal_Int16 nType = xCC->getCharacterDirection( str, i ); + if ( nType == ::com::sun::star::i18n::DirectionProperty_RIGHT_TO_LEFT || + nType == ::com::sun::star::i18n::DirectionProperty_RIGHT_TO_LEFT_ARABIC || + nType == ::com::sun::star::i18n::DirectionProperty_RIGHT_TO_LEFT_EMBEDDING || + nType == ::com::sun::star::i18n::DirectionProperty_RIGHT_TO_LEFT_OVERRIDE + ) + isRTL = true; + } + } + + if (isRTL) // If so, reverse string + str = m_rProcessor.mirrorString( str ); + m_rEmitContext.rEmitter.beginTag( "text:span", aProps ); for(int i=0; i< elem.Text.getLength(); i++) @@ -179,7 +213,9 @@ void DrawXmlEmitter::visit( ParagraphElement& elem, const std::list< Element* >: void DrawXmlEmitter::fillFrameProps( DrawElement& rElem, PropertyMap& rProps, - const EmitContext& rEmitContext ) + const EmitContext& rEmitContext, + bool bWasTransformed + ) { double rel_x = rElem.x, rel_y = rElem.y; @@ -190,7 +226,7 @@ void DrawXmlEmitter::fillFrameProps( DrawElement& rElem, const GraphicsContext& rGC = rEmitContext.rProcessor.getGraphicsContext( rElem.GCId ); - if( rGC.Transformation.isIdentity() ) + if( rGC.Transformation.isIdentity() || bWasTransformed ) { rProps[ USTR( "svg:x" ) ] = convertPixelToUnitString( rel_x ); rProps[ USTR( "svg:y" ) ] = convertPixelToUnitString( rel_y ); @@ -317,7 +353,10 @@ void DrawXmlEmitter::visit( PolyPolyElement& elem, const std::list< Element* >:: } PropertyMap aProps; - fillFrameProps( elem, aProps, m_rEmitContext ); + // PDFIProcessor transforms geometrical objects, not images and text + // so we need to tell fillFrameProps here that the transformation for + // a PolyPolyElement was already applied (aside form translation) + fillFrameProps( elem, aProps, m_rEmitContext, true ); rtl::OUStringBuffer aBuf( 64 ); aBuf.appendAscii( "0 0 " ); aBuf.append( convPx2mmPrec2(elem.w)*100.0 ); diff --git a/sdext/source/pdfimport/tree/drawtreevisiting.hxx b/sdext/source/pdfimport/tree/drawtreevisiting.hxx index 1671b93..fd485c7 100644 --- a/sdext/source/pdfimport/tree/drawtreevisiting.hxx +++ b/sdext/source/pdfimport/tree/drawtreevisiting.hxx @@ -30,9 +30,11 @@ #define INCLUDED_PDFI_DRAWTREEVISITING_HXX #include "treevisiting.hxx" -#include <com/sun/star/i18n/XBreakIterator.hpp> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/uno/XComponentContext.hpp> + +#include "com/sun/star/i18n/XBreakIterator.hpp" +#include "com/sun/star/i18n/XCharacterClassification.hpp" +#include "com/sun/star/lang/XMultiServiceFactory.hpp" +#include "com/sun/star/uno/XComponentContext.hpp" namespace pdfi { @@ -90,6 +92,9 @@ namespace pdfi ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory; ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > xCtx; ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator > mxBreakIter; + ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XCharacterClassification > mxCharClass; + + PDFIProcessor& m_rProcessor; EmitContext& m_rEmitContext ; /// writes Impress doc when false @@ -97,12 +102,16 @@ namespace pdfi void fillFrameProps( DrawElement& rElem, PropertyMap& rProps, - const EmitContext& rEmitContext ); + const EmitContext& rEmitContext, + bool bWasTransformed = false + ); public: const ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator >& GetBreakIterator(); + const ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XCharacterClassification >& GetCharacterClassification(); enum DocType{ DRAW_DOC, IMPRESS_DOC }; - explicit DrawXmlEmitter(EmitContext& rEmitContext, DocType eDocType) : + explicit DrawXmlEmitter(EmitContext& rEmitContext, DocType eDocType, PDFIProcessor& rProc ) : + m_rProcessor( rProc ), m_rEmitContext(rEmitContext), m_bWriteDrawDocument(eDocType==DRAW_DOC) {} diff --git a/sdext/source/pdfimport/tree/pdfiprocessor.cxx b/sdext/source/pdfimport/tree/pdfiprocessor.cxx index cd94b97..806f24a 100644 --- a/sdext/source/pdfimport/tree/pdfiprocessor.cxx +++ b/sdext/source/pdfimport/tree/pdfiprocessor.cxx @@ -88,7 +88,8 @@ namespace pdfi m_fWordSpace(0.0), m_bIsWhiteSpaceInLine( false ), m_xStatusIndicator( xStat ), - m_bHaveTextOnDocLevel(false) + m_bHaveTextOnDocLevel(false), + m_bMirrorMapperTried(false) { FontAttributes aDefFont; aDefFont.familyName = USTR("Helvetica"); @@ -848,7 +849,7 @@ void PDFIProcessor::emit( XmlEmitter& rEmitter, EmitContext aContext( rEmitter, aStyles, m_aImages, *this, m_xStatusIndicator, m_xContext ); ElementTreeVisitorSharedPtr aEmittingVisitor( - rVisitorFactory.createEmittingVisitor(aContext)); + rVisitorFactory.createEmittingVisitor(aContext, *this)); PropertyMap aProps; // document prolog @@ -1046,6 +1047,416 @@ void PDFIProcessor::sortElements( Element* pEle, bool bDeep ) // over and out. return outRect; } + +// helper method: get a mirrored string +rtl::OUString PDFIProcessor::mirrorString( const rtl::OUString& i_rString ) +{ + if( ! m_xMirrorMapper.is() && ! m_bMirrorMapperTried ) + { + m_bMirrorMapperTried = true; + uno::Reference< lang::XMultiComponentFactory > xMSF( m_xContext->getServiceManager(), uno::UNO_SET_THROW ); + uno::Reference < uno::XInterface > xInterface = xMSF->createInstanceWithContext(::rtl::OUString::createFromAscii("com.sun.star.awt.StringMirror"), m_xContext); + m_xMirrorMapper = uno::Reference< util::XStringMapping >( xInterface, uno::UNO_QUERY ); + #if OSL_DEBUG_LEVEL > 1 + if( m_xMirrorMapper.is() ) + fprintf( stderr, "using mirror mapper service\n" ); + #endif + } + if( m_xMirrorMapper.is() ) + { + uno::Sequence< rtl::OUString > aSeq( 1 ); + aSeq.getArray()[0] = i_rString; + m_xMirrorMapper->mapStrings( aSeq ); + return aSeq[0]; + } + + prepareMirrorMap(); + sal_Int32 nLen = i_rString.getLength(); + rtl::OUStringBuffer aRet( nLen ); + for(int i = nLen - 1; i >= 0; i--) + { + sal_Unicode cChar = i_rString[ i ]; + aRet.append( m_aMirrorMap[cChar] ); + } + return aRet.makeStringAndClear(); +} + +void PDFIProcessor::prepareMirrorMap() +{ + if( m_aMirrorMap.empty() ) + { + #if OSL_DEBUG_LEVEL > 1 + fprintf( stderr, "falling back to static mirror list\n" ); + #endif + + m_aMirrorMap.reserve( 0x10000 ); + for( int i = 0; i < 0x10000; i++ ) + m_aMirrorMap.push_back( sal_Unicode(i) ); + + m_aMirrorMap[ 0x0028 ] = 0x0029; // LEFT PARENTHESIS + m_aMirrorMap[ 0x0029 ] = 0x0028; // RIGHT PARENTHESIS + m_aMirrorMap[ 0x003C ] = 0x003E; // LESS-THAN SIGN + m_aMirrorMap[ 0x003E ] = 0x003C; // GREATER-THAN SIGN + m_aMirrorMap[ 0x005B ] = 0x005D; // LEFT SQUARE BRACKET + m_aMirrorMap[ 0x005D ] = 0x005B; // RIGHT SQUARE BRACKET + m_aMirrorMap[ 0x007B ] = 0x007D; // LEFT CURLY BRACKET + m_aMirrorMap[ 0x007D ] = 0x007B; // RIGHT CURLY BRACKET + m_aMirrorMap[ 0x00AB ] = 0x00BB; // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + m_aMirrorMap[ 0x00BB ] = 0x00AB; // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + m_aMirrorMap[ 0x0F3A ] = 0x0F3B; // TIBETAN MARK GUG RTAGS GYON + m_aMirrorMap[ 0x0F3B ] = 0x0F3A; // TIBETAN MARK GUG RTAGS GYAS + m_aMirrorMap[ 0x0F3C ] = 0x0F3D; // TIBETAN MARK ANG KHANG GYON + m_aMirrorMap[ 0x0F3D ] = 0x0F3C; // TIBETAN MARK ANG KHANG GYAS + m_aMirrorMap[ 0x169B ] = 0x169C; // OGHAM FEATHER MARK + m_aMirrorMap[ 0x169C ] = 0x169B; // OGHAM REVERSED FEATHER MARK + m_aMirrorMap[ 0x2039 ] = 0x203A; // SINGLE LEFT-POINTING ANGLE QUOTATION MARK + m_aMirrorMap[ 0x203A ] = 0x2039; // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + m_aMirrorMap[ 0x2045 ] = 0x2046; // LEFT SQUARE BRACKET WITH QUILL + m_aMirrorMap[ 0x2046 ] = 0x2045; // RIGHT SQUARE BRACKET WITH QUILL + m_aMirrorMap[ 0x207D ] = 0x207E; // SUPERSCRIPT LEFT PARENTHESIS + m_aMirrorMap[ 0x207E ] = 0x207D; // SUPERSCRIPT RIGHT PARENTHESIS + m_aMirrorMap[ 0x208D ] = 0x208E; // SUBSCRIPT LEFT PARENTHESIS + m_aMirrorMap[ 0x208E ] = 0x208D; // SUBSCRIPT RIGHT PARENTHESIS + m_aMirrorMap[ 0x2208 ] = 0x220B; // ELEMENT OF + m_aMirrorMap[ 0x2209 ] = 0x220C; // NOT AN ELEMENT OF + m_aMirrorMap[ 0x220A ] = 0x220D; // SMALL ELEMENT OF + m_aMirrorMap[ 0x220B ] = 0x2208; // CONTAINS AS MEMBER + m_aMirrorMap[ 0x220C ] = 0x2209; // DOES NOT CONTAIN AS MEMBER + m_aMirrorMap[ 0x220D ] = 0x220A; // SMALL CONTAINS AS MEMBER + m_aMirrorMap[ 0x2215 ] = 0x29F5; // DIVISION SLASH + m_aMirrorMap[ 0x223C ] = 0x223D; // TILDE OPERATOR + m_aMirrorMap[ 0x223D ] = 0x223C; // REVERSED TILDE + m_aMirrorMap[ 0x2243 ] = 0x22CD; // ASYMPTOTICALLY EQUAL TO + m_aMirrorMap[ 0x2252 ] = 0x2253; // APPROXIMATELY EQUAL TO OR THE IMAGE OF + m_aMirrorMap[ 0x2253 ] = 0x2252; // IMAGE OF OR APPROXIMATELY EQUAL TO + m_aMirrorMap[ 0x2254 ] = 0x2255; // COLON EQUALS + m_aMirrorMap[ 0x2255 ] = 0x2254; // EQUALS COLON + m_aMirrorMap[ 0x2264 ] = 0x2265; // LESS-THAN OR EQUAL TO + m_aMirrorMap[ 0x2265 ] = 0x2264; // GREATER-THAN OR EQUAL TO + m_aMirrorMap[ 0x2266 ] = 0x2267; // LESS-THAN OVER EQUAL TO + m_aMirrorMap[ 0x2267 ] = 0x2266; // GREATER-THAN OVER EQUAL TO + m_aMirrorMap[ 0x2268 ] = 0x2269; // [BEST FIT] LESS-THAN BUT NOT EQUAL TO + m_aMirrorMap[ 0x2269 ] = 0x2268; // [BEST FIT] GREATER-THAN BUT NOT EQUAL TO + m_aMirrorMap[ 0x226A ] = 0x226B; // MUCH LESS-THAN + m_aMirrorMap[ 0x226B ] = 0x226A; // MUCH GREATER-THAN + m_aMirrorMap[ 0x226E ] = 0x226F; // [BEST FIT] NOT LESS-THAN + m_aMirrorMap[ 0x226F ] = 0x226E; // [BEST FIT] NOT GREATER-THAN + m_aMirrorMap[ 0x2270 ] = 0x2271; // [BEST FIT] NEITHER LESS-THAN NOR EQUAL TO + m_aMirrorMap[ 0x2271 ] = 0x2270; // [BEST FIT] NEITHER GREATER-THAN NOR EQUAL TO + m_aMirrorMap[ 0x2272 ] = 0x2273; // [BEST FIT] LESS-THAN OR EQUIVALENT TO + m_aMirrorMap[ 0x2273 ] = 0x2272; // [BEST FIT] GREATER-THAN OR EQUIVALENT TO + m_aMirrorMap[ 0x2274 ] = 0x2275; // [BEST FIT] NEITHER LESS-THAN NOR EQUIVALENT TO + m_aMirrorMap[ 0x2275 ] = 0x2274; // [BEST FIT] NEITHER GREATER-THAN NOR EQUIVALENT TO + m_aMirrorMap[ 0x2276 ] = 0x2277; // LESS-THAN OR GREATER-THAN + m_aMirrorMap[ 0x2277 ] = 0x2276; // GREATER-THAN OR LESS-THAN + m_aMirrorMap[ 0x2278 ] = 0x2279; // [BEST FIT] NEITHER LESS-THAN NOR GREATER-THAN + m_aMirrorMap[ 0x2279 ] = 0x2278; // [BEST FIT] NEITHER GREATER-THAN NOR LESS-THAN + m_aMirrorMap[ 0x227A ] = 0x227B; // PRECEDES + m_aMirrorMap[ 0x227B ] = 0x227A; // SUCCEEDS + m_aMirrorMap[ 0x227C ] = 0x227D; // PRECEDES OR EQUAL TO + m_aMirrorMap[ 0x227D ] = 0x227C; // SUCCEEDS OR EQUAL TO + m_aMirrorMap[ 0x227E ] = 0x227F; // [BEST FIT] PRECEDES OR EQUIVALENT TO + m_aMirrorMap[ 0x227F ] = 0x227E; // [BEST FIT] SUCCEEDS OR EQUIVALENT TO + m_aMirrorMap[ 0x2280 ] = 0x2281; // [BEST FIT] DOES NOT PRECEDE + m_aMirrorMap[ 0x2281 ] = 0x2280; // [BEST FIT] DOES NOT SUCCEED + m_aMirrorMap[ 0x2282 ] = 0x2283; // SUBSET OF + m_aMirrorMap[ 0x2283 ] = 0x2282; // SUPERSET OF + m_aMirrorMap[ 0x2284 ] = 0x2285; // [BEST FIT] NOT A SUBSET OF + m_aMirrorMap[ 0x2285 ] = 0x2284; // [BEST FIT] NOT A SUPERSET OF + m_aMirrorMap[ 0x2286 ] = 0x2287; // SUBSET OF OR EQUAL TO + m_aMirrorMap[ 0x2287 ] = 0x2286; // SUPERSET OF OR EQUAL TO + m_aMirrorMap[ 0x2288 ] = 0x2289; // [BEST FIT] NEITHER A SUBSET OF NOR EQUAL TO + m_aMirrorMap[ 0x2289 ] = 0x2288; // [BEST FIT] NEITHER A SUPERSET OF NOR EQUAL TO + m_aMirrorMap[ 0x228A ] = 0x228B; // [BEST FIT] SUBSET OF WITH NOT EQUAL TO + m_aMirrorMap[ 0x228B ] = 0x228A; // [BEST FIT] SUPERSET OF WITH NOT EQUAL TO + m_aMirrorMap[ 0x228F ] = 0x2290; // SQUARE IMAGE OF + m_aMirrorMap[ 0x2290 ] = 0x228F; // SQUARE ORIGINAL OF + m_aMirrorMap[ 0x2291 ] = 0x2292; // SQUARE IMAGE OF OR EQUAL TO + m_aMirrorMap[ 0x2292 ] = 0x2291; // SQUARE ORIGINAL OF OR EQUAL TO + m_aMirrorMap[ 0x2298 ] = 0x29B8; // CIRCLED DIVISION SLASH + m_aMirrorMap[ 0x22A2 ] = 0x22A3; // RIGHT TACK + m_aMirrorMap[ 0x22A3 ] = 0x22A2; // LEFT TACK + m_aMirrorMap[ 0x22A6 ] = 0x2ADE; // ASSERTION + m_aMirrorMap[ 0x22A8 ] = 0x2AE4; // TRUE + m_aMirrorMap[ 0x22A9 ] = 0x2AE3; // FORCES + m_aMirrorMap[ 0x22AB ] = 0x2AE5; // DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE + m_aMirrorMap[ 0x22B0 ] = 0x22B1; // PRECEDES UNDER RELATION + m_aMirrorMap[ 0x22B1 ] = 0x22B0; // SUCCEEDS UNDER RELATION + m_aMirrorMap[ 0x22B2 ] = 0x22B3; // NORMAL SUBGROUP OF + m_aMirrorMap[ 0x22B3 ] = 0x22B2; // CONTAINS AS NORMAL SUBGROUP + m_aMirrorMap[ 0x22B4 ] = 0x22B5; // NORMAL SUBGROUP OF OR EQUAL TO + m_aMirrorMap[ 0x22B5 ] = 0x22B4; // CONTAINS AS NORMAL SUBGROUP OR EQUAL TO + m_aMirrorMap[ 0x22B6 ] = 0x22B7; // ORIGINAL OF + m_aMirrorMap[ 0x22B7 ] = 0x22B6; // IMAGE OF + m_aMirrorMap[ 0x22C9 ] = 0x22CA; // LEFT NORMAL FACTOR SEMIDIRECT PRODUCT + m_aMirrorMap[ 0x22CA ] = 0x22C9; // RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT + m_aMirrorMap[ 0x22CB ] = 0x22CC; // LEFT SEMIDIRECT PRODUCT + m_aMirrorMap[ 0x22CC ] = 0x22CB; // RIGHT SEMIDIRECT PRODUCT + m_aMirrorMap[ 0x22CD ] = 0x2243; // REVERSED TILDE EQUALS + m_aMirrorMap[ 0x22D0 ] = 0x22D1; // DOUBLE SUBSET + m_aMirrorMap[ 0x22D1 ] = 0x22D0; // DOUBLE SUPERSET + m_aMirrorMap[ 0x22D6 ] = 0x22D7; // LESS-THAN WITH DOT + m_aMirrorMap[ 0x22D7 ] = 0x22D6; // GREATER-THAN WITH DOT + m_aMirrorMap[ 0x22D8 ] = 0x22D9; // VERY MUCH LESS-THAN + m_aMirrorMap[ 0x22D9 ] = 0x22D8; // VERY MUCH GREATER-THAN + m_aMirrorMap[ 0x22DA ] = 0x22DB; // LESS-THAN EQUAL TO OR GREATER-THAN + m_aMirrorMap[ 0x22DB ] = 0x22DA; // GREATER-THAN EQUAL TO OR LESS-THAN + m_aMirrorMap[ 0x22DC ] = 0x22DD; // EQUAL TO OR LESS-THAN + m_aMirrorMap[ 0x22DD ] = 0x22DC; // EQUAL TO OR GREATER-THAN + m_aMirrorMap[ 0x22DE ] = 0x22DF; // EQUAL TO OR PRECEDES + m_aMirrorMap[ 0x22DF ] = 0x22DE; // EQUAL TO OR SUCCEEDS + m_aMirrorMap[ 0x22E0 ] = 0x22E1; // [BEST FIT] DOES NOT PRECEDE OR EQUAL + m_aMirrorMap[ 0x22E1 ] = 0x22E0; // [BEST FIT] DOES NOT SUCCEED OR EQUAL + m_aMirrorMap[ 0x22E2 ] = 0x22E3; // [BEST FIT] NOT SQUARE IMAGE OF OR EQUAL TO + m_aMirrorMap[ 0x22E3 ] = 0x22E2; // [BEST FIT] NOT SQUARE ORIGINAL OF OR EQUAL TO + m_aMirrorMap[ 0x22E4 ] = 0x22E5; // [BEST FIT] SQUARE IMAGE OF OR NOT EQUAL TO + m_aMirrorMap[ 0x22E5 ] = 0x22E4; // [BEST FIT] SQUARE ORIGINAL OF OR NOT EQUAL TO + m_aMirrorMap[ 0x22E6 ] = 0x22E7; // [BEST FIT] LESS-THAN BUT NOT EQUIVALENT TO + m_aMirrorMap[ 0x22E7 ] = 0x22E6; // [BEST FIT] GREATER-THAN BUT NOT EQUIVALENT TO + m_aMirrorMap[ 0x22E8 ] = 0x22E9; // [BEST FIT] PRECEDES BUT NOT EQUIVALENT TO + m_aMirrorMap[ 0x22E9 ] = 0x22E8; // [BEST FIT] SUCCEEDS BUT NOT EQUIVALENT TO + m_aMirrorMap[ 0x22EA ] = 0x22EB; // [BEST FIT] NOT NORMAL SUBGROUP OF + m_aMirrorMap[ 0x22EB ] = 0x22EA; // [BEST FIT] DOES NOT CONTAIN AS NORMAL SUBGROUP + m_aMirrorMap[ 0x22EC ] = 0x22ED; // [BEST FIT] NOT NORMAL SUBGROUP OF OR EQUAL TO + m_aMirrorMap[ 0x22ED ] = 0x22EC; // [BEST FIT] DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL + m_aMirrorMap[ 0x22F0 ] = 0x22F1; // UP RIGHT DIAGONAL ELLIPSIS + m_aMirrorMap[ 0x22F1 ] = 0x22F0; // DOWN RIGHT DIAGONAL ELLIPSIS + m_aMirrorMap[ 0x22F2 ] = 0x22FA; // ELEMENT OF WITH LONG HORIZONTAL STROKE + m_aMirrorMap[ 0x22F3 ] = 0x22FB; // ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE + m_aMirrorMap[ 0x22F4 ] = 0x22FC; // SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE + m_aMirrorMap[ 0x22F6 ] = 0x22FD; // ELEMENT OF WITH OVERBAR + m_aMirrorMap[ 0x22F7 ] = 0x22FE; // SMALL ELEMENT OF WITH OVERBAR + m_aMirrorMap[ 0x22FA ] = 0x22F2; // CONTAINS WITH LONG HORIZONTAL STROKE + m_aMirrorMap[ 0x22FB ] = 0x22F3; // CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE + m_aMirrorMap[ 0x22FC ] = 0x22F4; // SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE + m_aMirrorMap[ 0x22FD ] = 0x22F6; // CONTAINS WITH OVERBAR + m_aMirrorMap[ 0x22FE ] = 0x22F7; // SMALL CONTAINS WITH OVERBAR + m_aMirrorMap[ 0x2308 ] = 0x2309; // LEFT CEILING + m_aMirrorMap[ 0x2309 ] = 0x2308; // RIGHT CEILING + m_aMirrorMap[ 0x230A ] = 0x230B; // LEFT FLOOR + m_aMirrorMap[ 0x230B ] = 0x230A; // RIGHT FLOOR + m_aMirrorMap[ 0x2329 ] = 0x232A; // LEFT-POINTING ANGLE BRACKET + m_aMirrorMap[ 0x232A ] = 0x2329; // RIGHT-POINTING ANGLE BRACKET + m_aMirrorMap[ 0x2768 ] = 0x2769; // MEDIUM LEFT PARENTHESIS ORNAMENT + m_aMirrorMap[ 0x2769 ] = 0x2768; // MEDIUM RIGHT PARENTHESIS ORNAMENT + m_aMirrorMap[ 0x276A ] = 0x276B; // MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT + m_aMirrorMap[ 0x276B ] = 0x276A; // MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT + m_aMirrorMap[ 0x276C ] = 0x276D; // MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT + m_aMirrorMap[ 0x276D ] = 0x276C; // MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT + m_aMirrorMap[ 0x276E ] = 0x276F; // HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT + m_aMirrorMap[ 0x276F ] = 0x276E; // HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT + m_aMirrorMap[ 0x2770 ] = 0x2771; // HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT + m_aMirrorMap[ 0x2771 ] = 0x2770; // HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT + m_aMirrorMap[ 0x2772 ] = 0x2773; // LIGHT LEFT TORTOISE SHELL BRACKET + m_aMirrorMap[ 0x2773 ] = 0x2772; // LIGHT RIGHT TORTOISE SHELL BRACKET + m_aMirrorMap[ 0x2774 ] = 0x2775; // MEDIUM LEFT CURLY BRACKET ORNAMENT + m_aMirrorMap[ 0x2775 ] = 0x2774; // MEDIUM RIGHT CURLY BRACKET ORNAMENT + m_aMirrorMap[ 0x27C3 ] = 0x27C4; // OPEN SUBSET + m_aMirrorMap[ 0x27C4 ] = 0x27C3; // OPEN SUPERSET + m_aMirrorMap[ 0x27C5 ] = 0x27C6; // LEFT S-SHAPED BAG DELIMITER + m_aMirrorMap[ 0x27C6 ] = 0x27C5; // RIGHT S-SHAPED BAG DELIMITER + m_aMirrorMap[ 0x27C8 ] = 0x27C9; // REVERSE SOLIDUS PRECEDING SUBSET + m_aMirrorMap[ 0x27C9 ] = 0x27C8; // SUPERSET PRECEDING SOLIDUS + m_aMirrorMap[ 0x27D5 ] = 0x27D6; // LEFT OUTER JOIN + m_aMirrorMap[ 0x27D6 ] = 0x27D5; // RIGHT OUTER JOIN + m_aMirrorMap[ 0x27DD ] = 0x27DE; // LONG RIGHT TACK + m_aMirrorMap[ 0x27DE ] = 0x27DD; // LONG LEFT TACK + m_aMirrorMap[ 0x27E2 ] = 0x27E3; // WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK + m_aMirrorMap[ 0x27E3 ] = 0x27E2; // WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK + m_aMirrorMap[ 0x27E4 ] = 0x27E5; // WHITE SQUARE WITH LEFTWARDS TICK + m_aMirrorMap[ 0x27E5 ] = 0x27E4; // WHITE SQUARE WITH RIGHTWARDS TICK + m_aMirrorMap[ 0x27E6 ] = 0x27E7; // MATHEMATICAL LEFT WHITE SQUARE BRACKET + m_aMirrorMap[ 0x27E7 ] = 0x27E6; // MATHEMATICAL RIGHT WHITE SQUARE BRACKET + m_aMirrorMap[ 0x27E8 ] = 0x27E9; // MATHEMATICAL LEFT ANGLE BRACKET + m_aMirrorMap[ 0x27E9 ] = 0x27E8; // MATHEMATICAL RIGHT ANGLE BRACKET + m_aMirrorMap[ 0x27EA ] = 0x27EB; // MATHEMATICAL LEFT DOUBLE ANGLE BRACKET + m_aMirrorMap[ 0x27EB ] = 0x27EA; // MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET + m_aMirrorMap[ 0x27EC ] = 0x27ED; // MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET + m_aMirrorMap[ 0x27ED ] = 0x27EC; // MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET + m_aMirrorMap[ 0x27EE ] = 0x27EF; // MATHEMATICAL LEFT FLATTENED PARENTHESIS + m_aMirrorMap[ 0x27EF ] = 0x27EE; // MATHEMATICAL RIGHT FLATTENED PARENTHESIS + m_aMirrorMap[ 0x2983 ] = 0x2984; // LEFT WHITE CURLY BRACKET + m_aMirrorMap[ 0x2984 ] = 0x2983; // RIGHT WHITE CURLY BRACKET + m_aMirrorMap[ 0x2985 ] = 0x2986; // LEFT WHITE PARENTHESIS + m_aMirrorMap[ 0x2986 ] = 0x2985; // RIGHT WHITE PARENTHESIS + m_aMirrorMap[ 0x2987 ] = 0x2988; // Z NOTATION LEFT IMAGE BRACKET + m_aMirrorMap[ 0x2988 ] = 0x2987; // Z NOTATION RIGHT IMAGE BRACKET + m_aMirrorMap[ 0x2989 ] = 0x298A; // Z NOTATION LEFT BINDING BRACKET + m_aMirrorMap[ 0x298A ] = 0x2989; // Z NOTATION RIGHT BINDING BRACKET + m_aMirrorMap[ 0x298B ] = 0x298C; // LEFT SQUARE BRACKET WITH UNDERBAR + m_aMirrorMap[ 0x298C ] = 0x298B; // RIGHT SQUARE BRACKET WITH UNDERBAR + m_aMirrorMap[ 0x298D ] = 0x2990; // LEFT SQUARE BRACKET WITH TICK IN TOP CORNER + m_aMirrorMap[ 0x298E ] = 0x298F; // RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER + m_aMirrorMap[ 0x298F ] = 0x298E; // LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER + m_aMirrorMap[ 0x2990 ] = 0x298D; // RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER + m_aMirrorMap[ 0x2991 ] = 0x2992; // LEFT ANGLE BRACKET WITH DOT + m_aMirrorMap[ 0x2992 ] = 0x2991; // RIGHT ANGLE BRACKET WITH DOT + m_aMirrorMap[ 0x2993 ] = 0x2994; // LEFT ARC LESS-THAN BRACKET + m_aMirrorMap[ 0x2994 ] = 0x2993; // RIGHT ARC GREATER-THAN BRACKET + m_aMirrorMap[ 0x2995 ] = 0x2996; // DOUBLE LEFT ARC GREATER-THAN BRACKET + m_aMirrorMap[ 0x2996 ] = 0x2995; // DOUBLE RIGHT ARC LESS-THAN BRACKET + m_aMirrorMap[ 0x2997 ] = 0x2998; // LEFT BLACK TORTOISE SHELL BRACKET + m_aMirrorMap[ 0x2998 ] = 0x2997; // RIGHT BLACK TORTOISE SHELL BRACKET + m_aMirrorMap[ 0x29B8 ] = 0x2298; // CIRCLED REVERSE SOLIDUS + m_aMirrorMap[ 0x29C0 ] = 0x29C1; // CIRCLED LESS-THAN + m_aMirrorMap[ 0x29C1 ] = 0x29C0; // CIRCLED GREATER-THAN + m_aMirrorMap[ 0x29C4 ] = 0x29C5; // SQUARED RISING DIAGONAL SLASH + m_aMirrorMap[ 0x29C5 ] = 0x29C4; // SQUARED FALLING DIAGONAL SLASH + m_aMirrorMap[ 0x29CF ] = 0x29D0; // LEFT TRIANGLE BESIDE VERTICAL BAR + m_aMirrorMap[ 0x29D0 ] = 0x29CF; // VERTICAL BAR BESIDE RIGHT TRIANGLE + m_aMirrorMap[ 0x29D1 ] = 0x29D2; // BOWTIE WITH LEFT HALF BLACK + m_aMirrorMap[ 0x29D2 ] = 0x29D1; // BOWTIE WITH RIGHT HALF BLACK + m_aMirrorMap[ 0x29D4 ] = 0x29D5; // TIMES WITH LEFT HALF BLACK + m_aMirrorMap[ 0x29D5 ] = 0x29D4; // TIMES WITH RIGHT HALF BLACK + m_aMirrorMap[ 0x29D8 ] = 0x29D9; // LEFT WIGGLY FENCE + m_aMirrorMap[ 0x29D9 ] = 0x29D8; // RIGHT WIGGLY FENCE + m_aMirrorMap[ 0x29DA ] = 0x29DB; // LEFT DOUBLE WIGGLY FENCE + m_aMirrorMap[ 0x29DB ] = 0x29DA; // RIGHT DOUBLE WIGGLY FENCE + m_aMirrorMap[ 0x29F5 ] = 0x2215; // REVERSE SOLIDUS OPERATOR + m_aMirrorMap[ 0x29F8 ] = 0x29F9; // BIG SOLIDUS + m_aMirrorMap[ 0x29F9 ] = 0x29F8; // BIG REVERSE SOLIDUS + m_aMirrorMap[ 0x29FC ] = 0x29FD; // LEFT-POINTING CURVED ANGLE BRACKET + m_aMirrorMap[ 0x29FD ] = 0x29FC; // RIGHT-POINTING CURVED ANGLE BRACKET + m_aMirrorMap[ 0x2A2B ] = 0x2A2C; // MINUS SIGN WITH FALLING DOTS + m_aMirrorMap[ 0x2A2C ] = 0x2A2B; // MINUS SIGN WITH RISING DOTS + m_aMirrorMap[ 0x2A2D ] = 0x2A2E; // PLUS SIGN IN LEFT HALF CIRCLE + m_aMirrorMap[ 0x2A2E ] = 0x2A2D; // PLUS SIGN IN RIGHT HALF CIRCLE + m_aMirrorMap[ 0x2A34 ] = 0x2A35; // MULTIPLICATION SIGN IN LEFT HALF CIRCLE + m_aMirrorMap[ 0x2A35 ] = 0x2A34; // MULTIPLICATION SIGN IN RIGHT HALF CIRCLE + m_aMirrorMap[ 0x2A3C ] = 0x2A3D; // INTERIOR PRODUCT + m_aMirrorMap[ 0x2A3D ] = 0x2A3C; // RIGHTHAND INTERIOR PRODUCT + m_aMirrorMap[ 0x2A64 ] = 0x2A65; // Z NOTATION DOMAIN ANTIRESTRICTION + m_aMirrorMap[ 0x2A65 ] = 0x2A64; // Z NOTATION RANGE ANTIRESTRICTION + m_aMirrorMap[ 0x2A79 ] = 0x2A7A; // LESS-THAN WITH CIRCLE INSIDE + m_aMirrorMap[ 0x2A7A ] = 0x2A79; // GREATER-THAN WITH CIRCLE INSIDE + m_aMirrorMap[ 0x2A7D ] = 0x2A7E; // LESS-THAN OR SLANTED EQUAL TO + m_aMirrorMap[ 0x2A7E ] = 0x2A7D; // GREATER-THAN OR SLANTED EQUAL TO + m_aMirrorMap[ 0x2A7F ] = 0x2A80; // LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE + m_aMirrorMap[ 0x2A80 ] = 0x2A7F; // GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE + m_aMirrorMap[ 0x2A81 ] = 0x2A82; // LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE + m_aMirrorMap[ 0x2A82 ] = 0x2A81; // GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE + m_aMirrorMap[ 0x2A83 ] = 0x2A84; // LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT + m_aMirrorMap[ 0x2A84 ] = 0x2A83; // GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT + m_aMirrorMap[ 0x2A8B ] = 0x2A8C; // LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN + m_aMirrorMap[ 0x2A8C ] = 0x2A8B; // GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN + m_aMirrorMap[ 0x2A91 ] = 0x2A92; // LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL + m_aMirrorMap[ 0x2A92 ] = 0x2A91; // GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL + m_aMirrorMap[ 0x2A93 ] = 0x2A94; // LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL + m_aMirrorMap[ 0x2A94 ] = 0x2A93; // GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL + m_aMirrorMap[ 0x2A95 ] = 0x2A96; // SLANTED EQUAL TO OR LESS-THAN + m_aMirrorMap[ 0x2A96 ] = 0x2A95; // SLANTED EQUAL TO OR GREATER-THAN + m_aMirrorMap[ 0x2A97 ] = 0x2A98; // SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE + m_aMirrorMap[ 0x2A98 ] = 0x2A97; // SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE + m_aMirrorMap[ 0x2A99 ] = 0x2A9A; // DOUBLE-LINE EQUAL TO OR LESS-THAN + m_aMirrorMap[ 0x2A9A ] = 0x2A99; // DOUBLE-LINE EQUAL TO OR GREATER-THAN + m_aMirrorMap[ 0x2A9B ] = 0x2A9C; // DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN + m_aMirrorMap[ 0x2A9C ] = 0x2A9B; // DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN + m_aMirrorMap[ 0x2AA1 ] = 0x2AA2; // DOUBLE NESTED LESS-THAN + m_aMirrorMap[ 0x2AA2 ] = 0x2AA1; // DOUBLE NESTED GREATER-THAN + m_aMirrorMap[ 0x2AA6 ] = 0x2AA7; // LESS-THAN CLOSED BY CURVE + m_aMirrorMap[ 0x2AA7 ] = 0x2AA6; // GREATER-THAN CLOSED BY CURVE + m_aMirrorMap[ 0x2AA8 ] = 0x2AA9; // LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL + m_aMirrorMap[ 0x2AA9 ] = 0x2AA8; // GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL + m_aMirrorMap[ 0x2AAA ] = 0x2AAB; // SMALLER THAN + m_aMirrorMap[ 0x2AAB ] = 0x2AAA; // LARGER THAN + m_aMirrorMap[ 0x2AAC ] = 0x2AAD; // SMALLER THAN OR EQUAL TO + m_aMirrorMap[ 0x2AAD ] = 0x2AAC; // LARGER THAN OR EQUAL TO + m_aMirrorMap[ 0x2AAF ] = 0x2AB0; // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN + m_aMirrorMap[ 0x2AB0 ] = 0x2AAF; // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN + m_aMirrorMap[ 0x2AB3 ] = 0x2AB4; // PRECEDES ABOVE EQUALS SIGN + m_aMirrorMap[ 0x2AB4 ] = 0x2AB3; // SUCCEEDS ABOVE EQUALS SIGN + m_aMirrorMap[ 0x2ABB ] = 0x2ABC; // DOUBLE PRECEDES + m_aMirrorMap[ 0x2ABC ] = 0x2ABB; // DOUBLE SUCCEEDS + m_aMirrorMap[ 0x2ABD ] = 0x2ABE; // SUBSET WITH DOT + m_aMirrorMap[ 0x2ABE ] = 0x2ABD; // SUPERSET WITH DOT + m_aMirrorMap[ 0x2ABF ] = 0x2AC0; // SUBSET WITH PLUS SIGN BELOW + m_aMirrorMap[ 0x2AC0 ] = 0x2ABF; // SUPERSET WITH PLUS SIGN BELOW + m_aMirrorMap[ 0x2AC1 ] = 0x2AC2; // SUBSET WITH MULTIPLICATION SIGN BELOW + m_aMirrorMap[ 0x2AC2 ] = 0x2AC1; // SUPERSET WITH MULTIPLICATION SIGN BELOW + m_aMirrorMap[ 0x2AC3 ] = 0x2AC4; // SUBSET OF OR EQUAL TO WITH DOT ABOVE + m_aMirrorMap[ 0x2AC4 ] = 0x2AC3; // SUPERSET OF OR EQUAL TO WITH DOT ABOVE + m_aMirrorMap[ 0x2AC5 ] = 0x2AC6; // SUBSET OF ABOVE EQUALS SIGN + m_aMirrorMap[ 0x2AC6 ] = 0x2AC5; // SUPERSET OF ABOVE EQUALS SIGN + m_aMirrorMap[ 0x2ACD ] = 0x2ACE; // SQUARE LEFT OPEN BOX OPERATOR + m_aMirrorMap[ 0x2ACE ] = 0x2ACD; // SQUARE RIGHT OPEN BOX OPERATOR + m_aMirrorMap[ 0x2ACF ] = 0x2AD0; // CLOSED SUBSET + m_aMirrorMap[ 0x2AD0 ] = 0x2ACF; // CLOSED SUPERSET + m_aMirrorMap[ 0x2AD1 ] = 0x2AD2; // CLOSED SUBSET OR EQUAL TO + m_aMirrorMap[ 0x2AD2 ] = 0x2AD1; // CLOSED SUPERSET OR EQUAL TO + m_aMirrorMap[ 0x2AD3 ] = 0x2AD4; // SUBSET ABOVE SUPERSET + m_aMirrorMap[ 0x2AD4 ] = 0x2AD3; // SUPERSET ABOVE SUBSET + m_aMirrorMap[ 0x2AD5 ] = 0x2AD6; // SUBSET ABOVE SUBSET + m_aMirrorMap[ 0x2AD6 ] = 0x2AD5; // SUPERSET ABOVE SUPERSET + m_aMirrorMap[ 0x2ADE ] = 0x22A6; // SHORT LEFT TACK + m_aMirrorMap[ 0x2AE3 ] = 0x22A9; // DOUBLE VERTICAL BAR LEFT TURNSTILE + m_aMirrorMap[ 0x2AE4 ] = 0x22A8; // VERTICAL BAR DOUBLE LEFT TURNSTILE + m_aMirrorMap[ 0x2AE5 ] = 0x22AB; // DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE + m_aMirrorMap[ 0x2AEC ] = 0x2AED; // DOUBLE STROKE NOT SIGN + m_aMirrorMap[ 0x2AED ] = 0x2AEC; // REVERSED DOUBLE STROKE NOT SIGN + m_aMirrorMap[ 0x2AF7 ] = 0x2AF8; // TRIPLE NESTED LESS-THAN + m_aMirrorMap[ 0x2AF8 ] = 0x2AF7; // TRIPLE NESTED GREATER-THAN + m_aMirrorMap[ 0x2AF9 ] = 0x2AFA; // DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO + m_aMirrorMap[ 0x2AFA ] = 0x2AF9; // DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO + m_aMirrorMap[ 0x2E02 ] = 0x2E03; // LEFT SUBSTITUTION BRACKET + m_aMirrorMap[ 0x2E03 ] = 0x2E02; // RIGHT SUBSTITUTION BRACKET + m_aMirrorMap[ 0x2E04 ] = 0x2E05; // LEFT DOTTED SUBSTITUTION BRACKET + m_aMirrorMap[ 0x2E05 ] = 0x2E04; // RIGHT DOTTED SUBSTITUTION BRACKET + m_aMirrorMap[ 0x2E09 ] = 0x2E0A; // LEFT TRANSPOSITION BRACKET + m_aMirrorMap[ 0x2E0A ] = 0x2E09; // RIGHT TRANSPOSITION BRACKET + m_aMirrorMap[ 0x2E0C ] = 0x2E0D; // LEFT RAISED OMISSION BRACKET + m_aMirrorMap[ 0x2E0D ] = 0x2E0C; // RIGHT RAISED OMISSION BRACKET + m_aMirrorMap[ 0x2E1C ] = 0x2E1D; // LEFT LOW PARAPHRASE BRACKET + m_aMirrorMap[ 0x2E1D ] = 0x2E1C; // RIGHT LOW PARAPHRASE BRACKET + m_aMirrorMap[ 0x2E20 ] = 0x2E21; // LEFT VERTICAL BAR WITH QUILL + m_aMirrorMap[ 0x2E21 ] = 0x2E20; // RIGHT VERTICAL BAR WITH QUILL + m_aMirrorMap[ 0x2E22 ] = 0x2E23; // TOP LEFT HALF BRACKET + m_aMirrorMap[ 0x2E23 ] = 0x2E22; // TOP RIGHT HALF BRACKET + m_aMirrorMap[ 0x2E24 ] = 0x2E25; // BOTTOM LEFT HALF BRACKET + m_aMirrorMap[ 0x2E25 ] = 0x2E24; // BOTTOM RIGHT HALF BRACKET + m_aMirrorMap[ 0x2E26 ] = 0x2E27; // LEFT SIDEWAYS U BRACKET + m_aMirrorMap[ 0x2E27 ] = 0x2E26; // RIGHT SIDEWAYS U BRACKET + m_aMirrorMap[ 0x2E28 ] = 0x2E29; // LEFT DOUBLE PARENTHESIS + m_aMirrorMap[ 0x2E29 ] = 0x2E28; // RIGHT DOUBLE PARENTHESIS + m_aMirrorMap[ 0x3008 ] = 0x3009; // LEFT ANGLE BRACKET + m_aMirrorMap[ 0x3009 ] = 0x3008; // RIGHT ANGLE BRACKET + m_aMirrorMap[ 0x300A ] = 0x300B; // LEFT DOUBLE ANGLE BRACKET + m_aMirrorMap[ 0x300B ] = 0x300A; // RIGHT DOUBLE ANGLE BRACKET + m_aMirrorMap[ 0x300C ] = 0x300D; // [BEST FIT] LEFT CORNER BRACKET + m_aMirrorMap[ 0x300D ] = 0x300C; // [BEST FIT] RIGHT CORNER BRACKET + m_aMirrorMap[ 0x300E ] = 0x300F; // [BEST FIT] LEFT WHITE CORNER BRACKET + m_aMirrorMap[ 0x300F ] = 0x300E; // [BEST FIT] RIGHT WHITE CORNER BRACKET + m_aMirrorMap[ 0x3010 ] = 0x3011; // LEFT BLACK LENTICULAR BRACKET + m_aMirrorMap[ 0x3011 ] = 0x3010; // RIGHT BLACK LENTICULAR BRACKET + m_aMirrorMap[ 0x3014 ] = 0x3015; // LEFT TORTOISE SHELL BRACKET + m_aMirrorMap[ 0x3015 ] = 0x3014; // RIGHT TORTOISE SHELL BRACKET + m_aMirrorMap[ 0x3016 ] = 0x3017; // LEFT WHITE LENTICULAR BRACKET + m_aMirrorMap[ 0x3017 ] = 0x3016; // RIGHT WHITE LENTICULAR BRACKET + m_aMirrorMap[ 0x3018 ] = 0x3019; // LEFT WHITE TORTOISE SHELL BRACKET + m_aMirrorMap[ 0x3019 ] = 0x3018; // RIGHT WHITE TORTOISE SHELL BRACKET + m_aMirrorMap[ 0x301A ] = 0x301B; // LEFT WHITE SQUARE BRACKET + m_aMirrorMap[ 0x301B ] = 0x301A; // RIGHT WHITE SQUARE BRACKET + m_aMirrorMap[ 0xFE59 ] = 0xFE5A; // SMALL LEFT PARENTHESIS + m_aMirrorMap[ 0xFE5A ] = 0xFE59; // SMALL RIGHT PARENTHESIS + m_aMirrorMap[ 0xFE5B ] = 0xFE5C; // SMALL LEFT CURLY BRACKET + m_aMirrorMap[ 0xFE5C ] = 0xFE5B; // SMALL RIGHT CURLY BRACKET + m_aMirrorMap[ 0xFE5D ] = 0xFE5E; // SMALL LEFT TORTOISE SHELL BRACKET + m_aMirrorMap[ 0xFE5E ] = 0xFE5D; // SMALL RIGHT TORTOISE SHELL BRACKET + m_aMirrorMap[ 0xFE64 ] = 0xFE65; // SMALL LESS-THAN SIGN + m_aMirrorMap[ 0xFE65 ] = 0xFE64; // SMALL GREATER-THAN SIGN + m_aMirrorMap[ 0xFF08 ] = 0xFF09; // FULLWIDTH LEFT PARENTHESIS + m_aMirrorMap[ 0xFF09 ] = 0xFF08; // FULLWIDTH RIGHT PARENTHESIS + m_aMirrorMap[ 0xFF1C ] = 0xFF1E; // FULLWIDTH LESS-THAN SIGN + m_aMirrorMap[ 0xFF1E ] = 0xFF1C; // FULLWIDTH GREATER-THAN SIGN + m_aMirrorMap[ 0xFF3B ] = 0xFF3D; // FULLWIDTH LEFT SQUARE BRACKET + m_aMirrorMap[ 0xFF3D ] = 0xFF3B; // FULLWIDTH RIGHT SQUARE BRACKET + m_aMirrorMap[ 0xFF5B ] = 0xFF5D; // FULLWIDTH LEFT CURLY BRACKET + m_aMirrorMap[ 0xFF5D ] = 0xFF5B; // FULLWIDTH RIGHT CURLY BRACKET + m_aMirrorMap[ 0xFF5F ] = 0xFF60; // FULLWIDTH LEFT WHITE PARENTHESIS + m_aMirrorMap[ 0xFF60 ] = 0xFF5F; // FULLWIDTH RIGHT WHITE PARENTHESIS + m_aMirrorMap[ 0xFF62 ] = 0xFF63; // [BEST FIT] HALFWIDTH LEFT CORNER BRACKET + m_aMirrorMap[ 0xFF63 ] = 0xFF62; // [BEST FIT] HALFWIDTH RIGHT CORNER BRACKET + } +} } diff --git a/sdext/source/pdfimport/tree/pdfiprocessor.hxx b/sdext/source/pdfimport/tree/pdfiprocessor.hxx index 2aa0dce..61c8d40 100644 --- a/sdext/source/pdfimport/tree/pdfiprocessor.hxx +++ b/sdext/source/pdfimport/tree/pdfiprocessor.hxx @@ -29,6 +29,7 @@ #ifndef INCLUDED_PDFI_PROCESSOR_HXX #define INCLUDED_PDFI_PROCESSOR_HXX +#include <com/sun/star/util/XStringMapping.hpp> #include <com/sun/star/xml/sax/XDocumentHandler.hpp> #include <com/sun/star/task/XStatusIndicator.hpp> #include <com/sun/star/rendering/XVolatileBitmap.hpp> @@ -108,8 +109,11 @@ namespace pdfi void sortElements( Element* pElement, bool bDeep = false ); void sortDocument( bool bDeep = false ); + + rtl::OUString mirrorString( const rtl::OUString& i_rInString ); private: + void prepareMirrorMap(); void processGlyphLine(); void processGlyph( double fPreAvarageSpaceValue, CharGlyph& rGlyph, @@ -243,6 +247,11 @@ namespace pdfi m_xStatusIndicator; bool m_bHaveTextOnDocLevel; + std::vector< sal_Unicode > m_aMirrorMap; + com::sun::star::uno::Reference< + com::sun::star::util::XStringMapping > + m_xMirrorMapper; + bool m_bMirrorMapperTried; }; class CharGlyph { diff --git a/sdext/source/pdfimport/tree/treevisitorfactory.cxx b/sdext/source/pdfimport/tree/treevisitorfactory.cxx index 02f7896..6608316 100644 --- a/sdext/source/pdfimport/tree/treevisitorfactory.cxx +++ b/sdext/source/pdfimport/tree/treevisitorfactory.cxx @@ -51,7 +51,7 @@ namespace pdfi return boost::shared_ptr<ElementTreeVisitor>(new WriterXmlFinalizer(rStyles,rProc)); } - virtual boost::shared_ptr<ElementTreeVisitor> createEmittingVisitor(EmitContext& rEmitContext) const + virtual boost::shared_ptr<ElementTreeVisitor> createEmittingVisitor(EmitContext& rEmitContext, PDFIProcessor&) const { return boost::shared_ptr<ElementTreeVisitor>(new WriterXmlEmitter(rEmitContext)); } @@ -73,10 +73,12 @@ namespace pdfi return boost::shared_ptr<ElementTreeVisitor>(new DrawXmlFinalizer(rStyles,rProc)); } - virtual boost::shared_ptr<ElementTreeVisitor> createEmittingVisitor(EmitContext& rEmitContext) const + virtual boost::shared_ptr<ElementTreeVisitor> createEmittingVisitor(EmitContext& rEmitContext, PDFIProcessor& rProc) const { return boost::shared_ptr<ElementTreeVisitor>(new DrawXmlEmitter(rEmitContext, - DrawXmlEmitter::IMPRESS_DOC)); + DrawXmlEmitter::IMPRESS_DOC, + rProc + )); } }; @@ -96,10 +98,12 @@ namespace pdfi return boost::shared_ptr<ElementTreeVisitor>(new DrawXmlFinalizer(rStyles,rProc)); } - virtual boost::shared_ptr<ElementTreeVisitor> createEmittingVisitor(EmitContext& rEmitContext) const + virtual boost::shared_ptr<ElementTreeVisitor> createEmittingVisitor(EmitContext& rEmitContext, PDFIProcessor& rProc) const { return boost::shared_ptr<ElementTreeVisitor>(new DrawXmlEmitter(rEmitContext, - DrawXmlEmitter::DRAW_DOC)); + DrawXmlEmitter::DRAW_DOC, + rProc + )); } }; diff --git a/sdext/source/pdfimport/wrapper/wrapper.cxx b/sdext/source/pdfimport/wrapper/wrapper.cxx index 047ccf5..3c48fbb 100644 --- a/sdext/source/pdfimport/wrapper/wrapper.cxx +++ b/sdext/source/pdfimport/wrapper/wrapper.cxx @@ -159,6 +159,8 @@ class Parser sal_Int32 m_nNextToken; sal_Int32 m_nCharIndex; + const double minAreaThreshold; + const double minLineWidth; ::rtl::OString readNextToken(); void readInt32( sal_Int32& o_Value ); @@ -168,7 +170,7 @@ class Parser double readDouble(); void readBinaryData( uno::Sequence<sal_Int8>& rBuf ); - uno::Reference<rendering::XPolyPolygon2D> readPath(); + uno::Reference<rendering::XPolyPolygon2D> readPath( double* ); void readChar(); void readLineCap(); @@ -200,7 +202,9 @@ public: m_aLine(), m_aFontMap(101), m_nNextToken(-1), - m_nCharIndex(-1) + m_nCharIndex(-1), + minAreaThreshold( 300.0 ), + minLineWidth( 12 ) {} void parseLine( const ::rtl::OString& rLine ); @@ -307,7 +311,7 @@ void Parser::readBinaryData( uno::Sequence<sal_Int8>& rBuf ) OSL_PRECOND(nRes==osl_File_E_None, "inconsistent data"); } -uno::Reference<rendering::XPolyPolygon2D> Parser::readPath() +uno::Reference<rendering::XPolyPolygon2D> Parser::readPath( double* pArea = NULL ) { const rtl::OString aSubPathMarker( "subpath" ); @@ -366,6 +370,15 @@ uno::Reference<rendering::XPolyPolygon2D> Parser::readPath() if( m_nCharIndex != -1 ) readNextToken(); } + + if( pArea ) + { + basegfx::B2DRange aRange( aResult.getB2DRange() ); + if( aRange.getWidth() <= minLineWidth || aRange.getHeight() <= minLineWidth) + *pArea = 0.0; + else + *pArea = aRange.getWidth() * aRange.getHeight(); + } return static_cast<rendering::XLinePolyPolygon2D*>( new basegfx::unotools::UnoPolyPolygon(aResult)); @@ -806,9 +819,25 @@ void Parser::parseLine( const ::rtl::OString& rLine ) case EOCLIPPATH: m_pSink->intersectEoClip(readPath()); break; case EOFILLPATH: - m_pSink->eoFillPath(readPath()); break; + { + double area = 0.0; + uno::Reference<rendering::XPolyPolygon2D> path = readPath( &area ); + m_pSink->eoFillPath(path); + // if area is smaller than required, add borders. + if(area < minAreaThreshold) + m_pSink->strokePath(path); + } + break; case FILLPATH: - m_pSink->fillPath(readPath()); break; + { + double area = 0.0; + uno::Reference<rendering::XPolyPolygon2D> path = readPath( &area ); + m_pSink->fillPath(path); + // if area is smaller than required, add borders. + if(area < minAreaThreshold) + m_pSink->strokePath(path); + } + break; case RESTORESTATE: m_pSink->popState(); break; case SAVESTATE: @@ -914,6 +943,8 @@ static bool checkEncryption( const rtl::OUString& rtl::OString aIsoPwd = rtl::OUStringToOString( io_rPwd, RTL_TEXTENCODING_ISO_8859_1 ); bAuthenticated = pPDFFile->setupDecryptionData( aIsoPwd.getStr() ); + // trash password string on heap + rtl_zeroMemory( (void*)aIsoPwd.getStr(), aIsoPwd.getLength() ); } if( bAuthenticated ) bSuccess = true; @@ -928,12 +959,23 @@ static bool checkEncryption( const rtl::OUString& rtl::OString aIsoPwd = rtl::OUStringToOString( io_rPwd, RTL_TEXTENCODING_ISO_8859_1 ); bAuthenticated = pPDFFile->setupDecryptionData( aIsoPwd.getStr() ); + // trash password string on heap + rtl_zeroMemory( (void*)aIsoPwd.getStr(), aIsoPwd.getLength() ); } while( bEntered && ! bAuthenticated ); } OSL_TRACE( "password: %s\n", bAuthenticated ? "matches" : "does not match" ); bSuccess = bAuthenticated; } + // trash password string on heap + rtl_zeroMemory( (void*)io_rPwd.getStr(), io_rPwd.getLength()*sizeof(sal_Unicode) ); + if( bAuthenticated ) + { + rtl::OUStringBuffer aBuf( 128 ); + aBuf.appendAscii( "_OOO_pdfi_Credentials_" ); + aBuf.append( pPDFFile->getDecryptionKey() ); + io_rPwd = aBuf.makeStringAndClear(); + } } else bSuccess = true; diff --git a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx index be79aea..4bdc288 100644 --- a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx +++ b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx @@ -107,8 +107,8 @@ int main(int argc, char **argv) #endif // try to read a possible open password form stdin - char aPwBuf[34]; - aPwBuf[33] = 0; + char aPwBuf[129]; + aPwBuf[128] = 0; if( ! fgets( aPwBuf, sizeof(aPwBuf)-1, stdin ) ) aPwBuf[0] = 0; // mark as empty else @@ -132,17 +132,17 @@ int main(int argc, char **argv) // check for password string(s) - GooString* pOwnerPasswordStr( ownerPassword[0] != '\001' - ? new GooString(ownerPassword) - : (GooString *)NULL ); - GooString* pUserPasswordStr( aPwBuf[0] != 0 + GooString* pOwnerPasswordStr( aPwBuf[0] != 0 ? new GooString( aPwBuf ) - : ( userPassword[0] != '\001' - ? new GooString(userPassword) - : (GooString *)NULL ) ); + : (ownerPassword[0] != '\001' + ? new GooString(ownerPassword) + : (GooString *)NULL ) ); + GooString* pUserPasswordStr( userPassword[0] != '\001' + ? new GooString(userPassword) + : (GooString *)NULL ); if( outputFile[0] != '\001' ) g_binary_out = fopen(outputFile,"wb"); - + #ifdef WNT // Win actually modifies output for O_TEXT file mode, so need to // revert to binary here @@ -184,7 +184,6 @@ int main(int argc, char **argv) } else { - pdfi::PDFOutDev* pOutDev( new pdfi::PDFOutDev(&aDoc) ); // tell receiver early - needed for proper progress calculation diff --git a/sdext/source/presenter/description.xml b/sdext/source/presenter/description.xml index 85393f7..85393f7 100755..100644 --- a/sdext/source/presenter/description.xml +++ b/sdext/source/presenter/description.xml diff --git a/sdext/source/presenter/makefile.mk b/sdext/source/presenter/makefile.mk index 6fe1db1..3c93866 100755..100644 --- a/sdext/source/presenter/makefile.mk +++ b/sdext/source/presenter/makefile.mk @@ -108,7 +108,7 @@ SHL1DEPN= SHL1IMPLIB= i$(SHL1TARGET) SHL1LIBS= $(SLB)$/$(TARGET).lib SHL1DEF= $(MISC)$/$(SHL1TARGET).def -SHL1VERSIONMAP=$(SOLARENV)/src/component.map +SHL1VERSIONMAP=$(SOLARENV)/src/reg-component.map SHL1RPATH= OXT DEF1NAME= $(SHL1TARGET) @@ -293,8 +293,11 @@ $(ZIP1DIR)/help/%/com.sun.PresenterScreen-$(PLATFORMID)/presenter.xhp : $(COMMON @-$(MKDIRHIER) $(@:d) $(TYPE) $< | sed "s/PLATFORMID/$(PLATFORMID)/" | sed 's/@PRESENTEREXTENSIONPRODUCTNAME@/Presenter Console/g' > $@ +.IF "$(ZIP1TARGETN)"!="" $(ZIP1TARGETN) : $(HELPLINKALLTARGETS) +.ENDIF # "$(ZIP1TARGETN)"!="" + $(COMPONENT_BITMAPS) : bitmaps$/$$(@:f) @-$(MKDIRHIER) $(@:d) +$(COPY) $< $@ diff --git a/xpdf/makefile.mk b/xpdf/makefile.mk index c3dea0f..191eefd 100644 --- a/xpdf/makefile.mk +++ b/xpdf/makefile.mk @@ -48,7 +48,7 @@ dummy: TARFILE_NAME=xpdf-3.02 TARFILE_MD5=599dc4cc65a07ee868cf92a667a913d2 -PATCH_FILES=$(TARFILE_NAME).patch +PATCH_FILES=$(TARFILE_NAME).patch xpdf-3.02-ooopwd.patch CONFIGURE_DIR= BUILD_DIR=$(CONFIGURE_DIR) diff --git a/xpdf/xpdf-3.02-ooopwd.patch b/xpdf/xpdf-3.02-ooopwd.patch new file mode 100644 index 0000000..f773585 --- /dev/null +++ b/xpdf/xpdf-3.02-ooopwd.patch @@ -0,0 +1,101 @@ +--- misc/xpdf-3.02/xpdf/SecurityHandler.cc 2007-02-27 23:05:52.000000000 +0100 ++++ misc/build/xpdf-3.02/xpdf/SecurityHandler.cc 2011-02-03 16:41:49.000000000 +0100 +@@ -40,7 +40,7 @@ + + encryptDictA->dictLookup("Filter", &filterObj); + if (filterObj.isName("Standard")) { +- secHdlr = new StandardSecurityHandler(docA, encryptDictA); ++ secHdlr = new OOoImportSecurityhandler(docA, encryptDictA); + } else if (filterObj.isName()) { + #ifdef ENABLE_PLUGINS + if ((xsh = globalParams->getSecurityHandler(filterObj.getName()))) { +@@ -310,6 +310,60 @@ + return gTrue; + } + ++//------------------------------------------------------------------------ ++// OOoImportSecurityhandler ++//------------------------------------------------------------------------ ++ ++OOoImportSecurityhandler::~OOoImportSecurityhandler() ++{ ++} ++ ++inline Guchar toNum( Guchar digit ) ++{ ++ return (digit >= '0') && digit <= '9' ++ ? digit - '0' ++ : (digit >= 'A' && digit <= 'F') ++ ? digit - 'A' + 10 ++ : (digit >= 'a' && digit <= 'f') ++ ? digit - 'a' + 10 ++ : Guchar(0xff); ++} ++ ++GBool OOoImportSecurityhandler::authorize(void* authData) ++{ ++ if( !ok ) ++ return gFalse; ++ if( authData ) ++ { ++ GString* ownerPassword = ((StandardAuthData *)authData)->ownerPassword; ++ if( ownerPassword ) ++ { ++ const char* pStr = ownerPassword->getCString(); ++ if( strncmp( pStr, "_OOO_pdfi_Credentials_", 22 ) == 0 ) ++ { ++ // a hex encoded byte sequence should follow until end of string ++ // the length must match fileKeyLength ++ // if this is the case we can assume that the password checked out ++ // and the file key is valid ++ // max len is 16 (the size of the fileKey array) ++ pStr += 22; ++ size_t i = 0; ++ while( pStr[0] && pStr[1] && i < sizeof( fileKey ) ) ++ { ++ fileKey[i++] = (toNum( *pStr++ ) << 4) ++ | (toNum( *pStr++ )); ++ } ++ if( i == size_t(fileKeyLength) ) ++ { ++ ownerPasswordOk = gTrue; ++ return gTrue; ++ } ++ } ++ } ++ } ++ return StandardSecurityHandler::authorize( authData ); ++} ++ + #ifdef ENABLE_PLUGINS + + //------------------------------------------------------------------------ +--- misc/xpdf-3.02/xpdf/SecurityHandler.h 2007-02-27 23:05:52.000000000 +0100 ++++ misc/build/xpdf-3.02/xpdf/SecurityHandler.h 2011-02-03 16:26:17.000000000 +0100 +@@ -103,7 +103,7 @@ + virtual int getEncVersion() { return encVersion; } + virtual CryptAlgorithm getEncAlgorithm() { return encAlgorithm; } + +-private: ++protected: + + int permFlags; + GBool ownerPasswordOk; +@@ -119,6 +119,17 @@ + GBool ok; + }; + ++class OOoImportSecurityhandler : public StandardSecurityHandler ++{ ++public: ++ OOoImportSecurityhandler( PDFDoc* docA, Object* encryptDictA ) ++ : StandardSecurityHandler( docA, encryptDictA ) ++ {} ++ virtual ~OOoImportSecurityhandler(); ++ ++ virtual GBool authorize(void* authData); ++}; ++ + #ifdef ENABLE_PLUGINS + //------------------------------------------------------------------------ + // ExternalSecurityHandler |