Bug document: fdo67478-1.doc The replace-spaces template consumed one pair of spaces per recursion level. WordML documents with very long space runs (e.g. 61000 consecutive spaces) exceeded libxslt's 3000 depth limit, causing an import error. Consume the entire consecutive space run in a single call by using translate() to find the first non-space character, counting all leading spaces at once, and emitting a single <text:s text:c="N"/> element. Recursion depth is now bounded by the number of separate space runs, not the total number of spaces. Change-Id: Ifb11a61a2e89274684e1d6d38920c8792598fa43 Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/62 Reviewed-by: Michael Stahl <michael.stahl@collabora.com> Tested-by: Jenkins CPCI <releng@collaboraoffice.com> (cherry picked from commit 7ba970bce9e1200e5712afe76ec3a85056be9263) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204666 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
LibreOffice Filters
Filter registration and some simple filters (also descriptions).
Desperate splitting of code into small shared libraries for historical
reasons presumably (OS/2 and Windows 3.x). The libraries produced from
the code in each subdirectory of filter/source/graphicfilter are
graphic format import or export filters. But they don't have uniform
API. Some have either a GraphicImport or GraphicExport entry point,
and are loaded and used in a uniform fashion from code in
svtools/source/filter/filter.cxx. Others have different API and are
loaded from other places. For instance icgm has ImportCGM, and is
loaded and used by sd/source/filter/cgm/sdcgmfilter.cxx (!).
Svgreader is used for "File -> Open" and then to choose the svg file.
For "Insert -> Picture -> From File", see svgio/source/svgreader directory.
Filter Configuration
The filter configuration consists of two parts, the type definition in
filter/source/config/fragments/types/ and the actual filter definition
in filter/source/config/fragments/filters/.
Each file type e.g. text file should be represented by exactly one type definition. This type can then be referenced by several different filters, e.g. calc text, writer text.