summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-10-23 14:55:05 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-10-23 14:55:05 -0700
commitfbbdb0a37edf93b93bc030e9136bf24caf899c9f (patch)
tree72d6e0526b38d5e5c740337849c622eb5cf54717
parent5499e1c24c2bc7a347cbe9dc10c62bc0df06be76 (diff)
downloadtxr-fbbdb0a37edf93b93bc030e9136bf24caf899c9f.tar.gz
txr-fbbdb0a37edf93b93bc030e9136bf24caf899c9f.tar.bz2
txr-fbbdb0a37edf93b93bc030e9136bf24caf899c9f.zip
Default to epoch time in time-parse.
* lib.c (epoch_time): New static function. (time_parse): Default the struct tm to epoch. * txr.1: Documented.
-rw-r--r--lib.c10
-rw-r--r--txr.110
2 files changed, 19 insertions, 1 deletions
diff --git a/lib.c b/lib.c
index 8ffadc8c..5a65e6c7 100644
--- a/lib.c
+++ b/lib.c
@@ -9770,9 +9770,17 @@ val make_time(val year, val month, val day,
#if HAVE_STRPTIME
+static struct tm epoch_tm(void)
+{
+ struct tm ep = { 0 };
+ ep.tm_year = 70;
+ ep.tm_mday = 1;
+ return ep;
+}
+
val time_parse(val format, val string)
{
- struct tm tms = { 0 };
+ struct tm tms = epoch_tm();
const wchar_t *w_str = c_str(string);
const wchar_t *w_fmt = c_str(format);
char *str = utf8_dup_to(w_str);
diff --git a/txr.1 b/txr.1
index be63e62b..a6065766 100644
--- a/txr.1
+++ b/txr.1
@@ -38756,6 +38756,16 @@ argument follows the same conventions as the POSIX
C library function
.codn strptime .
+Prior to obtaining the time from
+.meta format
+and
+.meta string
+the returned structure is created and initialized
+with a time which represents time 0 ("the epoch")
+if interpreted in the UTC timezone as by the
+.meta time-utc
+method.
+
Note: the availability of
.code time-parse
depends on the availability of