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: ...@@ -765,7 +765,7 @@ public:
void user_info(void); void user_info(void);
void xfer_policy(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 node_stats(uint node_num);
void sys_stats(void); void sys_stats(void);
void logonlist(const char* args = ""); void logonlist(const char* args = "");
......
...@@ -1084,15 +1084,16 @@ const char* prot_menu_file[] = { ...@@ -1084,15 +1084,16 @@ const char* prot_menu_file[] = {
,"biprot" ,"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)) { size_t count = 0;
return; bool menu_used = menu(prot_menu_file[type], P_NOERROR);
} if(user == nullptr)
user = &useron;
cond_blankline(); cond_blankline();
int printed=0; int printed=0;
for(int i=0;i<cfg.total_prots;i++) { 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; continue;
if(type==XFER_UPLOAD && cfg.prot[i]->ulcmd[0]==0) if(type==XFER_UPLOAD && cfg.prot[i]->ulcmd[0]==0)
continue; continue;
...@@ -1102,12 +1103,20 @@ void sbbs_t::xfer_prot_menu(enum XFER_TYPE type) ...@@ -1102,12 +1103,20 @@ void sbbs_t::xfer_prot_menu(enum XFER_TYPE type)
continue; continue;
if(type==XFER_BATCH_DOWNLOAD && cfg.prot[i]->batdlcmd[0]==0) if(type==XFER_BATCH_DOWNLOAD && cfg.prot[i]->batdlcmd[0]==0)
continue; continue;
if(keys != nullptr && count + 1 < size)
keys[count++] = cfg.prot[i]->mnemonic;
if(menu_used)
continue;
if(printed && (cols < 80 || (printed%2)==0)) if(printed && (cols < 80 || (printed%2)==0))
CRLF; CRLF;
bprintf(text[TransferProtLstFmt],cfg.prot[i]->mnemonic,cfg.prot[i]->name); bprintf(text[TransferProtLstFmt],cfg.prot[i]->mnemonic,cfg.prot[i]->name);
printed++; printed++;
} }
if(keys != nullptr)
keys[count] = '\0';
if(!menu_used)
newline(); newline();
return keys;
} }
void sbbs_t::node_stats(uint node_num) void sbbs_t::node_stats(uint node_num)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment