From 961f1f58aaae29c57c0177673ae2b9ef4bdd6313 Mon Sep 17 00:00:00 2001 From: Rob Swindell <rob@synchro.net> Date: Tue, 5 Jul 2022 15:25:02 -0700 Subject: [PATCH] Support @-codes in text centered with the CENTER @-code Note: this centering logic does not know the expanded-size of the @-code, so use a fixed-length @-code (e.g. with padding) or use the 'C' @-code format modifier instead. Fix issue #418 --- src/sbbs3/con_out.cpp | 7 +++++-- src/sbbs3/putmsg.cpp | 2 +- src/sbbs3/sbbs.h | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/sbbs3/con_out.cpp b/src/sbbs3/con_out.cpp index 292dc00dbe..1045d22176 100644 --- a/src/sbbs3/con_out.cpp +++ b/src/sbbs3/con_out.cpp @@ -775,7 +775,7 @@ void sbbs_t::inc_row(int count) } } -void sbbs_t::center(const char *instr, unsigned int columns) +void sbbs_t::center(const char *instr, bool msg, unsigned int columns) { char str[256]; size_t len; @@ -789,7 +789,10 @@ void sbbs_t::center(const char *instr, unsigned int columns) carriage_return(); if(len < columns) cursor_right((columns - len) / 2); - bputs(str); + if(msg) + putmsg(str, P_NONE); + else + bputs(str); newline(); } diff --git a/src/sbbs3/putmsg.cpp b/src/sbbs3/putmsg.cpp index f834b9ca0f..f50be4a478 100644 --- a/src/sbbs3/putmsg.cpp +++ b/src/sbbs3/putmsg.cpp @@ -421,7 +421,7 @@ char sbbs_t::putmsgfrag(const char* buf, long& mode, long org_cols, JSObject* ob tmp2[i++] = str[l++]; tmp2[i] = 0; truncsp(tmp2); - center(tmp2); + center(tmp2, /* msg: */true); if(str[l] == '\r') l++; if(str[l] == '\n') diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index 642ae05219..35ca5461d1 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -825,7 +825,7 @@ public: int outchar(enum unicode_codepoint, const char* cp437_fallback = NULL); void inc_row(int count); void inc_column(int count); - void center(const char *str, unsigned int columns = 0); + void center(const char *str, bool msg = false, unsigned int columns = 0); void wide(const char*); void clearscreen(long term); void clearline(void); -- GitLab