summaryrefslogtreecommitdiff
path: root/vcl/inc/sft.hxx
AgeCommit message (Collapse)Author
2024-03-14reduce symbol visibility in vclNoel Grandin
Change-Id: Ifaa37246e79678aa0c548b9ca8a9faf8036b9195 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164804 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-02-12use more UNLESS_MERGELIBSNoel Grandin
Change-Id: I351a9127fb26369d8f598b6d6519d7e490fa476b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163190 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-23tdf#146619 Remove unused includes from vcl/incGabor Kelemen
Change-Id: I8fbe02547d5045cfdb5021720b10ddd10106209a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155750 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-07-30Drop freshly unused font subsetting codeKhaled Hosny
These output font formats were for PostScript that is now gone. Change-Id: Ib29f921fe25432aaa558ba842ee77fe1e8023d47 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155069 Reviewed-by: خالد حسني <khaled@libreoffice.org> Tested-by: خالد حسني <khaled@libreoffice.org>
2022-12-06Simplify PhysicalFontFace::CreateFontSubset() a bitKhaled Hosny
Hide the logic inside fontsubset and don’t leak it to the caller. Change-Id: Ibc845e0051eaeb64e8de42f80d4d404fd6a3880e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143686 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-12-06tdf#113048: Fix PDF ascender and descender of some fontsKhaled Hosny
Use the same ascender and descender calculation for fonts with CFF table as fonts without CFF table. This also provides a better fix for tdf#138325 and tdf#151039. Change-Id: I416a123199e94401fa557fce95013eb8b0590e33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143683 Tested-by: خالد حسني <khaled@aliftype.com> Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-11-21be more specific on what "Symbol" isCaolán McNamara
Change-Id: Icd08628848cce74407552f57660d75b1ac9816bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143009 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-10-22loplugin:unusedmethodsNoel Grandin
Change-Id: I3c94d68cb85adc2005a5a5e3b03a311732f782c3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141617 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-10-01Unused constantsKhaled Hosny
Change-Id: Ic43a4e52b5ea40e54b368815e504840cb2c78aab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140845 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-10-01vcl: Move TrueTypeFace where it is usedKhaled Hosny
No need to make it module public. Easier to modify it. Change-Id: I119381d463c8f176b355fc7df111011ae518b49d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140821 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-30vcl: Apply variations to font metricsKhaled Hosny
Use HarfBuzz API instead of reading the raw font table directly, since HarfBuzz will apply the font variations as needed. For non-variable fonts we still also use HarfBuzz font metrics API, but in a more fine-grained way to maintain backward-compatibility. Change-Id: If6b12a11ecb63356be92ef4f0714355ae77378f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140799 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-24use faster TempFile for font subset writingNoel Grandin
by not asking for the name or URL, we stay on the happy path, which is faster on Windows Change-Id: Ia333ab251fc0fc4129ad0610412c5c509914a58e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140453 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-22convert TrueTypeTable to C++ classNoel Grandin
Change-Id: I06f01c79414380e37dc006cc7f7fdce1976035f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140357 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-20use O[U]String in TrueType codeNoel Grandin
instead of manual memory management Change-Id: Iccde191bfcfbf9ff2488205fffc12b94b46ab658 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140207 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-20vcl: tdf#138325 pass PostScript name down to CreateCFFfontSubset()Khaled Hosny
If we don’t pass the name from the caller, it will try to read it from the CFF table but some fonts has CFF table without a PostScript name so we end up with a dummy value. Change-Id: Ie7c46cdf5542ce83a57b60dee35dbb704a898f18 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140220 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-19vcl: Don’t use temporary files for CreateFontSubset()Khaled Hosny
The callers pass a path to a temporary file for the function to write to, then they immediately read from it. This change cuts the unnecessary use of temporary files and passes the subset font data around instead. The CFF subsetting code really wants files and needs more invasive change, so it still uses a temporary files but this is hidden from its caller. Change-Id: I2a2117e967b76fb903ff0d32c435925049bc6e56 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140122 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-14use a std::vector and can avoid a copyCaolán McNamara
Change-Id: I7480d4b9c3e5a78b04848444c6206e60f3260969 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139909 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-13vcl: Simplify calling FillFontSubsetInfo()Khaled Hosny
Change-Id: I725ad2f3dcdbe032c0a36d9649a2ed85a499a20a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139800 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-13vcl: Move subsetting helper functions to sft.cxxKhaled Hosny
No functional change. Change-Id: I8de9117c1b1b1fef251e2711287dbdadaccc4d74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139799 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-11vcl: Add a PhysicalFontFace-backed TrueTypeFontKhaled Hosny
This is mainly to be able to get the font table data from the PhysicalFontFace so that an actual font file or full font data are not required (since they are not always available, e.g. with CoreText fonts). This is slightly based on QtTrueTypeFont that this code replaces. Change-Id: I6926706dfc6765076100ac0314a30f9ff970ddb6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139760 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2022-09-08vcl: Get FontCharMap from HarfBuzzKhaled Hosny
Implement PhysicalFontFace::GetFontCharMap() on top hb_face_collect_unicodes() so that it is the same charmap as what shaping code will actually use. Change-Id: I486e9d296cec5bd897e4f628d14a2f19e63b70b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139623 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@aliftype.com>
2021-03-24convert m_pFileName to std::stringNoel
which simplifies the code and fixes a problem with using strdup(), because strdup() allocates with malloc, while unique_ptr will free it with delete[], and we'll get a mismatch error from ASAN (spotted by Mike Kaganski) Change-Id: I0f21828ef3482898b81aa3f0745b2bd855a2c286 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112980 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-23use unique_ptr in AbstractTrueTypeFontNoel Grandin
Change-Id: I57dcc1a247e01f1a31fcadc7f998833af42a0466 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112932 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-22convert calloc/free into std::vectorCaolán McNamara
Change-Id: Iecbbc58b52d393840b9e68764de276594a86aa4b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112882 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-26loplugin:passstuffbyrefNoel
Change-Id: I330e0ab6c9955939dad313f9d472f93e39dbd313 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109924 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-06loplugin:const* make some params and methods constNoel
Change-Id: If7fbb25037343e18081a8ee7064840d75e9a45a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104010 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-09-15WIN OSX Qt5 unify CreateFontSubset codeJan-Marek Glogowski
This is basically just some refactoring. Most interestingly the MacOS used to work with 257 glyphs. I couldn't find any explaination for the 256 glyph limit. Sadly the PrintFontManager is out of scope. That needs more inspection. Change-Id: Ibfa0e905f5efeb7d4a609884d64b4ed2615a9d3d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102688 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Tested-by: Jenkins
2020-09-15Forward existing FontCharMap from PhysicalFontFaceJan-Marek Glogowski
Since removed code in the previous commit is primary used in CreateFontSubset and GetGlyphWidths, you have a high chance, that the CMAP was already used for displaying a font, so it's already decoded and can be forwarded. Also the lookup should be faster in general this way. Change-Id: Icf4d8a1a84ff6ccdaccb7e870abe5df3837f9541 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102686 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Tested-by: Jenkins
2020-09-15Replace FindCmap with ParseCMAPJan-Marek Glogowski
This introduces a potential performance regression, because FindCmap works on the existing font tables and just sets up a lookup function, while ParseCMAP creates some optimized, in-memory lookup table, which needs a bit more work, but is faster in its usage, I think. At least the initial usage is faster the old way, as the CMAPs aren't decoded at all. As you can see, the old code is just used on Windows and MacOS / iOS. Deep in the bowels of the PrintFontManager, the CMAP is also decoded using ParseCMAP... So I'm not sure this potential regression really exists. Most fonts will already have a decoded CMAP, so my guess is this is actually faster in the end. No idea, how to measure. Change-Id: I52caac1264cd3ff11a2a3fa6e9c800f67f146a79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102685 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-09-11tdf#125234 Qt5 set glpyh font bounding boxJan-Marek Glogowski
Not sure if this is strictly needed, and obviously it will be "wrong" for a sub font containing just some of the glyphs, but since other backends also do this, follow suit. Change-Id: Ib83542b685b38d800d09b7a19780f9ac619c7ad0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102487 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-08-15tdf#125234 Qt5 implement CreateFontSubsetJan-Marek Glogowski
This abstracts the just refactored vcl::TrueTypeFont class, so the Qt5 backend can provide it's own QRawFont based font table access. Change-Id: Ic71bc95bc8fe39bc7a32086d4adc78cfa00d15be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100718 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-08-15Refactor vcl::TrueTypeFont class member accessJan-Marek Glogowski
This hides all members, which are needed to create a new TTF font by calling vcl::CreateTTFromTTGlyphs, and adds an abstraction to access individual font tables. This is needed, because Qt5 just allows access to the raw font based on font tables. Change-Id: I74e34cf1aa2529a06ec5ec53aa2be751e58982ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100717 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-02-21Drop o3tl::optional wrapperStephan Bergmann
...now that macOS builds are guaranteed to have std::optional since 358146bbbd1b9775c12770fb5e497b6ec5adfc51 "Bump macOS build baseline to Xcode 11.3 and macOS 10.14.4". The change is done mostly mechanically with > for i in $(git grep -Fl optional); do > sed -i -e 's:<o3tl/optional\.hxx>\|\"o3tl/optional\.hxx\":<optional>:' \ > -e 's/\<o3tl::optional\>/std::optional/g' \ > -e 's/\<o3tl::make_optional\>/std::make_optional/g' "$i" > done > for i in $(git grep -Flw o3tl::nullopt); do > sed -i -e 's/\<o3tl::nullopt\>/std::nullopt/g' "$i" > done (though that causes some of the resulting #include <optional> to appear at different places relative to other includes than if they had been added manually), plus a few manual modifications: * adapt bin/find-unneeded-includes * adapt desktop/IwyuFilter_desktop.yaml * remove include/o3tl/optional.hxx * quote resulting "<"/">" as "&lt;"/"&gt;" in officecfg/registry/cppheader.xsl * and then solenv/clang-format/reformat-formatted-files Change-Id: I68833d9f7945e57aa2bc703349cbc5a56b342273 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89165 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-01Introduce o3tl::optional as an alias for std::optionalStephan Bergmann
...with a boost::optional fallback for Xcode < 10 (as std::optional is only available starting with Xcode 10 according to <https://en.cppreference.com/w/cpp/compiler_support>, and our baseline for iOS and macOS is still Xcode 9.3 according to README.md). And mechanically rewrite all code to use o3tl::optional instead of boost::optional. One immediate benefit is that disabling -Wmaybe-uninitialized for GCC as per fed7c3deb3f4ec81f78967c2d7f3c4554398cb9d "Slience bogus -Werror=maybe-uninitialized" should no longer be necessary (and whose check happened to no longer trigger for GCC 10 trunk, even though that compiler would still emit bogus -Wmaybe-uninitialized for uses of boost::optional under --enable-optimized, which made me ponder whether this switch from boost::optional to std::optional would be a useful thing to do; I keep that configure.ac check for now, though, and will only remove it in a follow up commit). Another longer-term benefit is that the code is now already in good shape for an eventual switch to std::optional (a switch we would have done anyway once we no longer need to support Xcode < 10). Only desktop/qa/desktop_lib/test_desktop_lib.cxx heavily uses boost::property_tree::ptree::get_child_optional returning boost::optional, so let it keep using boost::optional for now. After a number of preceding commits have paved the way for this change, this commit is completely mechanical, done with > git ls-files -z | grep -vz -e '^bin/find-unneeded-includes$' -e '^configure.ac$' -e '^desktop/qa/desktop_lib/test_desktop_lib.cxx$' -e '^dictionaries$' -e '^external/' -e '^helpcontent2$' -e '^include/IwyuFilter_include.yaml$' -e '^sc/IwyuFilter_sc.yaml$' -e '^solenv/gdb/boost/optional.py$' -e '^solenv/vs/LibreOffice.natvis$' -e '^translations$' -e '\.svg$' | xargs -0 sed -i -E -e 's|\<boost(/optional)?/optional\.hpp\>|o3tl/optional.hxx|g' -e 's/\<boost(\s*)::(\s*)(make_)?optional\>/o3tl\1::\2\3optional/g' -e 's/\<boost(\s*)::(\s*)none\>/o3tl\1::\2nullopt/g' (before committing include/o3tl/optional.hxx, and relying on some GNU features). It excludes some files where mention of boost::optional et al should apparently not be changed (and the sub-repo directory stubs). It turned out that all uses of boost::none across the code base were in combination with boost::optional, so had all to be rewritten as o3tl::nullopt. Change-Id: Ibfd9f4b3d5a8aee6e6eed310b988c4e5ffd8b11b Reviewed-on: https://gerrit.libreoffice.org/84128 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-16Replace define by constexpr in sft.hxx (vcl)Julien Nabet
+ add required vcl namespace prefix to a call from outside in fontsubset.cxx Change-Id: Ib8d5c2e5a409957221c81b17dafaf3323760e8e5 Reviewed-on: https://gerrit.libreoffice.org/80857 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-14Fix numbering of font tables in sft.hxx (vcl)Julien Nabet
Following kern table removal done with e3caecb5a33288dd46a80b2ffcc47a2288305052 Change-Id: Ifb42f5dc85e25faf9f1a94db7179b981abb150df Reviewed-on: https://gerrit.libreoffice.org/80742 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-13Replace "static const" by "constexpr" in sft.hxx (vcl)Julien Nabet
Change-Id: I7ee86442cf822a2e866f379a98dae901f5291b8f Reviewed-on: https://gerrit.libreoffice.org/80741 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-10-13Refactor + fix TrueTypeTableNew_post + some reading types for sft/ttcr (vcl)Julien Nabet
Move const in sft.hxx and replace define by static const Also, fix some errors with data formats + TrueTypeTableNew_post definition Following https://docs.microsoft.com/en-us/typography/opentype/spec/otff: Fixed = 32-bit signed fixed-point number (16.16) FWORD = int16 UFWORD = uint16 Change-Id: I8c460e517b9f25077f5ad81a6da656695c8e6fa1 Reviewed-on: https://gerrit.libreoffice.org/80733 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-10-13Add glyf constants + remove "offset" pattern for length var (vcl)Julien Nabet
Change-Id: I35bf0cda789cbbaa5272b78b30a58fa8c4d8c08a Reviewed-on: https://gerrit.libreoffice.org/80726 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-10-12Document and replace some magic values in sft/ttcr (vcl)Julien Nabet
Change-Id: Id9c3f96acb7b93c7ef215ae33d98ad17ef45095c Reviewed-on: https://gerrit.libreoffice.org/80719 Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> Tested-by: Jenkins
2019-08-27Consolidate ImplCalcLineSpacing()Khaled Hosny
Move getting UPEM and font tables to the functions and use HarfBuzz API to get them. In the future we might stop reading the tables ourselves and use HarfBuzz metrics API instead. Change-Id: I3f4511628fd33200bae94cdcd96479ba3e6d2fba Reviewed-on: https://gerrit.libreoffice.org/78081 Tested-by: Jenkins Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2019-06-13tdf#42949 Fix IWYU warnings in vcl/inc/*Gabor Kelemen
Platform-specific subdirs are left alone: android, ios, osx, quartz, win Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: Icbb906b7fbc960240c73c56d3dae2a78b06a0f53 Reviewed-on: https://gerrit.libreoffice.org/73754 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-06-10use std::array in TrueTypeFontNoel Grandin
Change-Id: Ib19e907a9b6fcce3a3938c5dee29ff658b12e9c4 Reviewed-on: https://gerrit.libreoffice.org/73735 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-02Implement Windows VCL backend as pluginJan-Marek Glogowski
Change-Id: If9c7c67f48311ac68ecc9f8e3a07f9bb7c73d962 Reviewed-on: https://gerrit.libreoffice.org/61101 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-19loplugin:useuniqueptr in GetTTSimpleGlyphMetricsNoel Grandin
and only return the advance, we don't use the other field Change-Id: I956033dac97763caea2b27404fe9f099da809899 Reviewed-on: https://gerrit.libreoffice.org/60703 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-18tdf#108523 Remove @author annotationsAbhyudaya Sharma
Change-Id: I85e364da59ce70ddd97fdae9bc03a4ea76b007fc Reviewed-on: https://gerrit.libreoffice.org/55263 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2018-05-29Remove unused SFErrCodes::TableFormatStephan Bergmann
...which was apparently unused (under its original name SF_TABLEFORMAT) ever since its introduction in 571f15004533c1e7a5472e033139d5765862fb73 "Unix PS- Print Environment". (Not sure what its appearance in the comment to AddTable, also there since that introductory commit, was ever supposed to mean.) Change-Id: I363e21e2e2d23aaf17c6f10b3936ba700203b9eb Reviewed-on: https://gerrit.libreoffice.org/55020 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-05-29Change SFErrCodes to scoped enumStephan Bergmann
Change-Id: Ib2f267397e419e8164bb2d732f7cbcca7acad1a6 Reviewed-on: https://gerrit.libreoffice.org/54996 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-03-09loplugin:constantparam in vclNoel Grandin
Change-Id: I1618280494ff10d884a3285501303c6a74ef3542 Reviewed-on: https://gerrit.libreoffice.org/50951 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-08Remove unused macrosKhaled Hosny
TYPEFLAG_PS_OPENTYPE is set but never used, and dropping it means we no longer need TYPEFLAG_COPYRIGHT_MASK either. Change-Id: Iefb45b32f53a806f2477ce54b7062b5846a6a806 Reviewed-on: https://gerrit.libreoffice.org/49427 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>