From 8175877ad64a631e9ce0f9a5b66782d58ea5f48d Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
Date: Sun, 10 Jan 2016 12:06:49 +0200
Subject: [PATCH] unix/modtime: strftime(): Support 2nd argument, but as time_t
 value.

Instead of struct tm like structure, as required by CPython.
---
 unix/modtime.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/unix/modtime.c b/unix/modtime.c
index b1b7a9079..32a4a6c71 100644
--- a/unix/modtime.c
+++ b/unix/modtime.c
@@ -155,8 +155,14 @@ STATIC mp_obj_t mod_time_sleep_us(mp_obj_t arg) {
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_time_sleep_us_obj, mod_time_sleep_us);
 
 STATIC mp_obj_t mod_time_strftime(mp_uint_t n_args, const mp_obj_t *args) {
-    assert(n_args == 1);
-    time_t t = time(NULL);
+    time_t t;
+    if (n_args == 1) {
+        t = time(NULL);
+    } else {
+        // CPython requires passing struct tm, but we allow to pass time_t
+        // (and don't support struct tm so far).
+        t = mp_obj_get_int(args[1]);
+    }
     struct tm *tm = localtime(&t);
     char buf[32];
     size_t sz = strftime(buf, sizeof(buf), mp_obj_str_get_str(args[0]), tm);
-- 
GitLab