Commit Graph

780 Commits

Author SHA1 Message Date
Howard Hinnant 9d0bcdb63f Fix deduction error in parse where only offset is requested 2018-04-18 21:56:11 -04:00
Howard Hinnant 973bd393bc Respect and minimize tie/flush in from/to_stream
* Save/restore tie, setting it to nullptr during the operation
* On construction tie_->flush()
* For ostreams only, flush if unitbuf
2018-04-18 21:47:15 -04:00
Howard Hinnant d53db7a1cb And yet more fixes to allow duplicate flags on parse 2018-04-15 15:32:24 -04:00
Howard Hinnant e5c69d84ab Fix constexpr issue for VS2015 2018-04-09 11:01:58 -04:00
Howard Hinnant b48a18a1d9 More fixes to allow duplicate parsing 2018-04-08 15:49:06 -04:00
Howard Hinnant cdb4b276d9 Allow duplicate parsing into the same fields
* as long as all duplicates produce consistent results.
2018-04-07 21:42:00 -04:00
Howard Hinnant 1d9e49ea21 to_stream sets failbit if unable to format
*  If a formatting flag requests data that is not available in
   the Streamable object, or if the Streamable object answers !ok(),
   failbit is set.
2018-04-06 11:19:44 -04:00
Howard Hinnant 0125d330ab Correct to_stream/from_stream handling of stream data
* to_stream and from_stream now reset the stream formatting state to
  default settings on entry, and restore the stream state on exit.

* to_stream and from_stream now correctly handle mis-modified flags.

* Fix %h to be equivalent to %b instead of %B.

* This addresses issues 319, 320 and 321.
2018-03-31 13:06:57 -04:00
Harry Mallon e7e1482087 Remove BUILD_TZ_STATIC and replace with BUILD_SHARED_LIBS
* This is more standard CMake
* See https://cmake.org/cmake/help/v3.1/command/add_library.html
v2.4.1
2018-03-19 18:04:34 +00:00
Harry Mallon d6b95dc301 Remove TZ_CXX_STANDARD and instead use CMAKE_CXX_STANDARD
* See https://cmake.org/cmake/help/v3.1/variable/CMAKE_CXX_STANDARD.html?highlight=cmake_cxx_standard
2018-03-19 17:59:36 +00:00
Howard Hinnant 700489e475 Introduced full weekday and month names
* The standardized version of this library has std::chrono::January
  and std::chrono::Sunday in place of std::chrono_literals::jan and
  std::chrono_literals::sun.  Compatible names added to namespace
  date to ease transition from this lib to std::chrono.  The old
  names are retained for backwards compatibility.
2018-03-18 18:27:04 -04:00
Harry Mallon e6941697eb Validate TZdata failed with OS TZdata 2018-03-18 18:17:27 -04:00
Harry Mallon c311db2f1a Clean up tz_test README 2018-03-18 18:14:40 -04:00
Harry Mallon fffa52ac0e Cleanup and add to README.md 2018-03-18 18:14:40 -04:00
Eugene Shalygin f105595f04 Use proper lib directory when installing on UNIX
Linux distributions use lib, lib32, and lib64 directories for library files,
symlinking them where needed. Let's follow distirbution rules by
utilising CMake module GNUInstallDirs.
2018-03-18 17:55:08 -04:00
Howard Hinnant 20f0595b32 Update standardization progress 2018-03-17 10:57:45 -04:00
Howard Hinnant 674a9e6953 Update README.md 2018-03-16 15:42:13 -04:00
Howard Hinnant bc8cf368e5 Update readme link to d0355r6 2018-03-14 22:50:18 -04:00
Howard Hinnant 1e8ab50f82 Test modifications for standardization 2018-03-14 22:49:04 -04:00
Marsh Ray 38c5ca38bb Typo fixes in comment text 2018-03-04 18:26:07 -05:00
Howard Hinnant 0bde4ba8c8 Make the parsing of minutes optional under the flag %z 2018-03-03 11:57:03 -05:00
Don Smyth afe61df277 Fix case of generated dateConfig so it will work on a case sensitive filesystem 2018-03-02 16:37:32 -05:00
Howard Hinnant 43d8a4eab0 Range check minutes under parse 2018-03-02 09:03:41 -05:00
mwu ca4036a4b0 Explicitly qualify std::string. Having a global scope string type shall not break the compilation anymore. 2018-02-23 21:17:26 -05:00
Alexander Karatarakis a1ceec19fe Workaround for MSVC 2018-02-20 11:51:28 -05:00
Howard Hinnant 5524dd1ae8 Update README.md 2018-02-15 18:49:37 -05:00
Howard Hinnant 4ada98d247 Enable testing in CMakeLists.txt
* Per instructions by @SlavSlavov in https://github.com/HowardHinnant/date/pull/278
2018-01-29 08:39:58 -05:00
Howard Hinnant 040eed838b Augment path to ios.h 2018-01-26 19:53:51 -05:00
Benno Evers 2acf403bcd Dont include ios.h unconditionally.
The include in tz.cpp was changed to only include the ios.h header
when compiling on apple platforms, as the documentation states that
only the four files date.h, tz.h, tz_private.h, and tz.cpp should be
required to use the time zone library.

Additionally, the ios.mm file was moved to src/ since it contains
C++ source code.
2018-01-24 20:24:10 -05:00
Tommy Nguyen 637e5d8007 Use target_compile_definitions
It's generally preferred to use [`target_compile_definitions`](https://floooh.github.io/2016/01/12/cmake-dependency-juggling.html) over `add_definitions`.
2018-01-21 12:33:42 -05:00
Tommy Nguyen 362cd8f27e Account for WIN32 2018-01-21 12:29:13 -05:00
Tommy Nguyen a4ce4bc2d3 Use correct target
Also, fix the formatting in the generator expressions. For some reason, the previous
formatting caused this error:

  Target "date_interface" INTERFACE_INCLUDE_DIRECTORIES property contains
  path:

  ...

  which is prefixed in the source directory.
2018-01-21 12:29:13 -05:00
Tommy Nguyen 3e5a57467a Export a CMake config file
This will allow users to import the project via CMake methods, i.e `find_package` rather than doing it manually.
2018-01-21 12:29:13 -05:00
Howard Hinnant 3b8372f4fa Avoid use of undeclared to_utc_time.
* Fixes https://github.com/HowardHinnant/date/issues/289
2018-01-18 15:55:58 -05:00
Xuesong Hu 6941691de4 implement current_zone() for iOS using native API from iOSUtils 2018-01-12 14:59:01 -05:00
Michael Maroszek 09b78ba92c bump msvc define to fix compile issue on MSVC 15.6 2018-01-12 10:51:05 -05:00
Howard Hinnant 28c1c61ac2 Advertise that this works in C++17 2018-01-08 09:54:42 -05:00
Howard Hinnant 55289f0d73 Make tz_dir a function-local static
* This solves initialization order issues detailed
  in https://github.com/HowardHinnant/date/issues/275
2018-01-05 19:26:44 -05:00
Darrell Wright b7e58e193f Set standard or default to C++17
Changed cmake to default to c++17 unless TZ_CXX_STANDARD is set(e.g. to 11,14 or 17)
2018-01-05 18:45:29 -05:00
Scott Beil 2b6ee6378c minutes fix 2018-01-05 18:42:48 -05:00
Darrell Wright 7d80d89a44 Allow specifying cxx standard to target
Not everyone can use C++17 even with compilers that support it
2017-12-31 16:42:29 -05:00
ajneu d9052cffa2 rename and mark-as-advanced the following cmake-variable used in function print_option:
CURR_${OPT} -> PRINT_OPTION_CURR_${OPT}
so that the date-project now has the following advanced cmake-variables:
 PRINT_OPTION_CURR_BUILD_TZ_STATIC
 PRINT_OPTION_CURR_USE_SYSTEM_TZ_DB
 PRINT_OPTION_CURR_USE_TZ_DB_IN_DOT
v2.4
2017-12-26 21:00:29 +01:00
ajneu 447687870f - Interface library name changed from date to date_interface
- Print state of set options
- cleanup on duplicate ${CMAKE_THREAD_LIBS_INIT}
2017-12-26 13:39:55 -05:00
ajneu dbd6e6e388 cmake: remove include_directories() command that is missing directory 2017-12-26 13:35:25 -05:00
ajneu 9178193ad2 cmake: date as INTERFACE target, to enable automatic include_directory
(for cases where just date.h, but not "tz.h and its lib" are needed)
2017-12-26 13:35:25 -05:00
Roey Darwish Dror 44c2515280 Use the highest possible C++ standard (#18) 2017-12-26 11:12:11 +02:00
Joshua Jackson 0af7654764 Fix iOS build 2017-12-11 05:45:27 -06:00
Howard Hinnant 1eeb4cd652 Prepare for the new definition of IST
* Irish Standard Time has a -1h save in the winter instead
  of a +1h save in the summer.
2017-12-08 13:08:40 -05:00
Howard Hinnant b49bdc3ca7 Add missing include <memory> for unique_ptr 2017-12-06 10:12:49 -05:00
Howard Hinnant c7e5a4d08e Add posix-style time zone example: ptz.h 2017-12-03 14:40:01 -05:00