diff --git a/src/sbbs3/atcodes.cpp b/src/sbbs3/atcodes.cpp index dc954760d548263b7c4b7b400fcd2135c1419619..fee8372516062fb133f3f0c142805ba3a24c1fa6 100644 --- a/src/sbbs3/atcodes.cpp +++ b/src/sbbs3/atcodes.cpp @@ -147,9 +147,10 @@ const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen) if(!strcmp(sp,"UPTIME")) { extern volatile time_t uptime; - time_t up=time(NULL)-uptime; - if(up<0) - up=0; + time_t up=0; + now = time(NULL); + if (uptime != 0 && now >= uptime) + up = now-uptime; char days[64]=""; if((up/(24*60*60))>=2) { sprintf(days,"%lu days ",(ulong)(up/(24L*60L*60L)));