summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard M. Wiedemann <bwiedemann@suse.de>2017-01-27 13:12:58 (GMT)
committerBrad King <brad.king@kitware.com>2017-01-27 14:25:37 (GMT)
commit6c54f7b3655737406c53fa1e4fc1d8f4cc22f9f9 (patch)
treef49afc910a51bc05b10a2b978b691ef5d5f73e85
parent325c6153088c673569971958f107f6cb97b67c50 (diff)
downloadCMake-6c54f7b3655737406c53fa1e4fc1d8f4cc22f9f9.zip
CMake-6c54f7b3655737406c53fa1e4fc1d8f4cc22f9f9.tar.gz
CMake-6c54f7b3655737406c53fa1e4fc1d8f4cc22f9f9.tar.bz2
string: Teach TIMESTAMP to treat %% as %
This encoding is documented by `strptime`.
-rw-r--r--Help/command/string.rst1
-rw-r--r--Help/release/dev/timestamp-percent.rst5
-rw-r--r--Source/cmTimestamp.cxx1
-rw-r--r--Tests/RunCMake/string/Timestamp-stderr.txt2
-rw-r--r--Tests/RunCMake/string/Timestamp.cmake2
5 files changed, 9 insertions, 2 deletions
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}")