#include "bbsc12.h" char menubuf[1024], xmenubuf[64]; int menu_items; checkoption(menubuf, xmenubuf, menu,menustr,priv,menu_items) char menubuf[]; char xmenubuf[]; char menu[]; char menustr[]; int priv; int *menu_items; { if(user_priv >= priv) { strcat(menubuf, menustr); if(*menu_items!=0) strcat(xmenubuf, ","); strcat(xmenubuf, menu); (*menu_items)++; if((*menu_items % 4) == 0) strcat(menubuf, "\n\r"); } } bbsmenu(type, aid) int type, aid; { menubuf[0]='\0'; xmenubuf[0]='\0'; menu_items = 0; switch(type) { case(1): checkoption(menubuf, xmenubuf, "M", "M(essage section), ", mpMS, &menu_items); checkoption(menubuf, xmenubuf, "F", "F(ile section), ", mpE, &menu_items); checkoption(menubuf, xmenubuf, "V", "V(ersion), ", 1, &menu_items); checkoption(menubuf, xmenubuf, "H", "H(umor), ", mpH, &menu_items); checkoption(menubuf, xmenubuf, "T", "T(oggle page), ", mpT, &menu_items); checkoption(menubuf, xmenubuf, "B", "B(ulletins), ", mpB, &menu_items); checkoption(menubuf, xmenubuf, "A", "A(dditional), ", mpA, &menu_items); checkoption(menubuf, xmenubuf, "N", "N(ew user msg), ", mpN, &menu_items); checkoption(menubuf, xmenubuf, "X", "e(X)pert toggle, ", mpX, &menu_items); checkoption(menubuf, xmenubuf, "W", "W(elcome message), ", mpW, &menu_items); checkoption(menubuf, xmenubuf, "D", "D(aily info), ", mpD, &menu_items); checkoption(menubuf, xmenubuf, "U", "U(nix), ", mpU, &menu_items); checkoption(menubuf, xmenubuf, "R", "R(ead files), ", mpRF, &menu_items); checkoption(menubuf, xmenubuf, "P", "P(assword change), ", mpP, &menu_items); checkoption(menubuf, xmenubuf, "C", "C(hat request), ", mpCHAT, &menu_items); checkoption(menubuf, xmenubuf, "Q", "Q(uestionaire), ", mpQUEST, &menu_items); checkoption(menubuf, xmenubuf, "Z", "Z(ip mail), ", mpY, &menu_items); checkoption(menubuf, xmenubuf, "O", "c(O)nference, ", mpCONF, &menu_items); checkoption(menubuf, xmenubuf, "E", "in conferenc(E), ", mpCONF, &menu_items); checkoption(menubuf, xmenubuf, "L", "L(ogged on), ", mpL, &menu_items); checkoption(menubuf, xmenubuf, "G", "G(oodbye), ", mpG, &menu_items); checkoption(menubuf, xmenubuf, "S", "u(S)enet access, ", mpUSENET, &menu_items); checkoption(menubuf, xmenubuf, "I", "s(I)g access, ", 1, &menu_items); checkoption(menubuf, xmenubuf, " or ? ", "? --- help. ", mpZ, &menu_items); break; case (2): checkoption(menubuf, xmenubuf, "A", "A(rea change), ", 1, &menu_items); checkoption(menubuf, xmenubuf, "K", "K(ill message), ", aid, &menu_items); checkoption(menubuf, xmenubuf, "Q", "Q(uick scan), ", mpQ, &menu_items); checkoption(menubuf, xmenubuf, "S", "S(can messages), ", mpS, &menu_items); checkoption(menubuf, xmenubuf, "R", "R(ead messages), ", mpR, &menu_items); checkoption(menubuf, xmenubuf, "Y", "Y(our messages), ", mpY, &menu_items); checkoption(menubuf, xmenubuf, "C", "C(heck messages), ", mpC, &menu_items); checkoption(menubuf, xmenubuf, "E", "E(nter messages), ", mpE, &menu_items); checkoption(menubuf, xmenubuf, "N", "e(N)ter blocked, ", mpE, &menu_items); if( !sigreturn) checkoption(menubuf, xmenubuf, "M", "M(ain menu), ", 1, &menu_items); else checkoption(menubuf, xmenubuf, "M", "M(ain SIG menu), ", 1, &menu_items); checkoption(menubuf, xmenubuf, "G", "G(oodbye), ", mpG, &menu_items); checkoption(menubuf, xmenubuf, "X", "e(X)pert toggle, ", mpX, &menu_items); checkoption(menubuf, xmenubuf, "B", "B(atch read sel), ", mpR, &menu_items); checkoption(menubuf, xmenubuf, "T", "T(oggle page), ", mpT, &menu_items); checkoption(menubuf, xmenubuf, " or ? ", "? --- help. ", mpZ, &menu_items); break; case (3): checkoption(menubuf, xmenubuf, "A", "A(rea change), ", 1, &menu_items); if( !sigreturn) checkoption(menubuf, xmenubuf, "M", "M(ain menu), ", 1, &menu_items); else checkoption(menubuf, xmenubuf, "M", "M(ain SIG menu), ", 1, &menu_items); checkoption(menubuf, xmenubuf, "U", "U(pload), ", fpU, &menu_items); checkoption(menubuf, xmenubuf, "D", "D(ownload), ", fpD, &menu_items); checkoption(menubuf, xmenubuf, "F", "F(ile list), ", fpL, &menu_items); checkoption(menubuf, xmenubuf, "R", "R(aw list), ", fpR, &menu_items); checkoption(menubuf, xmenubuf, "N", "N(ew file list), ", fpL, &menu_items); checkoption(menubuf, xmenubuf, "Z", "Z(ip file menu) ", fpL, &menu_items); checkoption(menubuf, xmenubuf, "L", "L(ocate files), ", fpL, &menu_items); checkoption(menubuf, xmenubuf, "C", "C(ontent of), ", fpL, &menu_items); checkoption(menubuf, xmenubuf, "X", "e(X)pert toggle, ", mpX, &menu_items); checkoption(menubuf, xmenubuf, "T", "T(oggle page), ", mpT, &menu_items); checkoption(menubuf, xmenubuf, "G", "G(oodbye), ", mpG, &menu_items); checkoption(menubuf, xmenubuf, "S", "S(ummary of dir), ", mpG, &menu_items); checkoption(menubuf, xmenubuf, " or ? ", "? --- help. ", mpZ, &menu_items); break; case (4): checkoption(menubuf, xmenubuf, "M", "M(essage section), ", mpMS, &menu_items); checkoption(menubuf, xmenubuf, "F", "F(ile section), ", mpE, &menu_items); checkoption(menubuf, xmenubuf, "A", "A(dditional), ", mpA, &menu_items); checkoption(menubuf, xmenubuf, "L", "L(eave SIGs), ", 1, &menu_items); checkoption(menubuf, xmenubuf, "X", "e(X)pert toggle, ", mpX, &menu_items); checkoption(menubuf, xmenubuf, "T", "T(oggle page), ", mpT, &menu_items); checkoption(menubuf, xmenubuf, "G", "G(oodbye), ", mpG, &menu_items); checkoption(menubuf, xmenubuf, " or ? ", "? --- help. ", mpZ, &menu_items); break; case (5): checkoption(menubuf, xmenubuf, "F", "F(ile list), ", fpL, &menu_items); checkoption(menubuf, xmenubuf, "R", "R(aw list), ", fpR, &menu_items); checkoption(menubuf, xmenubuf, "N", "N(ew file list), ", fpL, &menu_items); checkoption(menubuf, xmenubuf, "L", "L(ocate files) ", fpL, &menu_items); break; default: return; } if(type == 5) strcat(menubuf, "\n\r"); else strcat(menubuf, "\n\r\n\r"); if(!xpert) { portsout(CRLF); portsout(menubuf); } portsout("Commands: "); portsout(xmenubuf); portsout("===> "); }