Files
odfstudio/filter
Xisco Fauli 4e0c800134 filter: fix -Werror=sign-compare
Seen with gcc12:
filter/source/config/cache/filtercache.cxx: In constructor ‘filter::config::FilterCache::FilterCache()’:
filter/source/config/cache/filtercache.cxx:76:14: error: comparison of integer expressions of different signedness: ‘int’ and ‘std::size_t’ {aka ‘long unsigned int’} [-Werror=sign-compare]
   76 |     assert(i == std::size(sStandardProps));
      |            ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
filter/source/config/cache/filtercache.cxx:97:14: error: comparison of integer expressions of different signedness: ‘int’ and ‘std::size_t’ {aka ‘long unsigned int’} [-Werror=sign-compare]
   97 |     assert(i == std::size(sTypeProps));

after
commit 48d9138b74
Author: Liam Connors <liam.m.connors@gmail.com>
Date:   Sun Mar 8 18:03:18 2026 -0700

    tdf#147021 replace SAL_N_ELEMENTS with std::size

Change-Id: Iee239626110ff1f50cc9abeb693bc368e1d7607d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201500
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-03-12 08:37:47 +01:00
..
…
2026-03-12 08:37:47 +01:00
…
…

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.