765 Commits

Author SHA1 Message Date
Olivier Le Doeuff
3286289bf6 build: use standard CMAKE_INSTALL_INCLUDEDIR for header install folder.
This gives user control over which folder header should be installed to instead of using hardcoded value `include/`.
Variable `CMAKE_INSTALL_INCLUDEDIR` is provided after a call to `include(GNUInstallDirs)`
More info can be found about usage in docs: https://cmake.org/cmake/help/latest/command/install.html
2024-09-28 16:41:22 -04:00
Andrea Pappacoda
cf8f25b183 build(cmake): always mark HAS_STRING_VIEW as part…
…of the interface

If the library gets compiled with HAS_STRING_VIEW=1, consumers always
need to link to the functions using std::string_view, as they are the
only ones compiled into the shared library.

You can find a longer explanation here:
<https://github.com/HowardHinnant/date/pull/754#issuecomment-1361248007>
2024-09-28 16:40:52 -04:00
Michael Maroszek
dc9d161607 detect current zone on OpenWRT systems 2024-09-28 16:31:51 -04:00
Kris Thielemans
d2ddc5ea1e Update gitattributes of zip file to binary 2024-09-28 15:57:19 -04:00
Edward Nolan
6219dd7e4d Support tz databases from release 2023d and newer by adding new zonenow.tab file to ignore list
date's internal init_tzdb function iterates through the files provided
by the tz database, and init_tzdb contains a list of files that should
not be interpreted as being in TZif format.

The 2023d release of the tz database added a new file that is not in
TZif format, zonenow.tab. However, this file had not been added to the
ignore list.

This caused date to intepret the zonenow.tab file as a TZif file,
which caused assertions to fire in debug mode if the user attempted to
load its associated time_zone, causing load_header() to be invoked
on the file, which would find that it did not contain a 'TZif' magic
number.

This commit addresses the issue by adding the file to the ignore list.

The announcement on the tz database mailing list which describes the
addition of zonenow.tab can be found at this link:

https://mm.icann.org/pipermail/tz-announce/2023-December/000080.html
2024-09-28 15:56:36 -04:00
Krzysiek Karbowiak
939031c38c Fix typo 2024-09-28 15:38:46 -04:00
Howard Hinnant
51ce7e1310 A couple more fixes for parsing compliance
* Fixes: #839
2024-09-13 20:31:29 -04:00
Howard Hinnant
155c6b9e76 Bring text parsing into compliance with the tzdata spec
* Fixes #836
2024-09-12 15:53:39 +01:00
Nikolay Baklicharov
1ead6715de Allow option override by FetchContent 2024-05-14 09:51:08 -04:00
Nicolas Dusart
f986299fbb support Android for current_zone() 2024-05-13 20:16:17 -04:00
Howard Hinnant
706b1286e8 One more fix for issue #826 2024-05-10 16:44:22 -04:00
Martin Zink
8a93211679 #826 Build fix for ambiguity with >= libc++ 17 2024-05-10 16:26:43 -04:00
Howard Hinnant
6b1c1b8b3a Clean up restore_recursion_depth code. 2024-05-10 16:21:36 -04:00
Howard Hinnant
8f8336f42b Add support for links to links 2024-04-19 14:58:58 -04:00
Howard Hinnant
cd3c57932f Eliminate dead code.
* fixes #822
2024-04-15 10:03:38 -04:00
Howard Hinnant
575fc23c3c Restrict mention of -Wstringop-overflow to gcc >= 11 2024-04-15 10:00:21 -04:00
Miles Sherman
0e65940a7f workaround for gcc bug 106757
see: https://github.com/HowardHinnant/date/issues/750
2024-03-16 17:40:55 -04:00
Howard Hinnant
88a3b15126 Remove std::is_literal_type from tests.
* It was deprecated in C++17 and removed in C++20
2023-12-19 10:16:52 -05:00
Howard Hinnant
5d225951ff Count sign as part of the character count : part 2
* Fix up some damage caused by previous commit.
2023-12-19 10:12:30 -05:00
Howard Hinnant
ab37c362e3 Count sign as part of the character count. 2023-12-11 21:33:25 -05:00
Howard Hinnant
0ef86f1ced Set not_a_century to something outside the domain of centuries for a year. 2023-12-11 21:32:25 -05:00
DavisVaughan
cc4685a21e Expose iso_week::year::is_leap() 2023-04-21 14:48:49 -04:00
Tim Tavlintsev
50acf3ffd8 Fix compilation when MISSING_LEAP_SECONDS is set to true 2023-03-04 15:42:06 -05:00
Howard Hinnant
15e0c84e42 Have Posix::time_zone::name() put <> around non-alpha abbreviations 2023-02-12 19:56:54 -05:00
Howard Hinnant
28972d72b4 Guard against Posix::time_zone having transition near ...
beginning or end of year.
2023-02-12 19:56:54 -05:00
Howard Hinnant
5f8c904231 Enable a permanent daylight saving rule for Posix::time_zone
* See comments in ptz.h for directions and examples.
2023-02-12 19:56:54 -05:00
Jonathan Wakely
c9169ea310 Fix comment typo in tz.h 2022-12-13 09:10:28 -05:00
Howard Hinnant
22ceabf205 Fix tzdb parsing to handle new offset comments in 2022b 2022-08-12 10:30:35 -04:00
Howard Hinnant
c82b776f28 Tweak sys_time streaming operator to work better year and
month precision time_points.
2022-08-12 10:29:10 -04:00
Howard Hinnant
2c035f8def Fix abs(duration) to work with non-normalized ratios 2022-08-12 10:28:12 -04:00
Howard Hinnant
e6f4aed4d1 Supply missing 'inline' 2022-04-24 22:27:54 -04:00
DavisVaughan
9ea5654c12 Sync get_info_impl() signatures 2022-02-16 20:23:27 -05:00
DavisVaughan
9d9161c978 Sync set_install() signatures 2022-02-16 20:23:27 -05:00
Howard Hinnant
3776e0f185 Update Posix::time_zone comment with CTAD simplification 2022-01-26 19:44:06 -05:00
Howard Hinnant
9e830536a0 Add range checking for numerical values in Posix::time_zone 2022-01-26 19:40:32 -05:00
Andrea Pappacoda
655b249b8f test: use -pthread when $CXX is g++
Fixes https://github.com/HowardHinnant/date/issues/713
2021-11-02 18:55:01 -04:00
DavisVaughan
529a09267f Allow set_install() on Windows to use a file path containing Unicode
Anywhere we utilize that install file path, we carefully convert it to UTF-16 and utilize wide character helpers for file manipulation
2021-11-02 18:51:18 -04:00
Howard Hinnant
d9049ee697 Fix current_zone for SLES
* Fixes #708
* Patch submitted by JaroslawMelzer
2021-10-15 09:03:33 -04:00
tylawin
2709deddd3 fix -Wshadow warnings 2021-09-12 01:29:13 -06:00
Andrea Pappacoda
2e19c006e2
cmake: update project version (#699) 2021-09-01 09:57:59 -04:00
Ans
28b5106d4c
Fix uninitialized values (#698) 2021-09-01 09:44:26 -04:00
Howard Hinnant
e1aa4837e0 Avoid signed integral overflow in to_stream
Fixes: #696
2021-08-31 17:43:44 -04:00
Howard Hinnant
1ff7208036
Update README.md 2021-08-31 12:40:28 -04:00
Nicolas
b0adc54677
static_cast to silent warning implict conversion (#693)
That happen because `sizeof(long long unsigned int) == sizeof(long double)` in 32-bit architectures.
2021-08-17 11:35:13 -04:00
Howard Hinnant
d57d764707 Round when parsing seconds instead of duration_cast. 2021-07-25 23:08:53 -04:00
Howard Hinnant
383214dea6 Remove string_view overloads of parse
* They were rejected by the LWG
2021-07-25 23:01:30 -04:00
Howard Hinnant
fb2554a7e0 Give gcc 4.8 a hand in constructing fields
Fixes #678
2021-06-02 18:23:54 -04:00
JulZimmermann
8c126525cc
call from_stream explicitly from date namespace (#677)
Co-authored-by: Julian Zimmermann <Julian.Zimmermann@gti.de>
2021-05-31 12:54:11 -04:00
Howard Hinnant
8f95c598c9 [Pedantic] Use named constants in place of literals 2021-05-27 21:20:36 -04:00
Aaron Franke
417402ad35
Remove trailing whitespace and add gitattributes (#672) 2021-05-24 08:22:43 -04:00
Howard Hinnant
38267fa1ef Template basic_string_view on Traits in parse overloads 2021-05-20 08:46:42 -04:00
Howard Hinnant
ebb5719cd7 Change default test mode to C++17 2021-05-19 14:43:19 -04:00
Howard Hinnant
2f4411312b Add extra parse_manip constructor to avoid ambiguity 2021-05-19 14:36:09 -04:00
Howard Hinnant
e23c15bb36 Add string_view overloads to parse functions 2021-05-19 14:13:33 -04:00
Howard Hinnant
052eebaf00 When comparing sys_info in test...
only compare whether the saves are equal to 0
and not their actual values.

This allows one to compare against the binary database
which does not contain actual values of save.
2021-05-18 16:17:37 -04:00
Howard Hinnant
b49a7575eb Zero initialize local_info in get_info
* Even when the result is unique, the second sys_info
  should be zero initialized.
2021-05-18 16:15:31 -04:00
Anthony Louis
6e921e1b1d Add tests for %I and %p format options v3.0.1 2021-04-16 21:26:33 -04:00
Anthony Louis
39b4edf279
Add flags in README to compile using cmake (#661) 2021-04-16 21:06:08 -04:00
Howard Hinnant
2ef74cb41a If %I is used without %p, mark the ambiguity with failbit 2021-04-16 15:15:45 -04:00
Howard Hinnant
ac6ca2a095 Add is_clock_v 2021-04-15 11:41:20 -04:00
Howard Hinnant
ae017078c9 Fix Posix::time_zone for southern hemisphere
* The get_info functions were not prepared for the case where the start
  and end times of a rule are chronologically reversed for a year.  I.e.
  the daylight saving start comes later in the year than the daylight
  saving end.  When save is positive, this happens in the southern
  hemisphere (e.g. "Australia/Sydney" -> "AEST-10AEDT,M10.1.0,M4.1.0/3").
  It also happens in the nothern hemisphere when the save is negative
  (e.g. "Europe/Dublin" -> "IST-1GMT0,M10.5.0,M3.5.0/1").

* Added tests for Posix::time_zone.
2021-04-09 11:08:12 -04:00
Howard Hinnant
156e0a786e Fix up namespace error in Posix::time_zone::to_sys 2021-04-07 20:33:01 -04:00
Howard Hinnant
9a9a42db74 Enable streaming output operator for floating-point-based time_points 2021-04-06 17:22:22 -04:00
Howard Hinnant
b5b765f928 Clean up calendrical streaming operators for invalid values 2021-03-31 16:15:53 -04:00
Howard Hinnant
77bd6b92a4 Rattle github.io's cage 2021-03-22 14:59:59 -04:00
Howard Hinnant
654b97091f Change default on C++17 to uncaught_exceptions
* By popular demand.
* If you need to undo this change, compile with
  -DHAS_UNCAUGHT_EXCEPTIONS=0.
2021-03-21 22:41:22 -04:00
Howard Hinnant
b899774303 Run curl_global_cleanup only once per application 2021-03-11 19:58:34 -05:00
Howard Hinnant
0e08b942c8 Correct the streaming output of year_month_day
* Invalid dates were printing out "invalid"
  too many times.
2021-03-11 19:50:14 -05:00
satishbhat-umd
811be52e1c
Add global cleanup to curl object destructor (#652)
Co-authored-by: Satish Bhat <sbhat@belvederetrading.com>
2021-03-01 17:00:11 -05:00
Davis Vaughan
1c285d6545
Cast to unsigned char before calling toupper() (#648) 2021-02-24 12:49:46 -05:00
Howard Hinnant
bf79dd5a81
Update README.md 2021-01-11 20:05:18 -05:00
Howard Hinnant
26fc2bd372 Fix read_long_double with respect to decimal_point:
*  Respect locale settings when ONLY_C_LOCALE=0
*  Do not respect locale settings when ONLY_C_LOCALE=1
Fixes #637
2021-01-05 21:14:41 -05:00
Howard Hinnant
97246a638a Silence lossy conversion warning
Fixes #620
2020-11-10 08:41:30 -05:00
LarsGullik
432bab81f9
Skip "version" file and USE_OS_TZDB to return "unknown" if no version found (#616)
In commit commit 0b72599bd43f72d8935e507e25e4f0063f9bb34e there
was a change to read "version" in addition to "+VERSION", so that
file shold also be ignored when scanning/reading zonefiles.

Also before the above mentioed commit get_version() would return
"unknown" if not on __APPLE__ and the version file was not found.
Put back that behaviour, for all USE_OS_TZDB users.

This last change changes the behaviour for __APPLE__ from throwing
an exception to returning "unknown".

Co-authored-by: Lars Gullik Bjønnes <lbjonnes@cisco.com>
2020-10-27 10:08:30 -04:00
Howard Hinnant
215cacff56 Change all uses of round to detail::round_i
Fixes #613

detail::round_i is the same as round when the To::rep
is integral, and is just an implicit conversion when
To::rep is floating point.
2020-10-25 20:16:07 -04:00
theirix
3cbfa4318f
Put back handling DISABLE_STRING_VIEW (#609)
* Put back handling DISABLE_STRING_VIEW
* Add HAS_DEDUCTION_GUIDES to interface library target
2020-10-08 19:22:15 -04:00
Evgen Bodunov
115dd428cf
Proposed fix for issue #161
Header include should follow the same preprocessor rules as function definition.
2020-10-08 11:47:09 +03:00
Howard Hinnant
7848566815 Fix a parse error for Visual Studio 2020-10-02 12:53:16 -04:00
Howard Hinnant
393b52f21b
Update README.md 2020-09-19 10:15:51 -04:00
Howard Hinnant
0b72599bd4 For USE_OS_TZDB, look for version number in the files
version and +VERSION
2020-09-11 16:00:18 -04:00
Howard Hinnant
ba99134b8a For USE_OS_TZDB, look for leap seconds in the files
leapseconds and leap-seconds.list
2020-09-11 15:53:07 -04:00
Howard Hinnant
5e18488899 Fix subtle bug in fractional_width 2020-09-05 16:34:04 -04:00
Michael Ellery
313189b0a8
Correct lingering references to bare "tz" libname: (#600)
Fixes: #599
2020-08-25 16:57:00 -04:00
Andre Nguyen
057b441ceb Use LLONG_MAX instead of std::numeric_limits<long long>::max() when constexpr is absent 2020-08-21 17:09:51 -04:00
Andre Nguyen
d7a0bf1fa7 replace noexcept with NOEXCEPT macro 2020-08-21 17:09:51 -04:00
Andre Nguyen
8140d979cd fix brace value initialization for msvc 18 2020-08-21 17:09:51 -04:00
Andre Nguyen
7990eae740 fix user defined literals for compatibility with msvc 18 2020-08-21 17:09:47 -04:00
Howard Hinnant
1ec2ea0295 Add test/tz_test/tzdb_list.pass.cpp 2020-08-17 21:34:20 -04:00
Howard Hinnant
658a3b9495 Fix crasher for early local times and USE_OS_TZDB=1 2020-08-17 21:34:20 -04:00
dkhalanskyjb
e7969c32e8
Add Kotlin's datetime library to the list of projects using this (#593) 2020-08-14 09:53:14 -04:00
Howard Hinnant
569b2d6785 Improve error message while parsing posix timezone string 2020-08-02 10:56:37 -04:00
Howard Hinnant
abe3ada04f
Update README.md 2020-07-28 17:00:00 -04:00
Nico Schlömer
9537addfc4
fix ONLY_C_LOCALE export from cmake (#590)
* fix ONLY_C_LOCALE export from cmake

* add some comments

* remove all generator expressions for target output

* cmake: fewer variables, make it easier to read
2020-07-22 19:03:42 -04:00
Howard Hinnant
6952fb50a6 Correct the value for not_a_year 2020-07-08 14:20:31 -04:00
Howard Hinnant
fe2f9c7eac Change constexpr to CONSTDATA 2020-07-07 15:01:45 -04:00
Michael Ellery
a6243ce56f
set cmake proj ver to 3.0: (#584)
FIXES: #583
2020-06-22 11:48:09 -04:00
Howard Hinnant
a55f1a103b
Update README.md 2020-06-15 15:18:20 -04:00
Howard Hinnant
d544e5af25 Throw exception if zoned_time is constructed with nullptr 2020-06-14 19:30:23 -04:00
Howard Hinnant
cac99da8dc For traits in constexpr context use ::value
* Fixes #542
v3.0.0
2020-06-02 21:08:57 -04:00
Howard Hinnant
a088baf9a5
Update README.md 2020-05-26 11:47:28 -04:00