diff --git a/src/sbbs3/xtrn.cpp b/src/sbbs3/xtrn.cpp index a090fa7e971a7a44fd170e8522bfd7d579324a96..716ed739caabd7e56cb1254e00e8eef6b5ec2d4e 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) {