summaryrefslogtreecommitdiff
path: root/sal
AgeCommit message (Collapse)AuthorFilesLines
2022-03-15set LO_TESTNAME on startup on all platformsLuboš Luňák1-1/+4
c0b1d1bf5701d5f94b618f70da8e863d32d97ab4 did this only for UNX for no apparent reason. Solves CppunitTest_sc_tablecolumnsobj asserting on it not being set. Change-Id: Ia9484e5c90bef18450addcf9429f9a27d575c3b4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131631 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-03-11Remove redundant checkStephan Bergmann1-7/+0
The precondition `nIndex >= 0` is already asserted at the top of the function. Change-Id: I7436ce923b19aa81f08d1fb20680308f609d2242
2022-03-09Drop misguided test added in 82a1d32d3d3ac1b4b0a6d4cfaca791c77d9b3c03Mike Kaganski3-12/+8
The documented precondition is that index must not be greater than the length of string. Just assert that, and fix the found misuse. The added test is for in-place replacement, just in case. Change-Id: I3c545a6f0bf913fe93e2bef83ce733359c193065 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131232 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2022-03-09Simplify getTokenMike Kaganski2-37/+49
It should not attempt to dereference pointers when nIndex is negative. Properly handle too large nIndex. Also it is not necessary to parse the string when nToken is negative. Related to commit be281db569bafaac379feb604c39e220f51b18c4 Author Rüdiger Timm <rt@openoffice.org> Date Mon Sep 20 07:43:20 2004 +0000 INTEGRATION: CWS ause011 (1.18.22); FILE MERGED 2004/08/18 11:47:54 sb 1.18.22.1: #i33153# Made getToken more robust. Change-Id: I6fc77a5b70308ccca08cb2132bd78d024bd7e3e0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131221 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-03-08Fix --with-latest-c++ buildStephan Bergmann1-0/+1
> In file included from workdir/UnpackedTarball/cppunit/include/cppunit/TestAssert.h:8, > from workdir/UnpackedTarball/cppunit/include/cppunit/TestCase.h:6, > from workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:5, > from workdir/UnpackedTarball/cppunit/include/cppunit/extensions/HelperMacros.h:9, > from sal/qa/rtl/oustring/rtl_ustr.cxx:25: > workdir/UnpackedTarball/cppunit/include/cppunit/tools/StringHelper.h: In instantiation of ‘typename std::enable_if<(! std::is_enum<_Tp>::value), std::__cxx11::basic_string<char> >::type CppUnit::StringHelper::toString(const T&) [with T = char16_t; typename std::enable_if<(! std::is_enum<_Tp>::value), std::__cxx11::basic_string<char> >::type = std::__cxx11::basic_string<char>]’: > workdir/UnpackedTarball/cppunit/include/cppunit/TestAssert.h:74:50: required from ‘static std::string CppUnit::assertion_traits<T>::toString(const T&) [with T = char16_t; std::string = std::__cxx11::basic_string<char>]’ > workdir/UnpackedTarball/cppunit/include/cppunit/TestAssert.h:168:58: required from ‘void CppUnit::assertEquals(const T&, const T&, SourceLine, const std::string&) [with T = char16_t; std::string = std::__cxx11::basic_string<char>]’ > sal/qa/rtl/oustring/rtl_ustr.cxx:696:17: required from here > workdir/UnpackedTarball/cppunit/include/cppunit/tools/StringHelper.h:25:9: error: use of deleted function ‘std::basic_ostream<char, _Traits>& std::operator<<(basic_ostream<char, _Traits>&, char16_t) [with _Traits = char_traits<char>]’ > 25 | ost << x; > | ~~~~^~~~ > In file included from include/rtl/ustring.hxx:34, > from sal/qa/rtl/oustring/rtl_ustr.cxx:22: > ~/gcc/trunk/inst/include/c++/12.0.1/ostream:558:5: note: declared here > 558 | operator<<(basic_ostream<char, _Traits>&, char16_t) = delete; > | ^~~~~~~~ Change-Id: I70ae970c10650d0e6efa5ced3a354090642d5387 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131164 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-03-07Add unit tests for searching empty substring / zero characterMike Kaganski3-429/+171
Related to commit 713c83c0fc4a0d9950cfa0b598d7c5f4bae15755 Add checks to avoid finding empty substring / zero character This activates tests in sal/qa/rtl/oustring/rtl_ustr.cxx Change-Id: Iab176e6583dc383a7a3413b0e19cc8f0d09b2824 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131087 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-03-05Add checks to avoid finding empty substring / zero characterMike Kaganski1-0/+9
... which changed in commit 281989007fd7dea997ed9a65f513f80b1aff67dd Author Noel Grandin <noel@peralex.com> Date Tue Jul 01 13:17:01 2014 +0200 Use standard library optimised routines for OUString/OString for optimized cases: strchr/wcschr/strrchr/wcsrchr find trailing zero character, and strstr/wcsstr find empty string; previous/unoptimized code does not find these. This introduced inconsistency between char and sal_Unicode functions on non-Windows, and for sal_Unicode between Windows and non-Windows (because on Windows, optimized code is used for sal_Unicode, while on other platforms, unoptimized code is used). Change-Id: I68529c91b26f4113d9bd7777fc5ac4809349864b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131064 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-03-05Fix typosAndrea Gelmini1-2/+2
Change-Id: I87f35153bbf53f58d6c8ca7b14a7fd09fec4372f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131052 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-03-04Remove useless comment on a commented line since always (sal/w32/file_dirvol)Julien Nabet1-3/+0
git history gives: commit b76cb86eaa0aec1d02c5ff29c5a43e1e7a675b27 Author: Oliver Bolte <obo@openoffice.org> Date: Wed Sep 9 09:38:41 2009 +0000 CWS-TOOLING: integrate CWS mhu20 where it was already commented and from sal/osl/w32/file.cxx then digging a bit more gives: commit 73cd79644d4355de483b0d0c04fba034ac02795b Author: Rüdiger Timm <rt@openoffice.org> Date: Mon Oct 17 13:52:03 2005 +0000 INTEGRATION: CWS perform05 (1.5.52); FILE MERGED where it's also already commented. => No need to keep this Change-Id: I3e8892e8c8f4e76d2e05a8bd158e77418a12eb38 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131030 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-03-04Avoid "ThreadSanitizer: unlock of an unlocked mutex"Stephan Bergmann1-1/+10
...in (somewhat contorted) test code Change-Id: I247a30e580b3d458eb748a833100a662c9890d99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130991 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-03-04tdf#98705 Replace GetCaseCorrectPathName with GetLongPathNameWKunal Pawar3-143/+15
Change-Id: I1d03267cd67da4c155248b585ca59dc5191d28f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130144 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-03-04Drop commented out wrong testsMike Kaganski1-95/+0
Change-Id: Ief086996f94978d2ffd6879a6c3e5b0b2312dffe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130962 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-03-04Enable tests in rtl_str.cxxMike Kaganski2-223/+160
And disable the tests that try to use nullptr where it's not accepted. Change-Id: I1cd031e371485fdd57e7691565376253a01049c3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130938 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-03-03Deduplicate some char replacement functionsMike Kaganski3-125/+47
Change-Id: Ie65224066941dbab89abb6fc91e6cbfbc45bf201 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130901 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2022-03-03Use a more conventional begin() / end() syntaxMike Kaganski1-17/+23
Also would potentially enable use in std range algorithms that take different end sentinel type. Change-Id: Ia75005caa7ce44302fc8612f5717a41d11087622 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130902 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-03-02Unify normal/shortened, null-terminated/with-length comparisonsMike Kaganski3-165/+131
Change-Id: Ie154efd1e0d9b49601200ac896d5d5dd0422d504 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130832 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-03-02Drop useless indirection and unused templateMike Kaganski3-62/+20
Change-Id: Icbcf56c30c9d901a4436f56a1648a7c8e7504848 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130817 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-03-02Unify and deduplicate to[U]Int[_WithLength]Mike Kaganski1-89/+56
Change-Id: I05e71b36030da0a91c24b3926ee1d069912849f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130815 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-03-01No need to memset the allocated buffer in new_WithLengthMike Kaganski1-3/+1
Other places that allocate, specifically newFromStr_WithLength and ensureCapacity, don't initialize the memory. Change-Id: Iad5301313312aac24948afefb27925d52fe3c673 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130762 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-28Use 'assert' where appropriateMike Kaganski1-2/+2
Change-Id: Id7ecf874745fb32406bcd2250a954aaf3a345103 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130667 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-28Deduplicate string buffer codeMike Kaganski5-303/+162
Change-Id: Ia23974ad3a827c84bb1a5d633a953625aea2576a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130663 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-27More replacement functions deduplicationMike Kaganski1-86/+46
Change-Id: I700074cddf1be937f5fdaf90e6cc0b533a3c57ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130633 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-27Unify creation of character string copyMike Kaganski3-87/+34
Change-Id: Ifef89cfd98771f247a308fab58da410a7079ecfc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130632 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-27Deduplicate newToAscii*CaseMike Kaganski3-129/+47
Change-Id: I55f4f43375037ad4247f592bc981d8718c12de68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130631 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-27Simplify newTrimMike Kaganski1-17/+2
Change-Id: I36e2f8b0f0f4829fba32e637fe61cebe9e67cf91 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130630 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-27Deduplicate more comparison functionsMike Kaganski3-232/+154
Change-Id: I93aba36b7cde268e358bd96b55183533ddc70b16 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130603 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-26Slightly cleanup newReplaceStrAtMike Kaganski2-25/+6
Change-Id: I230aa635aa797038055bdbc9453a5daa98412f93 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130465 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-25Slightly optimize newReplaceAllFromIndexMike Kaganski1-5/+7
Change-Id: Ie73a5e8c44458123ef03096e3e8f6c9e41c48814 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130466 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-25Deduplicate rtl_uString_newReplaceFirst*Mike Kaganski2-117/+38
Change-Id: I6e09fd8e8acc06290423c1c44cc0c175b0c47e0a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130547 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-25Make an -fsanitize=undefined workaround conditionalStephan Bergmann2-2/+20
...that had been introduced with b5cb4935c268f12e63b61e035b455b0a59e67aa2 "Work around undef conversion of large double to float" but should no longer be necessary with <https://github.com/llvm/llvm-project/commit/9e52c43090f8cd980167bbd2719878ae36bcf6b5> "Treat the range of representable values of floating-point types as [-inf, +inf] not as [-max, +max]" added towards Clang 9. Thanks to Mike Kaganski for pointing me at this old code and at Richard Smith's comment at <https://cplusplusmusings.wordpress.com/2013/03/26/testing-libc-with-fsanitizeundefined/>. Change-Id: I8ecf115fcf6b1ebf621cb4567f8d31ac9b10ef1c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130531 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-02-25Don't invent another strlenMike Kaganski1-11/+1
Change-Id: I7f7b7029ac03b1f06f4d9c2612b9b008b033baea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130538 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-25Use some rtl functionsMike Kaganski1-32/+10
Change-Id: I12fe2f5fe447e2bc6567e3d0375f1671e781697e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130515 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-25Deduplicate some comparison functionsMike Kaganski2-106/+46
Change-Id: Iffeb4323c99649d45387981ec583fdcff207ec4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130512 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-24Deduplicate rtl_*String_newConcat*LMike Kaganski3-89/+68
Change-Id: I9712cd8a2798fe5493dffd557e68239d9db3b7aa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130501 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-24Deduplicate rtl_*str_valueOf{Float,Double}Mike Kaganski3-48/+28
Change-Id: Ie3254fbf6178f4e623fd8209b58e9f19d2c46d2c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130480 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-24Fix warning textMike Kaganski1-1/+1
Change-Id: I42d0b3a19809a288630cfba6c01bcd5c4fde7702 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130454 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-24Deduplicate valueOf*Int*Mike Kaganski3-119/+22
Change-Id: Ib9da148c371f52ee8da2848581bb8a024f97de96 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130479 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-23Use rtl::isAsciiMike Kaganski1-1/+1
Change-Id: Iab88c3281f3dd1ba1668b3372420c97087c14da5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130381 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-23Simplify NewCopy a bit; avoid direct use of memcpyMike Kaganski1-9/+8
Change-Id: I197978604d0dfa997c95b907715ce891211621f8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130380 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-23Deduplicate newFromStr*Mike Kaganski1-47/+9
Change-Id: I01dd9d70affdfa048af6bd7455301e662290e662 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130370 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-23Deduplicate shortenedCompare*_WithLengthMike Kaganski1-28/+4
Change-Id: Ie1ba2787036955976f43217e64af889a314a2e65 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130325 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-23Drop obsolete codeMike Kaganski1-11/+2
Change-Id: Ia362d00c7637370f4dc967763892269909f06578 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130369 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-22Deduplicate newReplaceMike Kaganski2-56/+9
Optimize some places for single character case for that Change-Id: I99b2abd2fd3c89a98ed1d84f7b70ed4def83da2d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130371 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-18Define policy to optimize to_decimal to our use caseMike Kaganski1-8/+12
We don't need it to strip trailing zeroes (we do that ourselves anyway); also we don't need it to handle negatives. Makes doubleToString ~5% faster in my testing. Change-Id: Ie3c4e3fec1899364af54fda3f7141678a95359d0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130120 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-17Use Dragonbox to implement doubleTo*String*Mike Kaganski3-225/+77
This header-only library is accurate in decimal representation of doubles; provides API that allows to create custom representation - so it's possible to use custom decimal separators and grouping. This allows to unify all corner cases: integers, numbers close to DBL_MAX, up-rounding to the next decade. Note that Dragonbox creates the shortest decimal representation of the number, that is unambiguously convertible back to the same number; thus it may hide trailing digits that are unneeded for such conversion. The functional changes are minimal, and beneficial: 1. Rounding numbers close to DBL_MAX now takes into account the bEraseTrailingDecZeros argument, as it should, allowing to have "1.8E+308" for rounding DBL_MAX to 2 decimals without trailing zeroes, instead of previous "1.80E+308". 2. Incorrect rounding is fixed in some cases, e.g. 9.9999999999999929 rounded to 10 previously using rtl_math_DecimalPlaces_Max. 3. Representing the number in the shortest way may change display of some printed numbers. E.g., 5th greatest double is represented as "1.797693134862315E+308" instead of a bit longer, but giving the same double on roundtrip, "1.7976931348623149E+308". This would generally look better for some numbers similar to the famous 0.1, where users would likely expect more "round" representation where it's unambiguous (but we still truncate to 15 significant decimals anyway - so there's no point in pretending to provide exact digits for actual binary representation). These are reflected in the unit tests affected by the change. Change-Id: I05e20274a30eec499593ee3e9ec070e1269232a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129948 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-17Deduplicate some codeMike Kaganski3-50/+4
Change-Id: Ib05624739cce31b08fc409f238d447ed8d99bad9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130016 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-17Bump Linux Clang baseline to 8.0.1Stephan Bergmann2-9/+6
...as discussed in the mail sub-thread starting at <https://lists.freedesktop.org/archives/libreoffice/2022-February/088476.html> "Also bump Linux Clang baseline to 12.0.1 (was: Bump --enable-compiler-plugins Clang baseline?)", and clean up newly-obsolete __clang_major__ checks Change-Id: Idacb9148b019c07e138277df3a085ba71c64a8e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130028 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-02-16Related: tdf#147421: optimize O(U)String's replaceAll*Mike Kaganski3-45/+76
... and underlying low-level C functions. Change-Id: I78c2dd75e272e6d3cdd2cfae007ca0a0ec1635e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129942 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-16De-duplicate some codeMike Kaganski1-125/+10
Change-Id: I355fd800e09cef0776408375bd4d6053048d7eb8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129943 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-03Call SymInitialize only onceMike Kaganski1-7/+3
Also simplify the logic by passing fInvadeProcess = false there, since passing true is the same as calling SymRefreshModuleList explicitly. Fixes an overlook from commit 853a058ca6b75b0fb14e232911eb9f9553574736. Change-Id: I296f06845a9f92375908d72e69574c2ecd190028 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129338 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Luboš Luňák <l.lunak@collabora.com>