diff --git a/EXEC/SBBS.EXE b/EXEC/SBBS.EXE index a6caee08df66b72fea3fa4b79b9e9878ef5ba7c7..547c303aada1f98c9f05d89e4ec6543440e7a4a6 100644 Binary files a/EXEC/SBBS.EXE and b/EXEC/SBBS.EXE differ diff --git a/SRC/DEFS.H b/SRC/DEFS.H index 0966d9ce282b8942ced8dd5750329883801b9060..aab4311a3ba2cf17113ed14e2872268bf14db1d7 100644 --- a/SRC/DEFS.H +++ b/SRC/DEFS.H @@ -23,6 +23,8 @@ #define REVISION 6 /* Revision number */ #define BETA 0 /* Beta release? */ +#define Y2K_2DIGIT_WINDOW 70 +#define TM_YEAR(yy) ((yy)%100) #if !DEMO diff --git a/SRC/QWK.C b/SRC/QWK.C index 5e9f1ebdf9eda30942c898779eaccbc7902defe7..fec3f1f4d17965bb28acb38959966855849a4dca 100644 --- a/SRC/QWK.C +++ b/SRC/QWK.C @@ -242,7 +242,10 @@ if(length<2) return(0); date.da_mon=((qwkbuf[8]&0xf)*10)+(qwkbuf[9]&0xf); date.da_day=((qwkbuf[11]&0xf)*10)+(qwkbuf[12]&0xf); -date.da_year=((qwkbuf[14]&0xf)*10)+(qwkbuf[15]&0xf)+1900; +date.da_year=((qwkbuf[14]&0xf)*10)+(qwkbuf[15]&0xf); +if(date.da_year<Y2K_2DIGIT_WINDOW) + date.da_year+=100; +date.da_year+=1900; curtime.ti_hour=((qwkbuf[16]&0xf)*10)+(qwkbuf[17]&0xf); curtime.ti_min=((qwkbuf[19]&0xf)*10)+(qwkbuf[20]&0xf); curtime.ti_sec=0; @@ -721,7 +724,7 @@ if(mail && !(sys_status&SS_ABORT)) { p=strchr(tmp,'@'); /* remove the system id */ if(p!=NULL) *p=0; } sprintf(tmp2,"%02u-%02u-%02u%02u:%02u" - ,date.da_mon,date.da_day,date.da_year-1900 + ,date.da_mon,date.da_day,TM_YEAR(date.da_year-1900) ,curtime.ti_hour,curtime.ti_min); sprintf(str,"%c%-7d%-13.13s%-25.25s" "%-25.25s%-25.25s%12s%-8d%-6lu\xe1%c%c%c%c%c" @@ -832,7 +835,7 @@ for(i=0;i<usrgrps;i++) { if(p!=NULL) *p=0; } n=((i+1)*100)+j+1; /* ggss */ sprintf(tmp2,"%02u-%02u-%02u%02u:%02u" - ,date.da_mon,date.da_day,date.da_year-1900 + ,date.da_mon,date.da_day,TM_YEAR(date.da_year-1900) ,curtime.ti_hour,curtime.ti_min); if(msg[k]->mode&MSG_PRIVATE) { if(msg[k]->mode&MSG_READ) @@ -1073,7 +1076,7 @@ for(i=0;i<qhub[hubnum]->subs;i++) { n=qhub[hubnum]->conf[i]; unixtodos(msg[k]->time,&date,&curtime); sprintf(tmp2,"%02u-%02u-%02u%02u:%02u" - ,date.da_mon,date.da_day,date.da_year-1900 + ,date.da_mon,date.da_day,TM_YEAR(date.da_year-1900) ,curtime.ti_hour,curtime.ti_min); if(msg[k]->mode&MSG_PRIVATE) { @@ -1450,7 +1453,10 @@ for(l=128;l<size;l+=i*128) { strcpy(tmp,useron.alias); } date.da_mon=((block[8]&0xf)*10)+(block[9]&0xf); date.da_day=((block[11]&0xf)*10)+(block[12]&0xf); - date.da_year=((block[14]&0xf)*10)+(block[15]&0xf)+1900; + date.da_year=((block[14]&0xf)*10)+(block[15]&0xf); + if(date.da_year<Y2K_2DIGIT_WINDOW) + date.da_year+=100; + date.da_year+=1900; curtime.ti_hour=((block[16]&0xf)*10)+(block[17]&0xf); curtime.ti_min=((block[19]&0xf)*10)+(block[20]&0xf); curtime.ti_sec=0; @@ -1616,7 +1622,10 @@ for(l=128;l<size;l+=i*128) { date.da_mon=((block[8]&0xf)*10)+(block[9]&0xf); date.da_day=((block[11]&0xf)*10)+(block[12]&0xf); - date.da_year=((block[14]&0xf)*10)+(block[15]&0xf)+1900; + date.da_year=((block[14]&0xf)*10)+(block[15]&0xf); + if(date.da_year<Y2K_2DIGIT_WINDOW) + date.da_year+=100; + date.da_year+=1900; curtime.ti_hour=((block[16]&0xf)*10)+(block[17]&0xf); curtime.ti_min=((block[19]&0xf)*10)+(block[20]&0xf); curtime.ti_sec=0;