diff --git a/src/sbbs3/str.cpp b/src/sbbs3/str.cpp index 83da1240610852e6bd75ac31a43e0c455281248e..def48719a060ec7d4e58ea250d8f0642d801a456 100644 --- a/src/sbbs3/str.cpp +++ b/src/sbbs3/str.cpp @@ -435,6 +435,7 @@ uint sbbs_t::gettmplt(char *strout,char *templt, long mode) sys_status&=~SS_ABORT; sprintf(tmplt, "%.*s",sizeof(tmplt)-1, templt); + strupr(tmplt); if(useron.misc&ANSI) { if(mode&K_LINE) { if(useron.misc&COLOR) @@ -467,11 +468,12 @@ uint sbbs_t::gettmplt(char *strout,char *templt, long mode) bputs(" \b"); continue; } if(ch==24) { /* Ctrl-X */ - for(c--;c!=0xff;c--) { + for(;c;c--) { outchar(BS); - if(tmplt[c]=='N' || tmplt[c]=='A' || tmplt[c]=='!') - bputs(" \b"); } - c=0; } + if(tmplt[c-1]=='N' || tmplt[c-1]=='A' || tmplt[c-1]=='!') + bputs(" \b"); + } + } else if(c<t) { if(tmplt[c]=='N' && !isdigit(ch)) continue;