diff --git a/src/sbbs3/putmsg.cpp b/src/sbbs3/putmsg.cpp index 2016e08c1c1221c07c73cb66a63bc33a7c82c7d5..8ef4acaf0b009d0bd19ff6c3dbfe4895057983f5 100644 --- a/src/sbbs3/putmsg.cpp +++ b/src/sbbs3/putmsg.cpp @@ -78,7 +78,9 @@ char sbbs_t::putmsg(const char *buf, int mode, int org_cols, JSObject* obj) // Print a message fragment, doesn't save/restore any console states (e.g. attributes, auto-pause) char sbbs_t::putmsgfrag(const char* buf, int& mode, int org_cols, JSObject* obj) { - char tmp2[256], tmp3[128]; + char tmp[256]; + char tmp2[256]; + char path[MAX_PATH + 1]; char* str = (char*)buf; uchar exatr = 0; char mark = '\0'; @@ -207,8 +209,8 @@ char sbbs_t::putmsgfrag(const char* buf, int& mode, int org_cols, JSObject* obj) if (i > 0) { tmp2[i] = 0; sys_status |= SS_NEST_PF; /* keep it only one message deep! */ - SAFEPRINTF2(tmp3, "%s%s", cfg.text_dir, tmp2); - printfile(tmp3, 0); + SAFEPRINTF2(path, "%s%s", cfg.text_dir, tmp2); + printfile(path, 0); sys_status &= ~SS_NEST_PF; } } @@ -409,11 +411,11 @@ char sbbs_t::putmsgfrag(const char* buf, int& mode, int org_cols, JSObject* obj) if (memcmp(str + l, "@CENTER@", 8) == 0) { l += 8; i = 0; - while (i < (int)sizeof(tmp2) - 1 && str[l] != 0 && str[l] != '\r' && str[l] != '\n') - tmp2[i++] = str[l++]; - tmp2[i] = 0; - truncsp(tmp2); - center(tmp2, /* msg: */ true); + while (i < (int)sizeof(tmp) - 1 && str[l] != 0 && str[l] != '\r' && str[l] != '\n') + tmp[i++] = str[l++]; + tmp[i] = 0; + truncsp(tmp); + center(expand_atcodes(tmp, tmp2, sizeof tmp2)); if (str[l] == '\r') l++; if (str[l] == '\n')