Files
odfstudio/filter
Stephan Bergmann d4ecccbddc Fix Python codecs.open deprecation warning
...seen at least with --with-system-python against
python3-3.14.0~rc3-1.fc43.x86_64, causing e.g.

> [FIF] fcfg_database_filters.xcu
> Traceback (most recent call last):
>   File "/home/sberg/lo-plain/core/filter/source/config/tools/merge/pyAltFCFGMerge", line 571, in getFragments
>     aFragmentFile = codecs.open(sFragPath, "r", "utf-8")
>   File "<frozen codecs>", line 916, in open
> DeprecationWarning: codecs.open() is deprecated. Use open() instead.
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
>   File "/home/sberg/lo-plain/core/filter/source/config/tools/merge/pyAltFCFGMerge", line 588, in <module>
>     run(sys.argv)
>     ~~~^^^^^^^^^^
>   File "/home/sberg/lo-plain/core/filter/source/config/tools/merge/pyAltFCFGMerge", line 290, in run
>     aMerger.merge()
>     ~~~~~~~~~~~~~^^
>   File "/home/sberg/lo-plain/core/filter/source/config/tools/merge/pyAltFCFGMerge", line 529, in merge
>     sBuffer = sBuffer + self.getFragments(\
>                         ~~~~~~~~~~~~~~~~~^^
>         os.path.join(self.m_aFragmentsDir, sSubDir), \
>         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>         sSetName, lFragments, 1)
>         ^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/home/sberg/lo-plain/core/filter/source/config/tools/merge/pyAltFCFGMerge", line 574, in getFragments
>     raise Exception("fragment \"" + sFragPath + "\" does not exists.")
> Exception: fragment "/home/sberg/lo-plain/core/filter/source/config/fragments/filters/../filters/StarOffice_XML__Base_.xcu" does not exists.
> make: *** [/home/sberg/lo-plain/core/filter/Configuration_filter.mk:81: /home/sberg/lo-plain/core/workdir/XcuFilterFiltersTarget/fcfg_database_filters.xcu] Error 1

to fail

Change-Id: I7de0459ff509009e3bc8afd803003a24b8fdaf41
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191349
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
2025-09-22 16:52:39 +02: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.