From 6c54f7b3655737406c53fa1e4fc1d8f4cc22f9f9 Mon Sep 17 00:00:00 2001 From: "Bernhard M. Wiedemann" Date: Fri, 27 Jan 2017 14:12:58 +0100 Subject: string: Teach TIMESTAMP to treat %% as % This encoding is documented by `strptime`. --- Help/command/string.rst | 1 + Help/release/dev/timestamp-percent.rst | 5 +++++ Source/cmTimestamp.cxx | 1 + Tests/RunCMake/string/Timestamp-stderr.txt | 2 +- Tests/RunCMake/string/Timestamp.cmake | 2 +- 5 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 Help/release/dev/timestamp-percent.rst diff --git a/Help/command/string.rst b/Help/command/string.rst index 2c7847a..698a91d 100644 --- a/Help/command/string.rst +++ b/Help/command/string.rst @@ -296,6 +296,7 @@ specifiers: :: + %% A literal percent sign (%). %d The day of the current month (01-31). %H The hour on a 24-hour clock (00-23). %I The hour on a 12-hour clock (01-12). diff --git a/Help/release/dev/timestamp-percent.rst b/Help/release/dev/timestamp-percent.rst new file mode 100644 index 0000000..046d6c5 --- /dev/null +++ b/Help/release/dev/timestamp-percent.rst @@ -0,0 +1,5 @@ +timestamp-percent +----------------- + +* The :command:`string(TIMESTAMP)` command learned to treat ``%%`` + as a way to encode plain ``%``. diff --git a/Source/cmTimestamp.cxx b/Source/cmTimestamp.cxx index 1e5ac5b..3d42e26 100644 --- a/Source/cmTimestamp.cxx +++ b/Source/cmTimestamp.cxx @@ -136,6 +136,7 @@ std::string cmTimestamp::AddTimestampComponent(char flag, case 'w': case 'y': case 'Y': + case '%': break; case 's': // Seconds since UNIX epoch (midnight 1-jan-1970) { diff --git a/Tests/RunCMake/string/Timestamp-stderr.txt b/Tests/RunCMake/string/Timestamp-stderr.txt index c12b070..653974c 100644 --- a/Tests/RunCMake/string/Timestamp-stderr.txt +++ b/Tests/RunCMake/string/Timestamp-stderr.txt @@ -1 +1 @@ -RESULT=2005-08-07 23:19:49 Sun Aug 05 day=219 wd=0 week=32 %%I=11 +RESULT=2005-08-07 23:19:49 Sun Aug 05 day=219 wd=0 week=32 %I=11 epoch=1123456789 diff --git a/Tests/RunCMake/string/Timestamp.cmake b/Tests/RunCMake/string/Timestamp.cmake index 1232300..d242039 100644 --- a/Tests/RunCMake/string/Timestamp.cmake +++ b/Tests/RunCMake/string/Timestamp.cmake @@ -1,3 +1,3 @@ set(ENV{SOURCE_DATE_EPOCH} "1123456789") -string(TIMESTAMP RESULT "%Y-%m-%d %H:%M:%S %a %b %y day=%j wd=%w week=%U %%I=%I" UTC) +string(TIMESTAMP RESULT "%Y-%m-%d %H:%M:%S %a %b %y day=%j wd=%w week=%U %%I=%I epoch=%s" UTC) message("RESULT=${RESULT}") -- cgit v0.12