From 0ce5ed8527c75f549ae1e6e4c1e4b645161f8aa1 Mon Sep 17 00:00:00 2001 From: "Rob Swindell (on Windows)" <rob@synchro.net> Date: Wed, 13 Sep 2023 18:55:47 -0700 Subject: [PATCH] Add new @-code: PROTNAME for full name of default transfer protocol (or None) --- src/sbbs3/atcodes.cpp | 3 +++ src/sbbs3/sbbs.h | 1 + src/sbbs3/str.cpp | 9 +++++++++ src/sbbs3/useredit.cpp | 9 +-------- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/sbbs3/atcodes.cpp b/src/sbbs3/atcodes.cpp index 0a0e8d5aeb..5f2f9ef9c3 100644 --- a/src/sbbs3/atcodes.cpp +++ b/src/sbbs3/atcodes.cpp @@ -655,6 +655,9 @@ const char* sbbs_t::atcode(char* sp, char* str, size_t maxlen, int* pmode, bool safe_snprintf(str, maxlen, "%c", useron.prot); return str; } + if(strcmp(sp, "PROTNAME") == 0) + return protname(useron.prot); + if(strcmp(sp, "SEX") == 0) { safe_snprintf(str, maxlen, "%c", useron.sex); return str; diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index 6acfc4081b..41c053cc3b 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -748,6 +748,7 @@ public: char cmdstr_output[512]{}; char* ultoac(uint32_t, char*, char sep=','); char* u64toac(uint64_t, char*, char sep=','); + const char* protname(char prot); void subinfo(int subnum); void dirinfo(int dirnum); diff --git a/src/sbbs3/str.cpp b/src/sbbs3/str.cpp index a3b286d47d..ac08911d6a 100644 --- a/src/sbbs3/str.cpp +++ b/src/sbbs3/str.cpp @@ -1303,3 +1303,12 @@ char* sbbs_t::u64toac(uint64_t val, char* str, char sep) { return ::u64toac(val, str, sep); } + +const char* sbbs_t::protname(char prot) +{ + for(int i=0; i < cfg.total_prots; ++i) { + if(prot == cfg.prot[i]->mnemonic) + return cfg.prot[i]->name; + } + return text[None]; +} diff --git a/src/sbbs3/useredit.cpp b/src/sbbs3/useredit.cpp index 709bd16796..da042207b9 100644 --- a/src/sbbs3/useredit.cpp +++ b/src/sbbs3/useredit.cpp @@ -788,15 +788,8 @@ void sbbs_t::maindflts(user_t* user) bprintf(text[UserDefaultsQuiet] ,user->misc&QUIET ? text[On] : text[Off]); } - SAFECOPY(str, text[None]); - for(i=0;i<cfg.total_prots;i++) { - if(user->prot==cfg.prot[i]->mnemonic) { - SAFECOPY(str,cfg.prot[i]->name); - break; - } - } add_hotspot('Z'); - bprintf(text[UserDefaultsProtocol],str + bprintf(text[UserDefaultsProtocol], protname(user->prot) ,user->misc&AUTOHANG ? "(Auto-Hangup)":nulstr); add_hotspot('W'); if(cfg.sys_misc&SM_PWEDIT && !(user->rest&FLAG('G'))) -- GitLab