From a91b8272372d8ee7f2b4c7443d2e92f765f69d72 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Tue, 28 Jun 2005 08:45:36 +0000
Subject: [PATCH] parseDateTime() now supports ISO-8601 standard date/time
 format: "CCYYMMDDTHHMMSS".

---
 src/xpdev/ini_file.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/xpdev/ini_file.c b/src/xpdev/ini_file.c
index 8d90d52822..6bd03b9d58 100644
--- a/src/xpdev/ini_file.c
+++ b/src/xpdev/ini_file.c
@@ -42,6 +42,7 @@
 #if !defined(NO_SOCKET_SUPPORT)
 	#include "sockwrap.h"	/* inet_addr */
 #endif
+#include "datewrap.h"	/* isoDateTime_t */
 #include "dirwrap.h"	/* fexist */
 #include "filewrap.h"	/* chsize */
 #include "ini_file.h"
@@ -1203,6 +1204,7 @@ static time_t parseDateTime(const char* value)
 	time_t	t;
 	struct tm tm;
 	struct tm curr_tm;
+	isoDateTime_t iso;
 
 	ZERO_VAR(tm);
 	tstr[0]=0;
@@ -1214,6 +1216,11 @@ static time_t parseDateTime(const char* value)
 		tm.tm_year=curr_tm.tm_year;
 	}
 
+	/* CCYYMMDDTHHMMSS <--- ISO-8601 date and time format */
+	if(sscanf(value,"%uT%u"
+		,&iso.date,&iso.time)>=2)
+		return(isoDateTime_to_time(iso));
+
 	/* DD.MM.[CC]YY [time] [p] <-- Euro/Canadian numeric date format */
 	if(sscanf(value,"%u.%u.%u %s %c"
 		,&tm.tm_mday,&tm.tm_mon,&tm.tm_year,tstr,&pm)>=2
-- 
GitLab