string: Teach TIMESTAMP to treat %% as %

This encoding is documented by `strptime`.
This commit is contained in:
Bernhard M. Wiedemann
2017-01-27 14:12:58 +01:00
committed by Brad King
parent 325c615308
commit 6c54f7b365
5 changed files with 9 additions and 2 deletions

View File

@@ -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).

View File

@@ -0,0 +1,5 @@
timestamp-percent
-----------------
* The :command:`string(TIMESTAMP)` command learned to treat ``%%``
as a way to encode plain ``%``.

View File

@@ -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)
{

View File

@@ -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

View File

@@ -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}")