Commit Graph
183 Commits
Author SHA1 Message Date
Gabor Kelemen c511c65434 tdf#146619 Use more forward declarations in include/tools
Change-Id: Iab2938f82a9fd7ef3334d69c4fd07a9d963a9e24
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198237
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <gabor.kelemen@collabora.com>
2026-02-01 09:23:01 +01:00
Mike Kaganski c9c84aea32 Use group separators to clarify literal designating date
Change-Id: Iecc550d17cb928f46bc3cc594711830c0f0d0ccf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193508
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-11-06 08:08:46 +01:00
Caolán McNamara 9b74900076 ofz#442383407 Integer-overflow
Change-Id: I96c62fd03a6c7b4c5e1ddaa62df4bb577fbdb8ae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190812
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-09-11 18:14:53 +02:00
Mike Kaganski fb022d3ba4 Use less magic numbers
The constexpr function can generate them better

Change-Id: Iff25750a4f20181cca5c42c47884d68933229e74
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190807
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-09-11 14:55:51 +02:00
Caolán McNamara 72e538b9bd tainted_data_return is deprecated
in favour of taint_source, lets drop them all first

Change-Id: I9c4e5c143fcbd6de9491360c993a8ea1b89a726e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189820
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-08-17 15:33:16 +02:00
Mohamed Ali 6802590b3a tdf#157665 Use <=> operator for date
Change-Id: I3527b7fde74f09f6ce4a887ca353ba05a8e14742
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177211
Tested-by: Jenkins
Reviewed-by: Hossein   <hossein@libreoffice.org>
2025-02-01 23:00:54 +01:00
Caolán McNamara 12cad7e619 cid#1607163 silence Overflowed return value
and

cid#1608078 Overflowed return value
cid#1608461 Overflowed return value

Change-Id: Ic5fa20994c5be5d6c09a21c0bd1e3530ae9a6941
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177164
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-11-24 15:14:59 +01:00
Mike Kaganski 7e5f69aa33 Make tools::Time ctor taking sal_Int64 private
This ctor is meant to set the value of nTime directly; and that value
is not nanoseconds, but an encoded value, using SEC_/MIN_/HOUR_MASK.
But in some places, this ctor was misused for setting of nanoseconds,
which would only accidentally work for values less than one second.
All places that initialized tools::Time with 0, now use EMPTY.

This makes the ctor private; and for the very few cases where really
the encoded value of nTime is stored / restored, fromEncodedTime is
introduced.

Change-Id: I1f1994bd9aab1b51a41b1de637619049fe820da4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175283
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-10-21 10:30:58 +02:00
Mike Kaganski 794cb79c0e Optimize a bit
Change-Id: Ief89a827c05ae1197142de46a2d9365f87455158
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175282
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2024-10-21 06:26:42 +02:00
Noel Grandin 5c4fac1e9f loplugin:unusedmethods
Change-Id: I6ba4b4046190b701d4a15c6fa90b6009ecf4ab1c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175014
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-10-16 15:52:02 +02:00
Noel Grandin 6402a656cd cid#1607163 Overflowed return value
Change-Id: I403a2c5bb55e3a80d3bf99302b262aa507812d68
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174895
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2024-10-14 16:58:51 +02:00
Mike Kaganski 53f889780f Reimplement GetSystemDateTime using std::chrono
Change-Id: I15bce244f96a8940df73f4b5933bcb95a547673e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174691
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-10-08 17:10:32 +02:00
Mike Kaganski bbcd4765ee Simplify tools::Time code
Change-Id: I44a61a0ae2f6e2b81cce96ff96418484a611821d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174689
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-10-08 14:05:14 +02:00
Mohit Marathe be16c6cf5c sw: add Comments Panel in sidebar
This commit adds a sidebar deck for comments.
It has all the functionalities of the old comments
shown via annotation window.

Change-Id: Ibab0e21a54c097d0f42bddb1d07da74319970135
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167840
Tested-by: Jenkins
Reviewed-by: Sarper Akdemir <sarper.akdemir@allotropia.de>
2024-09-13 12:35:45 +02:00
Noel Grandin 57dc0cbd8e do less OString->OUString conversion in tools datetime functions
Change-Id: I93d012f32b8006019c431b8bf88ab9c7ffb4d3a0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167574
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2024-05-13 14:44:19 +02:00
Eike Rathke 46e672db80 Resolves: tdf#127334 Increase tools::Duration accuracy epsilon unsharpness
... when converting from double, i.e. to 300 nanoseconds.
Empirically determined..

Change-Id: I92c43b5f244923363af5d44bece9c155126ca343
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155324
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2023-08-03 21:42:53 +02:00
Andrea Gelmini 858dfb5359 Fix typo
Change-Id: I8dee1f762a39b21e88609d1d108846623d0b8bc2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153207
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-06-27 18:52:23 +02:00
Eike Rathke c968d89890 Introduce tools::Duration individual time values ctor
Change-Id: I516d3727cbcf6667b32dc963febbf4b753ef6a91
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153497
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2023-06-23 18:32:17 +02:00
Eike Rathke b07d72c6c1 Clamp and assert maximum hours value in Time::init()
Change-Id: Ia777222f3c797b90663b55499a57025e410b1d70
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153407
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2023-06-23 14:27:05 +02:00
Eike Rathke 986c2d86a7 Introduce tools::Duration(sal_Int32 nDays, const Time& rTime) ctor
Change-Id: If002e04536149b49b2249103ac914d17dec3fae6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153409
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2023-06-22 01:40:00 +02:00
Eike Rathke 9cf4983e7e Change DateTime friend operator-() to return tools::Duration instead of double
Change-Id: Ica69b1a8916c73443d9ec91dd35ed126fcf97151
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153392
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
2023-06-21 21:48:12 +02:00
Eike Rathke c7b2277f57 rbOverflow was already set for bBadNS, unnecessary to set it again
Change-Id: I26e32b25b53be590bc24646803c7442385ec4d3b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153393
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2023-06-21 16:34:46 +02:00
Eike Rathke 66da786bdd Introduce double DateTime::Sub() as a substitute for friend double operator-()
Change-Id: Idb93b3e9b4dcbd09ad7f4253a523fe5be24d0776
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153354
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2023-06-21 02:17:19 +02:00
Eike Rathke d3d77d99e3 Use tools::Duration in friend double operator-() if DateTime has Time set
Change-Id: Iff3e2aad596fdfd1530c46cdeff28b44e5142517
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153327
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2023-06-20 16:52:23 +02:00
Julien Nabet 99d01ff26f Fix TB Jenkins_Linux_Ubsan (duration.cxx)
/tools/source/datetime/duration.cxx:190:77: runtime error: negation of -2147483648 cannot be represented in type 'sal_Int32' (aka 'int'); cast to an unsigned type to negate this value to itself
0 0x7f08bd84936d in tools::Duration::Mult(int, bool&) const /tools/source/datetime/duration.cxx:190:77
1 0x7f08c1c1d27a in tools::DurationTest::testDuration() /tools/qa/cppunit/test_duration.cxx:219:26

Detected thanks to eac63ab120
Related: tdf#153517 Introduce class tools::Duration

Change-Id: I3804cc4ff4011a7f3b393b82b27f0c805682fbb4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153254
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-06-19 13:56:21 +02:00
Andrea Gelmini c041b5a3bc Fix typo
Change-Id: I1d7b271eed63dd0272bd92431eaac3e2dfbfe2b5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153206
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-06-17 20:50:14 +02:00
Eike Rathke eac63ab120 Related: tdf#153517 Introduce class tools::Duration
Change-Id: I73ea6e162c73382ba470a306ce2852dbff3d1314
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153202
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2023-06-17 15:16:09 +02:00
Eike Rathke 7e3ddf1e5a Factor out DateTime::NormalizeTimeRemainderAndApply(tools::Time& rTime)
Change-Id: Ie520b10baaeb4c94973c44435c3241e5d2254968
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152345
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2023-05-28 03:49:55 +02:00
Eike Rathke 261063e69e Eliminate 24h loops in DateTime::operator+=/-=(tools::Time&)
... and repeated Date::operator++/--() that each calculate
lcl_DaysToDate( GetAsNormalizedDays() + 1 )
where Date::AddDays() does it once.

Also, that probably never worked correctly with negative time results >=24h

Change-Id: Ic67aaa3d93e0d6533501d52671acf765e2d9bbdd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151984
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2023-05-19 02:29:18 +02:00
Eike Rathke 8cc4e6c8f5 Calculate null-date days to assert only once
Massively called it is really unnecessary to do that each and
every time. The debug build is slow enough..

Change-Id: I06525e4ca1fa23a1d49dd735370eb157157800e7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143127
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2022-11-22 20:13:01 +01:00
Eike Rathke c4d169eb7f Avoid second null-date check of convertDateToDaysNormalizing()
This is micro-optimization, but..

Change-Id: Ic5d43bc0ce9343cf194e189777109636d3b587c4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143126
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2022-11-22 19:47:09 +01:00
Eike Rathke 0e2781bb5f Related: tdf#152114 Move some tools' Date class algorithms to comphelper::date
So they can be reused, specifically in
connectivity/source/commontools/dbconversion.cxx

Change-Id: I8b2b59e3cb078a73d5f670f0756404471009cf9b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143114
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2022-11-22 18:38:39 +01:00
Caolán McNamara da46f3db22 cid#1509285 Use of 32-bit time_t
Change-Id: I5aea4aaa6da8cd974234ab3f0c36212d436e11df
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138332
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-16 09:52:55 +02:00
Urja Rannikko 7fa9b09bc2 tdf#128715 fix tools::Time::GetMonotonicTicks() on 32-bit linux
Since time_t and thus tv_sec is (still, for now) 32-bit on these
architechtures, the multiplication of seconds to microseconds
happened in 32-bit thus causing a rollover roughly every 4295 seconds.
Fix by casting tv_sec to sal_uInt64 before the multiplication.

Also fixes tdf#144975.

Change-Id: I829d3406208545a816979cb58daaeb99ec2d5294
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126379
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-06 11:58:09 +01:00
Noel Grandin ccf8884575 actually use CLOCK_MONOTONIC in tools::time
some of the code was not copied from sal/ correctly

Change-Id: I0a84b61eeab6a1b51eaa8ad303909373c52a6bb8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118529
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-06 22:07:59 +02:00
Andreas Heinisch ea61644abe tdf#58745 - Detect end of month when extending a date list
Change-Id: Icaa64a493598dc4bb8f2d6d076ad4300e2e4dde6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112976
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-03-25 09:42:40 +01:00
Noel bf4bbc3c21 replace std::max(std::min()) with std::clamp
Change-Id: I890d19f5e2177294dc1175c90c98b964347f9e85
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105751
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-16 07:53:49 +01:00
Noel 27f1827afa loplugin:reducevarscope in toolkit..unotools
Change-Id: I439b9f456ac0bfaa3eb9bf17472053bd4787e828
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103840
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-04 14:06:14 +02:00
Stephan Bergmann 445537bbc2 Upcoming improved loplugin:staticanonymous -> redundantstatic: tools
Change-Id: I832fbcde277a87ab873ce3477a6886c7002e24ad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97709
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-07-02 11:29:01 +02:00
Noel Grandin ce43004ca4 don't warn about 0/0/0 year, commonly used as a default-value/no-value
Change-Id: I2f6dc371f99d6963753ffaf5365a7d69ca866ca8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87190
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-22 15:40:26 +01:00
Andrea Gelmini 0940229305 Fix '..'
To complete this:
https://gerrit.libreoffice.org/#/c/78312/

This is a massive replace for lines ending with
".." instead of "..."

It passed "make check" on Linux.

Change-Id: I07fa7b2e30ba9ea17a1f9a5e21c57216ba958efe
Reviewed-on: https://gerrit.libreoffice.org/78356
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2019-09-01 11:15:11 +02:00
Andrea Gelmini 263e04b66d Fix typos
Change-Id: Ic472270afa13d2c96a4c7ccc185d183c3b7ade2c
Reviewed-on: https://gerrit.libreoffice.org/77277
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-08-12 10:50:55 +02:00
Gabor Kelemen 83abdf803a tdf#42949 Fix IWYU warnings in tools/
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.

Change-Id: I47974f5c24819eb60e6724f42d51bb206dc26d21
Reviewed-on: https://gerrit.libreoffice.org/71557
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-04-30 15:02:42 +02:00
Stephan Bergmann 6333dcf6f1 loplugin:indentation (macOS)
* Some .m/.mm files that still contained tabs instead of spaces have been
  cleaned up with Emacs' untabify (and
  apple_remote/source/HIDRemoteControlDevice.m needed further manual adaptions):

  apple_remote/source/GlobalKeyboardDevice.m
  apple_remote/source/HIDRemoteControlDevice.m
  apple_remote/source/KeyspanFrontRowControl.m
  apple_remote/source/RemoteControl.m
  vcl/osx/a11yrolehelper.mm

* Some of the changes predate 0626e66d76 "Avoid
  loplugin:indentation after preproc conditional inclusion lines" and would
  likely have no longer been flagged since.

Change-Id: Ibf5faffa743c7f79b36109d9879eb79d63c8c40f
Reviewed-on: https://gerrit.libreoffice.org/68090
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-02-21 09:14:14 +01:00
Noel Grandin 9e03f68204 loplugin:indentation in lingucomponent..tools
Change-Id: I96ed4c51ce3fe45c1cb69a7d7ff917f1e152462e
Reviewed-on: https://gerrit.libreoffice.org/67607
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-11 07:00:45 +01:00
Bartosz Kosiorek 9c0d40fbc7 Rename Mac OS X to official name macOS in comments and documentation
Change-Id: I651b7f202fa52ff5f5357a11aa72c43eb7dc7f95
Reviewed-on: https://gerrit.libreoffice.org/64102
Tested-by: Jenkins
Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2018-11-29 14:08:26 +01:00
Noel Grandin 5fb66ae559 clang-tidy readability-simplify-boolean-expr
Change-Id: I78fa01a6c803dec782488490b730af3a11814d64
Reviewed-on: https://gerrit.libreoffice.org/61902
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-18 09:46:28 +02:00
Gabor Kelemen f3b3450868 tdf#42949 Fix IWYU warnings in include/tools/*
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.

Change-Id: I9dc920e9388f9e2aa4dcae1f0b3f7562d08f7f70
Reviewed-on: https://gerrit.libreoffice.org/61809
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-10-17 12:30:05 +02:00
Andrea Gelmini f730f1d5db Fix typos
Change-Id: I678b545f2a266365fb700b3f75b3d939d28348d6
Reviewed-on: https://gerrit.libreoffice.org/61603
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-10-12 16:44:55 +02:00
Stephan Bergmann 7ceee0f1ec Extend loplugin:redundantinline to catch inline functions w/o external linkage
...where "inline" (in its meaning of "this function can be defined in multiple
translation units") thus doesn't make much sense.  (As discussed in
compilerplugins/clang/redundantinline.cxx, exempt such "static inline" functions
in include files for now.)

All the rewriting has been done automatically by the plugin, except for one
instance in sw/source/ui/frmdlg/column.cxx that used to involve an #if), plus
some subsequent solenv/clang-format/reformat-formatted-files.

Change-Id: Ib8b996b651aeafc03bbdc8890faa05ed50517224
Reviewed-on: https://gerrit.libreoffice.org/61573
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-10-09 14:47:17 +02:00