From deb5a71b2ad3b08eab54d4296d3b66002b0f5de8 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Wed, 25 Mar 2020 00:38:05 +0000 Subject: [PATCH] Add missing environment variables in *nix builds when spawning native programs: YEAR, MONTH, MONTHNAME, WEEKDAY, DAY --- src/sbbs3/xtrn.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/sbbs3/xtrn.cpp b/src/sbbs3/xtrn.cpp index a090fa7e97..716ed739ca 100644 --- a/src/sbbs3/xtrn.cpp +++ b/src/sbbs3/xtrn.cpp @@ -1119,8 +1119,22 @@ int sbbs_t::external(const char* cmdline, long mode, const char* startup_dir) setenv("SBBSDATA",cfg.data_dir,1); setenv("SBBSEXEC",cfg.exec_dir,1); sprintf(str,"%u",cfg.node_num); - if(setenv("SBBSNNUM",str,1)) - errormsg(WHERE,ERR_WRITE,"environment",0); + setenv("SBBSNNUM",str,1); + + /* date/time env vars */ + now = time(NULL); + struct tm tm; + if(localtime_r(&now, &tm) == NULL) + memset(&tm, 0, sizeof(tm)); + sprintf(str," %02u", tm.tm_mday); + setenv("DAY", str, /* overwrite */TRUE); + setenv("WEEKDAY", wday[tm.tm_wday], /* overwrite */TRUE); + setenv("MONTHNAME", mon[tm.tm_mon], /* overwrite */TRUE); + sprintf(str, "%02u", tm.tm_mon + 1); + setenv("MONTH", str, /* overwrite */TRUE); + sprintf(str,"%u", 1900 + tm.tm_year); + if(setenv("YEAR", str, /* overwrite */TRUE) != 0) + errormsg(WHERE,ERR_WRITE,"environment",0); } else { if(startup->options&BBS_OPT_NO_DOS) { -- GitLab