db3a61cd95
...instead of by listing the content somewhat redundantly in the Rdb_*.mk files, to avoid duplication of logic for components that are only built conditionally (and thus should only be included conditionally in the corresponding Rdb). To achieve that, add an "rdb" parameter to gb_ComponentTarget_ComponentTarget (and to the gb_*_set_componentfile macros that internally call gb_ComponentTarget_ComponentTarget), which is used to make the appropriate gb_Rdb_add_component call internally from within gb_ComponentTarget_ComponentTarget. (As a special case, gb_CppunitTest_set_componentfile shall not call gb_Rdb_add_component, as that has already been done by the corresponding gb_Library_set_componentfile call, so allow the gb_ComponentTarget_ComponentTarget "rdb" parameter to be empty to support that special case.) Most Rdb_*.mk files are thus mostly empty now. One exception is i18npool/Rdb_saxparser.mk, which duplicates some of the Rdb_services content as needed during the build in CustomTarget_i18npool/localedata. |
||
---|---|---|
.. | ||
inc | ||
qa/cppunit | ||
source/filter | ||
util | ||
CppunitTest_lotuswordpro_import_test.mk | ||
CppunitTest_lotuswordpro_test_lotuswordpro.mk | ||
IwyuFilter_lotuswordpro.yaml | ||
Library_lwpft.mk | ||
Makefile | ||
Module_lotuswordpro.mk | ||
README.md |
Import Filter for File Format of Lotus Word Pro (lwp)
Description
The import is not direct, but via an intermediate format: StarOffice
XML, the predecessor of ODF (yes, the code is old). The entry point to
the filter is class LotusWordProImportFilter (refer to Source code
section), but that just hooks up the necessary machinery for processing
StarOffice XML produced by the filter. The real fun starts in function
ReadWordproFile()
(source/filter/lwpfilter.cxx
); this function
initializes the parser (class Lwp9Reader
) and the SAX XML handler that
produces the output (class XFSaxStream
). The Lwp9Reader class then does
the actual parsing.
If the module is built with debug level greater than 0, it is possible
to examine the intermediate XML: set environment variable
DBG_LWPIMPORT_DIR=
to an existing directory and, on opening an lwp
document, a file named lwpimport.xml
will be created in that directory.
Source Code
Module Contents
inc
: module-global headers (can be included by any file in source)qa
:cppunit
testssource
: the filter itselfutil
: UNO passive registration config
Source Contents
filter
:lwp
document format parserfilter/LotusWordProImportFilter.cxx
: the entry point to the filterfilter/xfilter
: export to StarOffice XML