From 5cb82e106124066155486e2bce3ecdd50266929c Mon Sep 17 00:00:00 2001 From: Rob Swindell <rob@synchro.net> Date: Mon, 3 May 2021 00:33:12 -0700 Subject: [PATCH] Previous file support from the [R]emove and [D]ownload commands. More support for moving backwards through file searches/listing types. --- src/sbbs3/listfile.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/sbbs3/listfile.cpp b/src/sbbs3/listfile.cpp index b8a7eb4d82..1918bd1aa9 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 -- GitLab