Synchronet now requires the libarchive development package (e.g. libarchive-dev on Debian-based Linux distros, libarchive.org for more info) to build successfully.

Commits (1)
...@@ -811,7 +811,9 @@ int sbbs_t::listfileinfo(uint dirnum, const char *filespec, long mode) ...@@ -811,7 +811,9 @@ int sbbs_t::listfileinfo(uint dirnum, const char *filespec, long mode)
|| mode==FI_OFFLINE) { || mode==FI_OFFLINE) {
SYNC; SYNC;
// CRLF; // CRLF;
SAFECOPY(str, "VEQRNP\b-\r"); SAFECOPY(str, "VEQRN\r");
if(m > 1)
SAFECAT(str, "P-\b");
if(dir_op(dirnum)) { if(dir_op(dirnum)) {
mnemonics(text[SysopRemoveFilePrompt]); mnemonics(text[SysopRemoveFilePrompt]);
SAFECAT(str,"FMC"); SAFECAT(str,"FMC");
...@@ -1049,7 +1051,9 @@ int sbbs_t::listfileinfo(uint dirnum, const char *filespec, long mode) ...@@ -1049,7 +1051,9 @@ int sbbs_t::listfileinfo(uint dirnum, const char *filespec, long mode)
xfer_prot_menu(XFER_DOWNLOAD); xfer_prot_menu(XFER_DOWNLOAD);
SYNC; SYNC;
mnemonics(text[ProtocolBatchQuitOrNext]); 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++) for(i=0;i<cfg.total_prots;i++)
if(cfg.prot[i]->dlcmd[0] if(cfg.prot[i]->dlcmd[0]
&& chk_ar(cfg.prot[i]->ar,&useron,&client)) { && chk_ar(cfg.prot[i]->ar,&useron,&client)) {
...@@ -1066,6 +1070,12 @@ int sbbs_t::listfileinfo(uint dirnum, const char *filespec, long mode) ...@@ -1066,6 +1070,12 @@ int sbbs_t::listfileinfo(uint dirnum, const char *filespec, long mode)
break; break;
} }
} }
else if(ch == '\b' || ch == '-') { /* previous */
m--;
if(m)
m--;
continue;
}
else if(ch!=CR && ch!='N') { else if(ch!=CR && ch!='N') {
for(i=0;i<cfg.total_prots;i++) for(i=0;i<cfg.total_prots;i++)
if(cfg.prot[i]->dlcmd[0] && cfg.prot[i]->mnemonic==ch if(cfg.prot[i]->dlcmd[0] && cfg.prot[i]->mnemonic==ch
......