Browse Source

Merge topic 'timestamp-percent'

6c54f7b3 string: Teach TIMESTAMP to treat %% as %
Brad King 8 years ago
parent
commit
5c6c766da1

+ 1 - 0
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).

+ 5 - 0
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 ``%``.

+ 1 - 0
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)
     {

+ 1 - 1
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

+ 1 - 1
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}")