home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 January
/
usenetsourcesnewsgroupsinfomagicjanuary1994.iso
/
sources
/
misc
/
volume32
/
xbbs
/
part08
/
bbscmenu.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-09-08
|
7KB
|
206 lines
#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("===> ");
}