diff --git a/src/sbbs3/listfile.cpp b/src/sbbs3/listfile.cpp index b8a7eb4d8214ba45e73d1306bd5f281e7fe24159..1918bd1aa9e85b5c527ed4ae72eadada8fc5d40d 100644 --- a/src/sbbs3/listfile.cpp +++ b/src/sbbs3/listfile.cpp @@ -811,7 +811,9 @@ int sbbs_t::listfileinfo(uint dirnum, const char *filespec, long mode) || mode==FI_OFFLINE) { SYNC; // CRLF; - SAFECOPY(str, "VEQRNP\b-\r"); + SAFECOPY(str, "VEQRN\r"); + if(m > 1) + SAFECAT(str, "P-\b"); if(dir_op(dirnum)) { mnemonics(text[SysopRemoveFilePrompt]); SAFECAT(str,"FMC"); @@ -1049,7 +1051,9 @@ int sbbs_t::listfileinfo(uint dirnum, const char *filespec, long mode) xfer_prot_menu(XFER_DOWNLOAD); SYNC; mnemonics(text[ProtocolBatchQuitOrNext]); - sprintf(str,"B%cN\r",text[YNQP][2]); + SAFEPRINTF(str,"B%cN\r",text[YNQP][2]); + if(m > 1) + SAFECAT(str, "\b-"); for(i=0;i<cfg.total_prots;i++) if(cfg.prot[i]->dlcmd[0] && chk_ar(cfg.prot[i]->ar,&useron,&client)) { @@ -1066,6 +1070,12 @@ int sbbs_t::listfileinfo(uint dirnum, const char *filespec, long mode) break; } } + else if(ch == '\b' || ch == '-') { /* previous */ + m--; + if(m) + m--; + continue; + } else if(ch!=CR && ch!='N') { for(i=0;i<cfg.total_prots;i++) if(cfg.prot[i]->dlcmd[0] && cfg.prot[i]->mnemonic==ch