project_files/hwc/rtl/sysutils.c
changeset 14913 68e1783762bc
parent 10564 0cb20aa8877a
child 15877 6cb7330113d8
--- a/project_files/hwc/rtl/sysutils.c	Sat May 11 04:58:11 2019 +0200
+++ b/project_files/hwc/rtl/sysutils.c	Sat May 11 20:31:51 2019 +0200
@@ -80,13 +80,24 @@
     return fpcrtl_date() + fpcrtl_time();
 }
 
-/*
- * XXX: dummy
- */
+// Semi-dummy implementation of FormatDateTime
 string255 fpcrtl_formatDateTime(string255 FormatStr, TDateTime DateTime)
 {
-    string255 result = STRINIT("2012 01-01");
-    return result;
+    string255 buffer = STRINIT(FormatStr.str);
+    time_t rawtime;
+    struct tm* my_tm;
+
+    // DateTime is ignored, always uses current time.
+    // TODO: Use DateTime argument properly.
+    time(&rawtime);
+    my_tm = localtime(&rawtime);
+
+    // Currently uses a hardcoded format string, FormatStr is ignored.
+    // The format strings for C and Pascal differ!
+    // TODO: Use FormatStr argument properly.
+    size_t len = strftime(buffer.str, sizeof(buffer.str), "%Y-%m-%d-%H-%M-%S-0", my_tm);
+    buffer.len = len;
+    return buffer;
 }
 
 string255 fpcrtl_trim(string255 s)