From 206134e2b9344468abf592e32cc62ac77243cdaf Mon Sep 17 00:00:00 2001
From: "Rob Swindell (on Debian Linux)" <rob@synchro.net>
Date: Tue, 29 Oct 2024 20:19:11 -0700
Subject: [PATCH] Use new C++ wrapper for unixtodstr()

Fix new date editing bug in user editor: we must use the numeric format
for dates when creating strings to be edited.
---
 src/sbbs3/getnode.cpp  |  4 ++--
 src/sbbs3/qwk.cpp      |  2 +-
 src/sbbs3/useredit.cpp | 12 ++++++------
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/sbbs3/getnode.cpp b/src/sbbs3/getnode.cpp
index 3bf2e3bb08..0864752568 100644
--- a/src/sbbs3/getnode.cpp
+++ b/src/sbbs3/getnode.cpp
@@ -143,8 +143,8 @@ void sbbs_t::nodesync(bool clearline)
 
 		if(!(sys_status&SS_NEWDAY)) {
 			now=time(NULL);
-			unixtodstr(&cfg,(time32_t)logontime,str);
-			unixtodstr(&cfg,(time32_t)now,today);
+			unixtodstr(logontime,str);
+			unixtodstr(now,today);
 			if(strcmp(str,today)) { /* New day, clear "today" user vars */
 				sys_status|=SS_NEWDAY;	// So we don't keep doing this over&over
 				resetdailyuserdat(&cfg, &useron,/* write: */true);
diff --git a/src/sbbs3/qwk.cpp b/src/sbbs3/qwk.cpp
index 7185d304f2..12e8e8e1cd 100644
--- a/src/sbbs3/qwk.cpp
+++ b/src/sbbs3/qwk.cpp
@@ -187,7 +187,7 @@ void sbbs_t::update_qwkroute(char *via)
 			for(i=0;i<total_qwknodes;i++)
 				if(qwknode[i].time>t)
 					fprintf(stream,"%s %s:%s\r\n"
-						,unixtodstr(&cfg,(time32_t)qwknode[i].time,str),qwknode[i].id,qwknode[i].path);
+						,unixtodstr(qwknode[i].time,str),qwknode[i].id,qwknode[i].path);
 			fclose(stream);
 		}
 		else
diff --git a/src/sbbs3/useredit.cpp b/src/sbbs3/useredit.cpp
index fbd368b009..d302b7568b 100644
--- a/src/sbbs3/useredit.cpp
+++ b/src/sbbs3/useredit.cpp
@@ -73,8 +73,8 @@ void sbbs_t::useredit(int usernumber)
 				return; 
 			} 
 		}
-		unixtodstr(&cfg,time32(NULL),str);
-		unixtodstr(&cfg,user.laston,tmp);
+		unixtodstr(time(NULL),str);
+		unixtodstr(user.laston,tmp);
 		if(strcmp(str,tmp) && user.ltoday) {
 			user.ltoday=user.ttoday=user.ptoday=user.etoday=user.textra=0;
 			user.freecdt=cfg.level_freecdtperday[user.level];
@@ -341,28 +341,28 @@ void sbbs_t::useredit(int usernumber)
 				break;
 			case 'K':	/* date changes */
 				bputs(text[UeditLastOn]);
-				datestr(user.laston,str);
+				unixtodstr(user.laston,str);
 				gettmplt(str, date_template(&cfg, tmp, sizeof tmp),K_LINE|K_EDIT);
 				if(sys_status&SS_ABORT)
 					break;
 				user.laston=dstrtounix(&cfg,str);
 				putuserdatetime(user.number, USER_LASTON, user.laston);
 				bputs(text[UeditFirstOn]);
-				datestr(user.firston,str);
+				unixtodstr(user.firston,str);
 				gettmplt(str, date_template(&cfg, tmp, sizeof tmp),K_LINE|K_EDIT);
 				if(sys_status&SS_ABORT)
 					break;
 				user.firston=dstrtounix(&cfg,str);
 				putuserdatetime(user.number, USER_FIRSTON, user.firston);
 				bputs(text[UeditExpire]);
-				datestr(user.expire,str);
+				unixtodstr(user.expire,str);
 				gettmplt(str, date_template(&cfg, tmp, sizeof tmp),K_LINE|K_EDIT);
 				if(sys_status&SS_ABORT)
 					break;
 				user.expire=dstrtounix(&cfg,str);
 				putuserdatetime(user.number, USER_EXPIRE, user.expire);
 				bputs(text[UeditPwModDate]);
-				datestr(user.pwmod,str);
+				unixtodstr(user.pwmod,str);
 				gettmplt(str, date_template(&cfg, tmp, sizeof tmp),K_LINE|K_EDIT);
 				if(sys_status&SS_ABORT)
 					break;
-- 
GitLab