diff --git a/src/sbbs3/atcodes.cpp b/src/sbbs3/atcodes.cpp index cecbfe452e4e6b9dd6f4044486fa5e3e6cbc6b23..e4314e6c2139c3c5414bcee523a4654bb96141c1 100644 --- a/src/sbbs3/atcodes.cpp +++ b/src/sbbs3/atcodes.cpp @@ -8,7 +8,7 @@ * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * * - * Copyright 2014 Rob Swindell - http://www.synchro.net/copyright.html * + * Copyright Rob Swindell - http://www.synchro.net/copyright.html * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * @@ -55,6 +55,7 @@ int sbbs_t::show_atcode(const char *instr) int disp_len; bool padded_left=false; bool padded_right=false; + bool centered=false; const char *cp; SAFECOPY(str,instr); @@ -73,6 +74,8 @@ int sbbs_t::show_atcode(const char *instr) padded_left=true; else if((p=strstr(sp,"-R"))!=NULL) padded_right=true; + else if((p=strstr(sp,"-C"))!=NULL) + centered=true; if(p!=NULL) { if(*(p+2) && isdigit(*(p+2))) disp_len=atoi(p+2); @@ -87,7 +90,14 @@ int sbbs_t::show_atcode(const char *instr) bprintf("%-*.*s",disp_len,disp_len,cp); else if(padded_right) bprintf("%*.*s",disp_len,disp_len,cp); - else + else if(centered) { + size_t vlen = strlen(cp); + if(vlen < disp_len) { + int left = (disp_len - vlen) / 2; + bprintf("%*s%-*s", left, "", disp_len - left, cp); + } else + bputs(cp); + } else bputs(cp); return(len); @@ -969,6 +979,9 @@ const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen) return(current_msg->subj==NULL ? nulstr : current_msg->subj); if(!strcmp(sp,"MSG_DATE") && current_msg!=NULL) return(timestr(current_msg->hdr.when_written.time)); + if(!strcmp(sp,"MSG_AGE") && current_msg!=NULL) + return age_of_posted_item(str, maxlen + , current_msg->hdr.when_written.time - (smb_tzutc(current_msg->hdr.when_written.zone) * 60)); if(!strcmp(sp,"MSG_TIMEZONE") && current_msg!=NULL) return(smb_zonestr(current_msg->hdr.when_written.zone,NULL)); if(!strcmp(sp,"MSG_ATTR") && current_msg!=NULL) { @@ -1033,6 +1046,8 @@ const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen) safe_snprintf(str,maxlen,"%s %s" ,cfg.grp[cfg.sub[smb.subnum]->grp]->sname ,cfg.sub[smb.subnum]->sname); + else + strncpy(str, "Email", maxlen); return(str); } if(!strcmp(sp,"SMB_AREA_DESC")) { @@ -1040,6 +1055,8 @@ const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen) safe_snprintf(str,maxlen,"%s %s" ,cfg.grp[cfg.sub[smb.subnum]->grp]->lname ,cfg.sub[smb.subnum]->lname); + else + strncpy(str, "Personal Email", maxlen); return(str); } if(!strcmp(sp,"SMB_GROUP")) {