configmgr/source/components.cxx | 20 +- configmgr/source/parsemanager.cxx | 6 configmgr/source/parsemanager.hxx | 4 configmgr/source/parser.hxx | 6 configmgr/source/valueparser.cxx | 4 configmgr/source/valueparser.hxx | 4 configmgr/source/xcdparser.cxx | 42 ++++- configmgr/source/xcdparser.hxx | 14 + configmgr/source/xcsparser.cxx | 6 configmgr/source/xcsparser.hxx | 4 configmgr/source/xcuparser.cxx | 6 configmgr/source/xcuparser.hxx | 4 configure.ac | 14 - distro-configs/LibreOfficeAndroid.conf | 1 distro-configs/LibreOfficeAndroidX86.conf | 1 distro-configs/LibreOfficeLinux.conf | 1 distro-configs/LibreOfficeMacOSX.conf | 1 distro-configs/LibreOfficeOpenBSD.conf | 1 distro-configs/LibreOfficeWin32.conf | 1 distro-configs/LibreOfficeiOS.conf | 1 distro-configs/OxygenOfficeLinux.conf | 1 distro-configs/OxygenOfficeWin32.conf | 1 filter/Configuration_filter.mk | 70 --------- filter/source/config/fragments/types/pdf_Portable_Document_Format_import.xcu | 29 ---- officecfg/registry/data.dtd | 3 officecfg/registry/data/org/openoffice/Setup.xcu | 3 postprocess/packcomponents/makefile.mk | 2 postprocess/packregistry/makefile.mk | 15 +- scp2/InstallModule_ooo.mk | 6 scp2/source/ooo/file_library_ooo.scp | 13 - scp2/source/ooo/file_ooo.scp | 23 --- scp2/source/ooo/module_hidden_ooo.scp | 3 scp2/source/ooo/module_pdfimport.scp | 72 ++++++++++ sdext/Module_sdext.mk | 2 sdext/Package_pdfimport_xcu.mk | 1 sdext/source/pdfimport/config/pdf_types.xcu | 35 ++++ sdext/source/pdfimport/test/testdocs/makefile.mk | 2 sdext/source/pdfimport/xpdftest/makefile.mk | 2 38 files changed, 228 insertions(+), 196 deletions(-)
New commits: commit 79e5ee5f6949f4b8645ef32dba61705d02473c60 Author: Stephan Bergmann <sberg...@redhat.com> Date: Thu Nov 29 11:27:45 2012 +0100 Isolate PDF Import so it can be made optionally installable ...which can be attractive for installation sets that use --with-system-poppler but do not want the LO core package to depend on a poppler package. See the comment at the top of scp2/source/ooo/module_pdfimport.scp for details. The build-time --disable-pdfimport configure switch is gone, PDF Import is built unconditionally for all platforms but Android and iOS now. (The ENABLE_PDFIMPORT variable now uses TRUE/FALSE rather than YES/NO, to increase consistency across those variables.) Change-Id: I6509d0b2e770b276cd54540408fb1ec5a7dda058 diff --git a/configure.ac b/configure.ac index ef57fbb..c40e523 100644 --- a/configure.ac +++ b/configure.ac @@ -565,11 +565,6 @@ AC_ARG_ENABLE(extensions, [Disable all add-on extension functionality. Work in progress, use only if you are hacking on it.]) ) -AC_ARG_ENABLE(pdfimport, - AS_HELP_STRING([--disable-pdfimport], - [Disable PDF import.]) -) - AC_ARG_ENABLE(scripting, AS_HELP_STRING([--disable-scripting], [Disable BASIC, Java and Python. Work in progress, use only if you are hacking on it.]) @@ -4157,11 +4152,11 @@ if test "$cross_compiling" = "yes"; then ./configure \ --disable-graphite \ --disable-build-mozilla \ - --disable-pdfimport \ --disable-postgresql-sdbc \ --disable-zenity \ --with-parallelism="$with_parallelism" \ --without-doxygen \ + ENABLE_PDFIMPORT=FALSE \ $sub_conf_opts \ 2>&1 | sed -e 's/^/ /' test -f ./config_host.mk 2>/dev/null || exit @@ -9795,9 +9790,9 @@ AC_SUBST(ENABLE_MINIMIZER) # pdf import? AC_MSG_CHECKING([whether to build the PDF import]) -if test "x$enable_pdfimport" != "xno"; then +if test "$_os" != Android -a "$_os" != iOS -a "$ENABLE_PDFIMPORT" != FALSE; then AC_MSG_RESULT([yes]) - ENABLE_PDFIMPORT=YES + ENABLE_PDFIMPORT=TRUE dnl =================================================================== dnl Check for system poppler @@ -9825,8 +9820,7 @@ if test "x$enable_pdfimport" != "xno"; then fi else AC_MSG_RESULT([no]) - ENABLE_PDFIMPORT=NO - SCPDEFS="$SCPDEFS -DWITHOUT_PDFIMPORT" + ENABLE_PDFIMPORT=FALSE fi AC_SUBST(ENABLE_PDFIMPORT) AC_SUBST(SYSTEM_POPPLER) diff --git a/distro-configs/LibreOfficeAndroid.conf b/distro-configs/LibreOfficeAndroid.conf index 10b351c..14b31df 100644 --- a/distro-configs/LibreOfficeAndroid.conf +++ b/distro-configs/LibreOfficeAndroid.conf @@ -12,7 +12,6 @@ --disable-mozilla --disable-odk --disable-opengl ---disable-pdfimport --disable-postgresql-sdbc --disable-python --disable-randr diff --git a/distro-configs/LibreOfficeAndroidX86.conf b/distro-configs/LibreOfficeAndroidX86.conf index 4414b58..43f1c0b 100644 --- a/distro-configs/LibreOfficeAndroidX86.conf +++ b/distro-configs/LibreOfficeAndroidX86.conf @@ -12,7 +12,6 @@ --disable-mozilla --disable-odk --disable-opengl ---disable-pdfimport --disable-postgresql-sdbc --disable-python --disable-randr diff --git a/distro-configs/LibreOfficeLinux.conf b/distro-configs/LibreOfficeLinux.conf index 6f22043..0ffc31c 100644 --- a/distro-configs/LibreOfficeLinux.conf +++ b/distro-configs/LibreOfficeLinux.conf @@ -35,7 +35,6 @@ --enable-ext-presenter-minimizer --enable-ext-nlpsolver --enable-epm ---enable-pdfimport --enable-python=internal --enable-online-update --disable-unix-qstart-libpng diff --git a/distro-configs/LibreOfficeMacOSX.conf b/distro-configs/LibreOfficeMacOSX.conf index 2aa870e..686f5fe 100644 --- a/distro-configs/LibreOfficeMacOSX.conf +++ b/distro-configs/LibreOfficeMacOSX.conf @@ -9,6 +9,5 @@ --enable-ext-nlpsolver --enable-extension-integration --enable-online-update ---enable-pdfimport --without-system-postgresql --disable-gtk diff --git a/distro-configs/LibreOfficeOpenBSD.conf b/distro-configs/LibreOfficeOpenBSD.conf index 3862cfe..52ba333 100644 --- a/distro-configs/LibreOfficeOpenBSD.conf +++ b/distro-configs/LibreOfficeOpenBSD.conf @@ -15,7 +15,6 @@ --enable-ext-presenter-minimizer --enable-ext-report-builder --enable-ext-wiki-publisher ---enable-pdfimport --enable-python=system --with-alloc=system --with-ant-home=/usr/local/ant diff --git a/distro-configs/LibreOfficeWin32.conf b/distro-configs/LibreOfficeWin32.conf index c8f036a..7c92efe 100644 --- a/distro-configs/LibreOfficeWin32.conf +++ b/distro-configs/LibreOfficeWin32.conf @@ -14,4 +14,3 @@ --enable-ext-presenter-minimizer --enable-ext-nlpsolver --enable-online-update ---enable-pdfimport diff --git a/distro-configs/LibreOfficeiOS.conf b/distro-configs/LibreOfficeiOS.conf index 52fb60f..6234d99 100644 --- a/distro-configs/LibreOfficeiOS.conf +++ b/distro-configs/LibreOfficeiOS.conf @@ -13,7 +13,6 @@ --disable-mozilla --disable-odk --disable-opengl ---disable-pdfimport --disable-postgresql-sdbc --disable-python --disable-randr diff --git a/distro-configs/OxygenOfficeLinux.conf b/distro-configs/OxygenOfficeLinux.conf index 0777056..0c428a6 100644 --- a/distro-configs/OxygenOfficeLinux.conf +++ b/distro-configs/OxygenOfficeLinux.conf @@ -51,7 +51,6 @@ --enable-ext-barcode --disable-ext-oooblogger --enable-ext-mysql-connector ---enable-pdfimport --enable-postgresql-sdbc --with-sun-templates --enable-neon diff --git a/distro-configs/OxygenOfficeWin32.conf b/distro-configs/OxygenOfficeWin32.conf index 22aa137..a3a879d 100644 --- a/distro-configs/OxygenOfficeWin32.conf +++ b/distro-configs/OxygenOfficeWin32.conf @@ -37,5 +37,4 @@ --enable-graphite --enable-dependency-tracking --enable-mozilla ---enable-pdfimport --with-system-mozilla=mozilla diff --git a/filter/Configuration_filter.mk b/filter/Configuration_filter.mk index b629c0b..5b41bda 100644 --- a/filter/Configuration_filter.mk +++ b/filter/Configuration_filter.mk @@ -329,6 +329,7 @@ $(call filter_Configuration_add_types,fcfg_langpack,fcfg_writer_types.xcu,filter generic_Text \ writer_MIZI_Hwp_97 \ writer_StarOffice_XML_Writer_Template \ + pdf_Portable_Document_Format \ writer8_template \ writer8 \ writer_MS_Word_2003_XML \ @@ -338,15 +339,6 @@ $(call filter_Configuration_add_types,fcfg_langpack,fcfg_writer_types.xcu,filter writer_OOXML_Template \ writer_layout_dump_xml \ ) -ifeq ($(ENABLE_PDFIMPORT),YES) -$(call filter_Configuration_add_types,fcfg_langpack,fcfg_writer_types.xcu,filter/source/config/fragments/types,\ - pdf_Portable_Document_Format_import \ -) -else -$(call filter_Configuration_add_types,fcfg_langpack,fcfg_writer_types.xcu,filter/source/config/fragments/types,\ - pdf_Portable_Document_Format \ -) -endif $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_writer_filters.xcu,filter/source/config/fragments/filters,\ HTML__StarWriter_ \ @@ -401,17 +393,9 @@ $(call filter_Configuration_add_types,fcfg_langpack,fcfg_web_types.xcu,filter/so writer_web_HTML_help \ writer_StarOffice_XML_Writer \ writer_web_StarOffice_XML_Writer_Web_Template \ - writerweb8_writer_template \ -) -ifeq ($(ENABLE_PDFIMPORT),YES) -$(call filter_Configuration_add_types,fcfg_langpack,fcfg_web_types.xcu,filter/source/config/fragments/types,\ - pdf_Portable_Document_Format_import \ -) -else -$(call filter_Configuration_add_types,fcfg_langpack,fcfg_web_types.xcu,filter/source/config/fragments/types,\ pdf_Portable_Document_Format \ + writerweb8_writer_template \ ) -endif $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_web_filters.xcu,filter/source/config/fragments/filters,\ HTML \ @@ -440,17 +424,9 @@ $(call filter_Configuration_add_types,fcfg_langpack,fcfg_global_types.xcu,filter generic_Text \ writer_StarOffice_XML_Writer \ writer_globaldocument_StarOffice_XML_Writer_GlobalDocument \ - writerglobal8 \ -) -ifeq ($(ENABLE_PDFIMPORT),YES) -$(call filter_Configuration_add_types,fcfg_langpack,fcfg_global_types.xcu,filter/source/config/fragments/types,\ - pdf_Portable_Document_Format_import \ -) -else -$(call filter_Configuration_add_types,fcfg_langpack,fcfg_global_types.xcu,filter/source/config/fragments/types,\ pdf_Portable_Document_Format \ + writerglobal8 \ ) -endif $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_global_filters.xcu,filter/source/config/fragments/filters,\ Text__encoded___StarWriter_GlobalDocument_ \ @@ -489,6 +465,7 @@ $(call filter_Configuration_add_types,fcfg_langpack,fcfg_calc_types.xcu,filter/s calc_SYLK \ calc_StarOffice_XML_Calc \ calc_StarOffice_XML_Calc_Template \ + pdf_Portable_Document_Format \ calc_dBase\ calc8 \ calc8_template \ @@ -499,15 +476,6 @@ $(call filter_Configuration_add_types,fcfg_langpack,fcfg_calc_types.xcu,filter/s calc_OOXML \ calc_OOXML_Template \ ) -ifeq ($(ENABLE_PDFIMPORT),YES) -$(call filter_Configuration_add_types,fcfg_langpack,fcfg_calc_types.xcu,filter/source/config/fragments/types,\ - pdf_Portable_Document_Format_import \ -) -else -$(call filter_Configuration_add_types,fcfg_langpack,fcfg_calc_types.xcu,filter/source/config/fragments/types,\ - pdf_Portable_Document_Format \ -) -endif $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_calc_filters.xcu,filter/source/config/fragments/filters,\ DIF \ @@ -564,6 +532,7 @@ $(call filter_Configuration_add_ui_filters,fcfg_langpack,filter/source/config/fr $(call filter_Configuration_add_types,fcfg_langpack,fcfg_draw_types.xcu,filter/source/config/fragments/types,\ draw_StarOffice_XML_Draw \ draw_StarOffice_XML_Draw_Template \ + pdf_Portable_Document_Format \ draw8 \ draw8_template \ draw_WordPerfect_Graphics \ @@ -572,15 +541,6 @@ $(call filter_Configuration_add_types,fcfg_langpack,fcfg_draw_types.xcu,filter/s draw_CorelDraw_Document \ draw_Corel_Presentation_Exchange \ ) -ifeq ($(ENABLE_PDFIMPORT),YES) -$(call filter_Configuration_add_types,fcfg_langpack,fcfg_draw_types.xcu,filter/source/config/fragments/types,\ - pdf_Portable_Document_Format_import \ -) -else -$(call filter_Configuration_add_types,fcfg_langpack,fcfg_draw_types.xcu,filter/source/config/fragments/types,\ - pdf_Portable_Document_Format \ -) -endif $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_draw_filters.xcu,filter/source/config/fragments/filters,\ StarOffice_XML__Draw_ \ @@ -610,6 +570,7 @@ $(call filter_Configuration_add_types,fcfg_langpack,fcfg_impress_types.xcu,filte impress_MS_PowerPoint_97_Vorlage \ impress_StarOffice_XML_Impress \ impress_StarOffice_XML_Impress_Template \ + pdf_Portable_Document_Format \ pwp_PlaceWare \ impress8 \ impress8_template \ @@ -621,15 +582,6 @@ $(call filter_Configuration_add_types,fcfg_langpack,fcfg_impress_types.xcu,filte impress_OOXML_Presentation_Template \ impress_OOXML_Presentation_AutoPlay \ ) -ifeq ($(ENABLE_PDFIMPORT),YES) -$(call filter_Configuration_add_types,fcfg_langpack,fcfg_impress_types.xcu,filter/source/config/fragments/types,\ - pdf_Portable_Document_Format_import \ -) -else -$(call filter_Configuration_add_types,fcfg_langpack,fcfg_impress_types.xcu,filter/source/config/fragments/types,\ - pdf_Portable_Document_Format \ -) -endif $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_impress_filters.xcu,filter/source/config/fragments/filters,\ MS_PowerPoint_97 \ @@ -690,17 +642,9 @@ $(call filter_Configuration_add_types,fcfg_langpack,fcfg_math_types.xcu,filter/s math_MathML_XML_Math \ math_MathType_3x \ math_StarOffice_XML_Math \ - math8 \ -) -ifeq ($(ENABLE_PDFIMPORT),YES) -$(call filter_Configuration_add_types,fcfg_langpack,fcfg_math_types.xcu,filter/source/config/fragments/types,\ - pdf_Portable_Document_Format_import \ -) -else -$(call filter_Configuration_add_types,fcfg_langpack,fcfg_math_types.xcu,filter/source/config/fragments/types,\ pdf_Portable_Document_Format \ + math8 \ ) -endif $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_math_filters.xcu,filter/source/config/fragments/filters,\ MathML_XML__Math_ \ diff --git a/filter/source/config/fragments/types/pdf_Portable_Document_Format_import.xcu b/filter/source/config/fragments/types/pdf_Portable_Document_Format_import.xcu deleted file mode 100644 index ab0ec52..0000000 --- a/filter/source/config/fragments/types/pdf_Portable_Document_Format_import.xcu +++ /dev/null @@ -1,29 +0,0 @@ -<!-- - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - --> - <node oor:name="pdf_Portable_Document_Format" oor:op="replace" > - <prop oor:name="DetectService"><value>org.libreoffice.comp.documents.PDFDetector</value></prop> - <prop oor:name="URLPattern"/> - <prop oor:name="Extensions"><value>pdf</value></prop> - <prop oor:name="MediaType"><value>application/pdf</value></prop> - <prop oor:name="Preferred"><value>true</value></prop> - <prop oor:name="PreferredFilter"><value>draw_pdf_import</value></prop> - <prop oor:name="UIName"> - <value>PDF - Portable Document Format (Draw)</value> - </prop> - <prop oor:name="ClipboardFormat"/> - </node> diff --git a/officecfg/registry/data/org/openoffice/Setup.xcu b/officecfg/registry/data/org/openoffice/Setup.xcu index 2c25173..05ddaac 100644 --- a/officecfg/registry/data/org/openoffice/Setup.xcu +++ b/officecfg/registry/data/org/openoffice/Setup.xcu @@ -795,6 +795,9 @@ <value> <it>com.sun.PresenterScreen-*</it> <it>com.sun.star.PDFImport-*</it> + <!-- arguably, dropping PDFImport extensions should be + conditional on having in-core PDF import actually built + and installed --> </value> </prop> </node> diff --git a/postprocess/packcomponents/makefile.mk b/postprocess/packcomponents/makefile.mk index a195b66..2758f25 100644 --- a/postprocess/packcomponents/makefile.mk +++ b/postprocess/packcomponents/makefile.mk @@ -302,7 +302,7 @@ my_components += \ my_components += component/extensions/source/plugin/pl .END -.IF "$(ENABLE_PDFIMPORT)" == "YES" +.IF "$(ENABLE_PDFIMPORT)" == "TRUE" my_components += component/sdext/source/pdfimport/pdfimport .END diff --git a/postprocess/packregistry/makefile.mk b/postprocess/packregistry/makefile.mk index 5877fe6..f353ef2 100644 --- a/postprocess/packregistry/makefile.mk +++ b/postprocess/packregistry/makefile.mk @@ -342,9 +342,6 @@ MY_FILES_main += \ $(MY_MOD)/org/openoffice/Office/DataAccess/Drivers-jdbc.xcu MY_DRIVERS += hsqldb jdbc .END -.IF "$(ENABLE_PDFIMPORT)" == "YES" -MY_FILES_main += pdfimport/pdf_import_filter.xcu -.END .IF "$(ENABLE_TDEAB)" == "TRUE" MY_FILES_main += $(MY_MOD)/org/openoffice/Office/DataAccess/Drivers-tdeab.xcu .END @@ -470,6 +467,16 @@ MY_FILES_ogltrans = \ $(MY_MOD)/org/openoffice/Office/Impress-ogltrans.xcu .END +.IF "$(ENABLE_PDFIMPORT)" == "TRUE" +MY_XCDS += $(MISC)/pdfimport.xcd +MY_OPTDEPS_pdfimport = calc draw impress math writer + # HACK: for all fcfg_X_types.xcu in filter/Configuration_filter.mk that + # include pdf_Portable_Document_Format (i.e., X in calc, draw, global, + # impress, math, web, writer), add optional dependencies on those XCDS that + # include those fcfg_X_types.xcu +MY_FILES_pdfimport = pdfimport/pdf_import_filter.xcu pdfimport/pdf_types.xcu +.END + .IF "$(GUIBASE)" == "WIN" MY_XCDS += $(MISC)/forcedefault.xcd MY_DEPS_forcedefault = main @@ -497,6 +504,8 @@ $(MISC)/%.xcd .ERRREMOVE : $(MISC)/%.list $(MISC)/%.list : makefile.mk - $(RM) $@ echo '<list>' $(foreach,i,$(MY_DEPS_$(@:b)) '<dependency file="$i"/>') \ + $(foreach,i,$(MY_OPTDEPS_$(@:b)) \ + '<dependency file="$i" optional="true"/>') \ $(foreach,i,$(MY_FILES_$(@:b)) '<filename>$i</filename>') '</list>' > $@ $(MISC)/lang/Langpack-{$(alllangiso)}.xcd : $(SOLARXMLDIR)/$(MY_MOD)/$$(@:b).xcu diff --git a/scp2/InstallModule_ooo.mk b/scp2/InstallModule_ooo.mk index 57676b3..23fbb67 100644 --- a/scp2/InstallModule_ooo.mk +++ b/scp2/InstallModule_ooo.mk @@ -230,4 +230,10 @@ $(eval $(call gb_InstallModule_add_localized_scpfiles,scp2/ooo,\ scp2/source/ooo/module_systemint \ )) +ifeq ($(ENABLE_PDFIMPORT),TRUE) +$(eval $(call gb_InstallModule_add_scpfiles,scp2/ooo,\ + scp2/source/ooo/module_pdfimport \ +)) +endif + # vim: set shiftwidth=4 tabstop=4 noexpandtab: diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp index 090abbc..6141f0e 100644 --- a/scp2/source/ooo/file_library_ooo.scp +++ b/scp2/source/ooo/file_library_ooo.scp @@ -903,19 +903,6 @@ STD_LIB_FILE( gid_File_Lib_Log, log) STD_LIB_FILE( gid_File_Lib_Pdffilter, pdffilter) -#if !defined WITHOUT_PDFIMPORT -File gid_File_PDFImport - TXT_FILE_BODY; - Dir = SCP2_OOO_BIN_DIR; -#if defined UNX - Name = STRING(CONCAT2(pdfimport.uno,UNXSUFFIX)); -#else - Name = "pdfimport.uno.dll"; -#endif - Styles = (PACKED); -End -#endif - SPECIAL_LIB_FILE(gid_File_Lib_Deployment,deployment) SPECIAL_LIB_FILE(gid_File_Lib_DeploymentGui,deploymentgui) diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp index 9079a4f..6b30e72 100644 --- a/scp2/source/ooo/file_ooo.scp +++ b/scp2/source/ooo/file_ooo.scp @@ -115,29 +115,6 @@ File gid_File_Exe_Nsplugin End #endif -#if !defined WITHOUT_PDFIMPORT - -Directory gid_Dir_Share_Xpdfimport - ParentID = gid_Brand_Dir_Share; - DosName = "xpdfimport"; -End - -File gid_File_Dat_XpdfimportErrPdf - TXT_FILE_BODY; - Dir = gid_Dir_Share_Xpdfimport; - Name = "xpdfimport_err.pdf"; - Styles = (PACKED); -End - -File gid_File_Exe_Xpdfimport - BIN_FILE_BODY; - Dir = gid_Brand_Dir_Program; - Name = EXENAME(xpdfimport); - Styles = (PACKED); -End - -#endif - File gid_File_Bin_Gengal BIN_FILE_BODY; Dir = gid_Brand_Dir_Program; diff --git a/scp2/source/ooo/module_hidden_ooo.scp b/scp2/source/ooo/module_hidden_ooo.scp index 0949760..13bb7b7 100644 --- a/scp2/source/ooo/module_hidden_ooo.scp +++ b/scp2/source/ooo/module_hidden_ooo.scp @@ -180,8 +180,6 @@ Module gid_Module_Root_Files_4 Default = YES; Styles = (HIDDEN_ROOT); Files = (gid_File_Dat_Root4, - gid_File_Dat_XpdfimportErrPdf, - gid_File_Exe_Xpdfimport, gid_File_Filter_Eme, gid_File_Filter_Sdfilt, gid_File_Filter_Svgio, @@ -237,7 +235,6 @@ Module gid_Module_Root_Files_4 gid_File_Lib_Oox, gid_File_Lib_Pcr, gid_File_Lib_Pdffilter, - gid_File_Lib_PdfImport, gid_File_Lib_Pk, gid_File_Lib_Pl, gid_File_Lib_Sf_Prothdlr, diff --git a/scp2/source/ooo/module_pdfimport.scp b/scp2/source/ooo/module_pdfimport.scp new file mode 100644 index 0000000..897bd6c --- /dev/null +++ b/scp2/source/ooo/module_pdfimport.scp @@ -0,0 +1,72 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +// This module is normally included unconditionally in the core installation, it +// provides various import filters for both plain PDF and hybrid PDF/ODF. For +// --with-system-poppler builds it can be advantageous though to package this +// module as an individual, optional part, so that the core installation does +// not feature a dependency on a poppler package. +// +// The +// /org.openoffice.TypeDetection.Types/Types/pdf_Portable_Document_Format +// configuration node contained in pdfimport.xcd needs to override a +// node with the same name but which lacks import functionality and +// which is duplicated across calc, draw, impress, math, writer .xcd +// files. For this to work, there is a hack in +// postprocess/packregistry/makefile.mk to make pdfimport.xcd depend +// on all those other .xcd files (optinally, as not all of the other +// .xcd files need to be present in a given installation). + +#include "macros.inc" + +Module gid_Module_Pdfimport + ParentID = gid_Module_Root_Brand; + Styles = (HIDDEN_ROOT); + Dirs = (gid_Dir_Share_Xpdfimport); + Files = ( + gid_File_Dat_XpdfimportErrPdf, + gid_File_Exe_Xpdfimport, + gid_File_Lib_PdfimportUno, + gid_File_Xcd_Pdfimport); +End + +Directory gid_Dir_Share_Xpdfimport + ParentID = gid_Brand_Dir_Share; + DosName = "xpdfimport"; +End + +File gid_File_Dat_XpdfimportErrPdf + TXT_FILE_BODY; + Dir = gid_Dir_Share_Xpdfimport; + Name = "xpdfimport_err.pdf"; + Styles = (PACKED); +End + +File gid_File_Exe_Xpdfimport + BIN_FILE_BODY; + Dir = gid_Brand_Dir_Program; + Name = EXENAME(xpdfimport); + Styles = (PACKED); +End + +File gid_File_Lib_PdfimportUno + TXT_FILE_BODY; + Dir = gid_Brand_Dir_Program; + Name = SCP2_URE_DL_BARE("pdfimport.uno"); + Styles = (PACKED); +End + +File gid_File_Xcd_Pdfimport + TXT_FILE_BODY; + Dir = gid_Brand_Dir_Share_Registry; + Name = "pdfimport.xcd"; + Styles = (PACKED); +End + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sdext/Module_sdext.mk b/sdext/Module_sdext.mk index 2d506be..726b147 100644 --- a/sdext/Module_sdext.mk +++ b/sdext/Module_sdext.mk @@ -40,7 +40,7 @@ $(eval $(call gb_Module_add_targets,sdext,\ )) endif -ifeq ($(ENABLE_PDFIMPORT),YES) +ifeq ($(ENABLE_PDFIMPORT),TRUE) $(eval $(call gb_Module_add_targets,sdext,\ Executable_xpdfimport \ Library_pdfimport \ diff --git a/sdext/Package_pdfimport_xcu.mk b/sdext/Package_pdfimport_xcu.mk index 2dcf39c..cbc0971 100644 --- a/sdext/Package_pdfimport_xcu.mk +++ b/sdext/Package_pdfimport_xcu.mk @@ -10,5 +10,6 @@ $(eval $(call gb_Package_Package,pdfimport_xcu,$(SRCDIR)/sdext)) $(eval $(call gb_Package_add_file,pdfimport_xcu,xml/pdfimport/pdf_import_filter.xcu,source/pdfimport/config/pdf_import_filter.xcu)) +$(eval $(call gb_Package_add_file,pdfimport_xcu,xml/pdfimport/pdf_types.xcu,source/pdfimport/config/pdf_types.xcu)) # vim: set noet sw=4 ts=4: diff --git a/sdext/source/pdfimport/config/pdf_types.xcu b/sdext/source/pdfimport/config/pdf_types.xcu new file mode 100644 index 0000000..c3d538b --- /dev/null +++ b/sdext/source/pdfimport/config/pdf_types.xcu @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE oor:component-data SYSTEM "../../../../component-update.dtd"> +<!-- + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + --> +<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:package="org.openoffice.TypeDetection" oor:name="Types"> + <node oor:name="Types"> + <node oor:name="pdf_Portable_Document_Format" oor:op="replace" > + <prop oor:name="DetectService"><value>org.libreoffice.comp.documents.PDFDetector</value></prop> + <prop oor:name="URLPattern"/> + <prop oor:name="Extensions"><value>pdf</value></prop> + <prop oor:name="MediaType"><value>application/pdf</value></prop> + <prop oor:name="Preferred"><value>true</value></prop> + <prop oor:name="PreferredFilter"><value>draw_pdf_import</value></prop> + <prop oor:name="UIName"> + <value>PDF - Portable Document Format (Draw)</value> + </prop> + <prop oor:name="ClipboardFormat"/> + </node> + </node> +</oor:component-data> diff --git a/sdext/source/pdfimport/test/testdocs/makefile.mk b/sdext/source/pdfimport/test/testdocs/makefile.mk index d5c3ac3..273ebb6 100644 --- a/sdext/source/pdfimport/test/testdocs/makefile.mk +++ b/sdext/source/pdfimport/test/testdocs/makefile.mk @@ -33,7 +33,7 @@ TESTFILES=\ verticaltext.pdf # --- Fake uno bootstrap ------------------------ -.IF "$(ENABLE_PDFIMPORT)" != "NO" +.IF "$(ENABLE_PDFIMPORT)" == "TRUE" $(BIN)$/pdfi_unittest_test.ini : makefile.mk rm -f $@ diff --git a/sdext/source/pdfimport/xpdftest/makefile.mk b/sdext/source/pdfimport/xpdftest/makefile.mk index 985a620..bb9fed8 100644 --- a/sdext/source/pdfimport/xpdftest/makefile.mk +++ b/sdext/source/pdfimport/xpdftest/makefile.mk @@ -26,7 +26,7 @@ ENABLE_EXCEPTIONS=TRUE .INCLUDE: settings.mk -.IF "$(ENABLE_PDFIMPORT)" == "NO" +.IF "$(ENABLE_PDFIMPORT)" == "FALSE" @all: @echo "PDF Import extension disabled." .ENDIF commit 053108588dd634838457ba81e7dc70e82aa50e02 Author: Stephan Bergmann <sberg...@redhat.com> Date: Thu Nov 29 11:23:09 2012 +0100 Support optional dependencies among .xcd files ...that are effectively ignored if the depended-on file does not exist. This will be needed by a subsequent commit to make PDF Import optionally installable. Change-Id: I2283be3ce75f52811a371f41aa8784f507425ee3 diff --git a/configmgr/source/components.cxx b/configmgr/source/components.cxx index 6476cd8..82b4be7 100644 --- a/configmgr/source/components.cxx +++ b/configmgr/source/components.cxx @@ -23,6 +23,7 @@ #include <cassert> #include <cstddef> #include <list> +#include <set> #include "com/sun/star/beans/Optional.hpp" #include "com/sun/star/beans/UnknownPropertyException.hpp" @@ -92,7 +93,7 @@ void parseXcsFile( assert(partial == 0 && modifications == 0 && additions == 0); (void) partial; (void) modifications; (void) additions; bool ok = rtl::Reference< ParseManager >( - new ParseManager(url, new XcsParser(layer, data)))->parse(); + new ParseManager(url, new XcsParser(layer, data)))->parse(0); assert(ok); (void) ok; // avoid warnings } @@ -107,7 +108,7 @@ void parseXcuFile( new ParseManager( url, new XcuParser(layer, data, partial, modifications, additions)))-> - parse(); + parse(0); assert(ok); (void) ok; // avoid warnings } @@ -724,7 +725,8 @@ void Components::parseXcdFiles(int layer, rtl::OUString const & url) { css::uno::Reference< css::uno::XInterface >()); } UnresolvedList unres; - XcdParser::Dependencies deps; + std::set< OUString > existingDeps; + std::set< OUString > processedDeps; for (;;) { osl::DirectoryItem i; osl::FileBase::RC rc = dir.getNextItem(i, SAL_MAX_UINT32); @@ -758,10 +760,12 @@ void Components::parseXcdFiles(int layer, rtl::OUString const & url) { rtl::OUString name( file.copy( 0, file.getLength() - RTL_CONSTASCII_LENGTH(".xcd"))); + existingDeps.insert(name); rtl::Reference< ParseManager > manager; try { manager = new ParseManager( - stat.getFileURL(), new XcdParser(layer, deps, data_)); + stat.getFileURL(), + new XcdParser(layer, processedDeps, data_)); } catch (css::container::NoSuchElementException & e) { throw css::uno::RuntimeException( (rtl::OUString( @@ -770,8 +774,8 @@ void Components::parseXcdFiles(int layer, rtl::OUString const & url) { e.Message), css::uno::Reference< css::uno::XInterface >()); } - if (manager->parse()) { - deps.insert(name); + if (manager->parse(0)) { + processedDeps.insert(name); } else { unres.push_back(UnresolvedListItem(name, manager)); } @@ -781,8 +785,8 @@ void Components::parseXcdFiles(int layer, rtl::OUString const & url) { while (!unres.empty()) { bool resolved = false; for (UnresolvedList::iterator i(unres.begin()); i != unres.end();) { - if (i->manager->parse()) { - deps.insert(i->name); + if (i->manager->parse(&existingDeps)) { + processedDeps.insert(i->name); unres.erase(i++); resolved = true; } else { diff --git a/configmgr/source/parsemanager.cxx b/configmgr/source/parsemanager.cxx index a280f95..27f3f20 100644 --- a/configmgr/source/parsemanager.cxx +++ b/configmgr/source/parsemanager.cxx @@ -20,6 +20,7 @@ #include "sal/config.h" #include <cassert> +#include <set> #include "com/sun/star/container/NoSuchElementException.hpp" #include "com/sun/star/uno/RuntimeException.hpp" @@ -62,7 +63,7 @@ ParseManager::ParseManager( (void)id; } -bool ParseManager::parse() { +bool ParseManager::parse(std::set< OUString > const * existingDependencies) { for (;;) { switch (itemData_.is() ? xmlreader::XmlReader::RESULT_BEGIN @@ -70,7 +71,8 @@ bool ParseManager::parse() { parser_->getTextMode(), &itemData_, &itemNamespaceId_)) { case xmlreader::XmlReader::RESULT_BEGIN: - if (!parser_->startElement(reader_, itemNamespaceId_, itemData_)) + if (!parser_->startElement( + reader_, itemNamespaceId_, itemData_, existingDependencies)) { return false; } diff --git a/configmgr/source/parsemanager.hxx b/configmgr/source/parsemanager.hxx index bf88643..2760ab2 100644 --- a/configmgr/source/parsemanager.hxx +++ b/configmgr/source/parsemanager.hxx @@ -22,6 +22,8 @@ #include "sal/config.h" +#include <set> + #include "com/sun/star/container/NoSuchElementException.hpp" #include "com/sun/star/uno/RuntimeException.hpp" #include "rtl/ref.hxx" @@ -44,7 +46,7 @@ public: com::sun::star::container::NoSuchElementException, com::sun::star::uno::RuntimeException)); - bool parse(); + bool parse(std::set< rtl::OUString > const * existingDependencies); enum { NAMESPACE_OOR = 1, NAMESPACE_XS = 2, NAMESPACE_XSI = 3 }; diff --git a/configmgr/source/parser.hxx b/configmgr/source/parser.hxx index 69afc4c..c2e905c 100644 --- a/configmgr/source/parser.hxx +++ b/configmgr/source/parser.hxx @@ -23,10 +23,12 @@ #include "sal/config.h" #include <memory> +#include <set> #include "salhelper/simplereferenceobject.hxx" #include "xmlreader/xmlreader.hxx" +namespace rtl { class OUString; } namespace xmlreader { struct Span; } namespace configmgr { @@ -36,8 +38,8 @@ public: virtual xmlreader::XmlReader::Text getTextMode() = 0; virtual bool startElement( - xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name) - = 0; + xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name, + std::set< rtl::OUString > const * existingDependencies) = 0; virtual void endElement(xmlreader::XmlReader const & reader) = 0; diff --git a/configmgr/source/valueparser.cxx b/configmgr/source/valueparser.cxx index 929d52c..75ddef2 100644 --- a/configmgr/source/valueparser.cxx +++ b/configmgr/source/valueparser.cxx @@ -20,6 +20,7 @@ #include "sal/config.h" #include <cassert> +#include <set> #include "com/sun/star/uno/Any.hxx" #include "com/sun/star/uno/Reference.hxx" @@ -287,7 +288,8 @@ xmlreader::XmlReader::Text ValueParser::getTextMode() const { } bool ValueParser::startElement( - xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name) + xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name, + std::set< rtl::OUString > const *) { if (!node_.is()) { return false; diff --git a/configmgr/source/valueparser.hxx b/configmgr/source/valueparser.hxx index 19a1753..de28ce6 100644 --- a/configmgr/source/valueparser.hxx +++ b/configmgr/source/valueparser.hxx @@ -22,6 +22,7 @@ #include "sal/config.h" +#include <set> #include <vector> #include "boost/noncopyable.hpp" @@ -51,7 +52,8 @@ public: xmlreader::XmlReader::Text getTextMode() const; bool startElement( - xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name); + xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name, + std::set< OUString > const *); bool endElement(); diff --git a/configmgr/source/xcdparser.cxx b/configmgr/source/xcdparser.cxx index d89f619..d7bc544 100644 --- a/configmgr/source/xcdparser.cxx +++ b/configmgr/source/xcdparser.cxx @@ -21,6 +21,7 @@ #include <cassert> #include <climits> +#include <set> #include "com/sun/star/uno/Reference.hxx" #include "com/sun/star/uno/RuntimeException.hpp" @@ -45,8 +46,10 @@ namespace css = com::sun::star; } -XcdParser::XcdParser(int layer, Dependencies const & dependencies, Data & data): - layer_(layer), dependencies_(dependencies), data_(data), state_(STATE_START) +XcdParser::XcdParser( + int layer, std::set< OUString > const & processedDependencies, Data & data): + layer_(layer), processedDependencies_(processedDependencies), data_(data), + state_(STATE_START) {} XcdParser::~XcdParser() {} @@ -57,12 +60,14 @@ xmlreader::XmlReader::Text XcdParser::getTextMode() { } bool XcdParser::startElement( - xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name) + xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name, + std::set< OUString > const * existingDependencies) { if (nestedParser_.is()) { assert(nesting_ != LONG_MAX); ++nesting_; - return nestedParser_->startElement(reader, nsId, name); + return nestedParser_->startElement( + reader, nsId, name, existingDependencies); } switch (state_) { case STATE_START: @@ -77,7 +82,8 @@ bool XcdParser::startElement( if (nsId == xmlreader::XmlReader::NAMESPACE_NONE && name.equals(RTL_CONSTASCII_STRINGPARAM("dependency"))) { - if (dependency_.isEmpty()) { + if (dependencyFile_.isEmpty()) { + dependencyOptional_ = false; xmlreader::Span attrFile; for (;;) { int attrNsId; @@ -90,6 +96,13 @@ bool XcdParser::startElement( attrLn.equals(RTL_CONSTASCII_STRINGPARAM("file"))) { attrFile = reader.getAttributeValue(false); + } else if ((attrNsId == + xmlreader::XmlReader::NAMESPACE_NONE) && + attrLn.equals( + RTL_CONSTASCII_STRINGPARAM("optional"))) + { + dependencyOptional_ = xmldata::parseBoolean( + reader.getAttributeValue(true)); } } if (!attrFile.is()) { @@ -100,8 +113,8 @@ bool XcdParser::startElement( reader.getUrl()), css::uno::Reference< css::uno::XInterface >()); } - dependency_ = attrFile.convertFromUtf8(); - if (dependency_.isEmpty()) { + dependencyFile_ = attrFile.convertFromUtf8(); + if (dependencyFile_.isEmpty()) { throw css::uno::RuntimeException( (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( @@ -110,11 +123,16 @@ bool XcdParser::startElement( css::uno::Reference< css::uno::XInterface >()); } } - if (dependencies_.find(dependency_) == dependencies_.end()) { + if ((processedDependencies_.find(dependencyFile_) == + processedDependencies_.end()) && + (!dependencyOptional_ || existingDependencies == 0 || + (existingDependencies->find(dependencyFile_) != + existingDependencies->end()))) + { return false; } state_ = STATE_DEPENDENCY; - dependency_ = rtl::OUString(); + dependencyFile_ = rtl::OUString(); return true; } state_ = STATE_COMPONENTS; @@ -125,14 +143,16 @@ bool XcdParser::startElement( { nestedParser_ = new XcsParser(layer_, data_); nesting_ = 1; - return nestedParser_->startElement(reader, nsId, name); + return nestedParser_->startElement( + reader, nsId, name, existingDependencies); } if (nsId == ParseManager::NAMESPACE_OOR && name.equals(RTL_CONSTASCII_STRINGPARAM("component-data"))) { nestedParser_ = new XcuParser(layer_ + 1, data_, 0, 0, 0); nesting_ = 1; - return nestedParser_->startElement(reader, nsId, name); + return nestedParser_->startElement( + reader, nsId, name, existingDependencies); } break; default: // STATE_DEPENDENCY diff --git a/configmgr/source/xcdparser.hxx b/configmgr/source/xcdparser.hxx index 97d6062..ca17964 100644 --- a/configmgr/source/xcdparser.hxx +++ b/configmgr/source/xcdparser.hxx @@ -38,9 +38,9 @@ struct Data; class XcdParser: public Parser { public: - typedef std::set< rtl::OUString > Dependencies; - - XcdParser(int layer, Dependencies const & dependencies, Data & data); + XcdParser( + int layer, std::set< OUString > const & processedDependencies, + Data & data); private: virtual ~XcdParser(); @@ -48,7 +48,8 @@ private: virtual xmlreader::XmlReader::Text getTextMode(); virtual bool startElement( - xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name); + xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name, + std::set< OUString > const * existingDependencies); virtual void endElement(xmlreader::XmlReader const & reader); @@ -58,10 +59,11 @@ private: STATE_START, STATE_DEPENDENCIES, STATE_DEPENDENCY, STATE_COMPONENTS }; int layer_; - Dependencies const & dependencies_; + std::set< OUString > const & processedDependencies_; Data & data_; State state_; - rtl::OUString dependency_; + rtl::OUString dependencyFile_; + bool dependencyOptional_; rtl::Reference< Parser > nestedParser_; long nesting_; }; diff --git a/configmgr/source/xcsparser.cxx b/configmgr/source/xcsparser.cxx index fe760eb..686bfdb 100644 --- a/configmgr/source/xcsparser.cxx +++ b/configmgr/source/xcsparser.cxx @@ -21,6 +21,7 @@ #include <cassert> #include <cstddef> +#include <set> #include "com/sun/star/uno/Any.hxx" #include "com/sun/star/uno/Reference.hxx" @@ -127,9 +128,10 @@ xmlreader::XmlReader::Text XcsParser::getTextMode() { } bool XcsParser::startElement( - xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name) + xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name, + std::set< OUString > const * existingDependencies) { - if (valueParser_.startElement(reader, nsId, name)) { + if (valueParser_.startElement(reader, nsId, name, existingDependencies)) { return true; } if (state_ == STATE_START) { diff --git a/configmgr/source/xcsparser.hxx b/configmgr/source/xcsparser.hxx index 63ecac7..930f409 100644 --- a/configmgr/source/xcsparser.hxx +++ b/configmgr/source/xcsparser.hxx @@ -22,6 +22,7 @@ #include "sal/config.h" +#include <set> #include <stack> #include "rtl/ref.hxx" @@ -49,7 +50,8 @@ private: virtual xmlreader::XmlReader::Text getTextMode(); virtual bool startElement( - xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name); + xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name, + std::set< rtl::OUString > const * existingDependencies); virtual void endElement(xmlreader::XmlReader const & reader); diff --git a/configmgr/source/xcuparser.cxx b/configmgr/source/xcuparser.cxx index 4967747..56f9e21 100644 --- a/configmgr/source/xcuparser.cxx +++ b/configmgr/source/xcuparser.cxx @@ -21,6 +21,7 @@ #include <algorithm> #include <cassert> +#include <set> #include "com/sun/star/uno/Any.hxx" #include "com/sun/star/uno/Reference.hxx" @@ -77,9 +78,10 @@ xmlreader::XmlReader::Text XcuParser::getTextMode() { } bool XcuParser::startElement( - xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name) + xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name, + std::set< OUString > const * existingDependencies) { - if (valueParser_.startElement(reader, nsId, name)) { + if (valueParser_.startElement(reader, nsId, name, existingDependencies)) { return true; } if (state_.empty()) { diff --git a/configmgr/source/xcuparser.hxx b/configmgr/source/xcuparser.hxx index 85d63c9..1b9f318 100644 --- a/configmgr/source/xcuparser.hxx +++ b/configmgr/source/xcuparser.hxx @@ -22,6 +22,7 @@ #include "sal/config.h" +#include <set> #include <stack> #include "rtl/ref.hxx" @@ -61,7 +62,8 @@ private: virtual xmlreader::XmlReader::Text getTextMode(); virtual bool startElement( - xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name); + xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name, + std::set< OUString > const * existingDependencies); virtual void endElement(xmlreader::XmlReader const & reader); diff --git a/officecfg/registry/data.dtd b/officecfg/registry/data.dtd index 921814d..2c9bce6 100644 --- a/officecfg/registry/data.dtd +++ b/officecfg/registry/data.dtd @@ -22,7 +22,8 @@ <!ELEMENT dependency EMPTY> <!ATTLIST dependency - file CDATA #REQUIRED> + file CDATA #REQUIRED + optional (false | true) #IMPLIED> <!ENTITY % component-schema.dtd SYSTEM "component-schema.dtd"> %component-schema.dtd; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits