From 97adde25f8497538e2b604dbb10f7672fffb9020 Mon Sep 17 00:00:00 2001 From: "Rob Swindell (on Windows 11)" <rob@synchro.net> Date: Fri, 12 Jan 2024 22:30:56 -0800 Subject: [PATCH] Allow @-codes in text.dat strings: NodeLoggedOnAtNbps and NodeLoggedOff Note: format specifiers (e.g. %s) cannot be combined with @-codes (use one or the other, not both). Fixes issue #696 If you need additional text strings to support @-codes, you'll have to specify them explicitly in feature request issues. --- src/sbbs3/logon.cpp | 13 +++++++++---- src/sbbs3/logout.cpp | 12 +++++++++--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/sbbs3/logon.cpp b/src/sbbs3/logon.cpp index 3c944fff48..c6f7c18407 100644 --- a/src/sbbs3/logon.cpp +++ b/src/sbbs3/logon.cpp @@ -554,10 +554,15 @@ bool sbbs_t::logon() if(thisnode.status!=NODE_QUIET && (node.status==NODE_INUSE || node.status==NODE_QUIET) && !(node.misc&NODE_AOFF) && node.useron!=useron.number) { - safe_snprintf(str, sizeof(str), text[NodeLoggedOnAtNbps] - ,cfg.node_num - ,thisnode.misc&NODE_ANON ? text[UNKNOWN_USER] : useron.alias - ,connection); + char fmt[256]; + expand_atcodes(text[NodeLoggedOnAtNbps], fmt, sizeof fmt); + if(strcmp(text[NodeLoggedOnAtNbps], fmt) != 0) + SAFECOPY(str, fmt); + else + safe_snprintf(str, sizeof str, fmt + ,cfg.node_num + ,thisnode.misc&NODE_ANON ? text[UNKNOWN_USER] : useron.alias + ,connection); putnmsg(i, str); } } diff --git a/src/sbbs3/logout.cpp b/src/sbbs3/logout.cpp index c3de6296bf..d7cf3c56f7 100644 --- a/src/sbbs3/logout.cpp +++ b/src/sbbs3/logout.cpp @@ -66,9 +66,15 @@ void sbbs_t::logout() getnodedat(i,&node,0); if((node.status==NODE_INUSE || node.status==NODE_QUIET) && !(node.misc&NODE_AOFF) && node.useron!=useron.number) { - SAFEPRINTF2(str,text[NodeLoggedOff],cfg.node_num - ,thisnode.misc&NODE_ANON - ? text[UNKNOWN_USER] : useron.alias); + char fmt[256]; + expand_atcodes(text[NodeLoggedOff], fmt, sizeof fmt); + if(strcmp(text[NodeLoggedOff], fmt) != 0) + SAFECOPY(str, fmt); + else + snprintf(str, sizeof str, fmt + ,cfg.node_num + ,thisnode.misc&NODE_ANON + ? text[UNKNOWN_USER] : useron.alias); putnmsg(i, str); } } -- GitLab