Skip to content
Snippets Groups Projects
Commit 60d953c9 authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

sbbs_t::xfer_prot_menu() can now return the list of command keys

for use by JS bbs.xtrn_prot_menu() immediately, elsewhere soon.
parent 793cb05d
No related branches found
No related tags found
No related merge requests found
Pipeline #6946 passed
......@@ -765,7 +765,7 @@ public:
void user_info(void);
void xfer_policy(void);
void xfer_prot_menu(enum XFER_TYPE);
char* xfer_prot_menu(enum XFER_TYPE, user_t* user = nullptr, char* buf = nullptr, size_t size = 0);
void node_stats(uint node_num);
void sys_stats(void);
void logonlist(const char* args = "");
......
......@@ -1084,15 +1084,16 @@ const char* prot_menu_file[] = {
,"biprot"
};
void sbbs_t::xfer_prot_menu(enum XFER_TYPE type)
char* sbbs_t::xfer_prot_menu(enum XFER_TYPE type, user_t* user, char* keys, size_t size)
{
if(menu(prot_menu_file[type], P_NOERROR)) {
return;
}
size_t count = 0;
bool menu_used = menu(prot_menu_file[type], P_NOERROR);
if(user == nullptr)
user = &useron;
cond_blankline();
int printed=0;
for(int i=0;i<cfg.total_prots;i++) {
if(!chk_ar(cfg.prot[i]->ar,&useron,&client))
if(!chk_ar(cfg.prot[i]->ar, user, &client))
continue;
if(type==XFER_UPLOAD && cfg.prot[i]->ulcmd[0]==0)
continue;
......@@ -1102,12 +1103,20 @@ void sbbs_t::xfer_prot_menu(enum XFER_TYPE type)
continue;
if(type==XFER_BATCH_DOWNLOAD && cfg.prot[i]->batdlcmd[0]==0)
continue;
if(keys != nullptr && count + 1 < size)
keys[count++] = cfg.prot[i]->mnemonic;
if(menu_used)
continue;
if(printed && (cols < 80 || (printed%2)==0))
CRLF;
bprintf(text[TransferProtLstFmt],cfg.prot[i]->mnemonic,cfg.prot[i]->name);
printed++;
}
newline();
if(keys != nullptr)
keys[count] = '\0';
if(!menu_used)
newline();
return keys;
}
void sbbs_t::node_stats(uint node_num)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment