home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume32 / xbbs / part08 / bbscmenu.c < prev    next >
C/C++ Source or Header  |  1992-09-08  |  7KB  |  206 lines

  1. #include "bbsc12.h"
  2.  
  3. char menubuf[1024], xmenubuf[64];
  4. int menu_items;
  5.  
  6. checkoption(menubuf, xmenubuf, menu,menustr,priv,menu_items)
  7. char    menubuf[];
  8. char    xmenubuf[];
  9. char    menu[];
  10. char    menustr[];
  11. int    priv;
  12. int     *menu_items;
  13. {
  14.     
  15.     
  16.     if(user_priv >= priv) {
  17.         strcat(menubuf, menustr);
  18.         if(*menu_items!=0)
  19.             strcat(xmenubuf, ",");
  20.         strcat(xmenubuf, menu);
  21.         
  22.         (*menu_items)++;
  23.         if((*menu_items % 4) == 0) 
  24.             strcat(menubuf, "\n\r");
  25.         
  26.     }
  27. }
  28.  
  29. bbsmenu(type, aid)
  30. int type, aid;
  31. {
  32.     menubuf[0]='\0';
  33.     xmenubuf[0]='\0';
  34.     menu_items = 0;
  35.     switch(type) {
  36.         case(1):
  37.             checkoption(menubuf, xmenubuf, "M",
  38.                 "M(essage section), ", mpMS, &menu_items);
  39.             checkoption(menubuf, xmenubuf, "F",
  40.                 "F(ile section),    ", mpE, &menu_items);
  41.             checkoption(menubuf, xmenubuf, "V",
  42.                 "V(ersion),         ", 1, &menu_items);
  43.             checkoption(menubuf, xmenubuf, "H",
  44.                 "H(umor),           ", mpH, &menu_items);
  45.             checkoption(menubuf, xmenubuf, "T",
  46.                 "T(oggle page),     ", mpT, &menu_items);
  47.             checkoption(menubuf, xmenubuf, "B",
  48.                 "B(ulletins),       ", mpB, &menu_items);
  49.             checkoption(menubuf, xmenubuf, "A",
  50.                 "A(dditional),      ", mpA, &menu_items);
  51.             checkoption(menubuf, xmenubuf, "N",
  52.                 "N(ew user msg),    ", mpN, &menu_items);
  53.             checkoption(menubuf, xmenubuf, "X",
  54.                 "e(X)pert toggle,   ", mpX, &menu_items);
  55.             checkoption(menubuf, xmenubuf, "W",
  56.                 "W(elcome message), ", mpW, &menu_items);
  57.             checkoption(menubuf, xmenubuf, "D",
  58.                 "D(aily info),      ", mpD, &menu_items);
  59.             checkoption(menubuf, xmenubuf, "U",
  60.                 "U(nix),            ", mpU, &menu_items);
  61.             checkoption(menubuf, xmenubuf, "R",
  62.                 "R(ead files),      ", mpRF, &menu_items);
  63.             checkoption(menubuf, xmenubuf, "P",
  64.                 "P(assword change), ", mpP, &menu_items);
  65.             checkoption(menubuf, xmenubuf, "C",
  66.                 "C(hat request),    ", mpCHAT, &menu_items);
  67.             checkoption(menubuf, xmenubuf, "Q",
  68.                 "Q(uestionaire),    ", mpQUEST, &menu_items);
  69.             checkoption(menubuf, xmenubuf, "Z",
  70.                 "Z(ip mail),        ", mpY, &menu_items);
  71.             checkoption(menubuf, xmenubuf, "O",
  72.                 "c(O)nference,      ", mpCONF, &menu_items);
  73.             checkoption(menubuf, xmenubuf, "E",
  74.                 "in conferenc(E),   ", mpCONF, &menu_items);
  75.             checkoption(menubuf, xmenubuf, "L",
  76.                 "L(ogged on),       ", mpL, &menu_items);
  77.             checkoption(menubuf, xmenubuf, "G",
  78.                 "G(oodbye),         ", mpG, &menu_items);
  79.             checkoption(menubuf, xmenubuf, "S",
  80.                 "u(S)enet access,   ", mpUSENET, &menu_items);
  81.             checkoption(menubuf, xmenubuf, "I",
  82.                 "s(I)g access,      ", 1, &menu_items);
  83.             checkoption(menubuf, xmenubuf, " or ? ",
  84.                 "? --- help.        ", mpZ, &menu_items);
  85.             break;
  86.  
  87.         case (2):
  88.             checkoption(menubuf, xmenubuf, "A",
  89.                 "A(rea change),     ", 1, &menu_items);
  90.             checkoption(menubuf, xmenubuf, "K",
  91.                 "K(ill message),    ", aid, &menu_items);
  92.             checkoption(menubuf, xmenubuf, "Q",
  93.                 "Q(uick scan),      ", mpQ, &menu_items);
  94.             checkoption(menubuf, xmenubuf, "S",
  95.                 "S(can messages),   ", mpS, &menu_items);
  96.             checkoption(menubuf, xmenubuf, "R",
  97.                 "R(ead messages),   ", mpR, &menu_items);
  98.             checkoption(menubuf, xmenubuf, "Y",
  99.                 "Y(our messages),   ", mpY, &menu_items);
  100.             checkoption(menubuf, xmenubuf, "C",
  101.                 "C(heck messages),  ", mpC, &menu_items);
  102.             checkoption(menubuf, xmenubuf, "E",
  103.                 "E(nter messages),  ", mpE, &menu_items);
  104.             checkoption(menubuf, xmenubuf, "N",
  105.                 "e(N)ter blocked,   ", mpE, &menu_items);
  106.             if( !sigreturn)
  107.                 checkoption(menubuf, xmenubuf, "M",
  108.                     "M(ain menu),       ", 1, &menu_items);
  109.             else
  110.                 checkoption(menubuf, xmenubuf, "M",
  111.                     "M(ain SIG menu),   ", 1, &menu_items);
  112.             checkoption(menubuf, xmenubuf, "G",
  113.                 "G(oodbye),         ", mpG, &menu_items);
  114.             checkoption(menubuf, xmenubuf, "X",
  115.                 "e(X)pert toggle,   ", mpX, &menu_items);
  116.             checkoption(menubuf, xmenubuf, "B",
  117.                 "B(atch read sel),  ", mpR, &menu_items);
  118.             checkoption(menubuf, xmenubuf, "T",
  119.                 "T(oggle page),     ", mpT, &menu_items);
  120.             checkoption(menubuf, xmenubuf, " or ? ",
  121.                 "? --- help.        ", mpZ, &menu_items);
  122.             break;
  123.  
  124.  
  125.         case (3):
  126.  
  127.             checkoption(menubuf, xmenubuf, "A",
  128.                 "A(rea change),     ", 1, &menu_items);
  129.             if( !sigreturn)
  130.                 checkoption(menubuf, xmenubuf, "M",
  131.                     "M(ain menu),       ", 1, &menu_items);
  132.             else
  133.                 checkoption(menubuf, xmenubuf, "M",
  134.                     "M(ain SIG menu),   ", 1, &menu_items);
  135.             checkoption(menubuf, xmenubuf, "U",
  136.                 "U(pload),          ", fpU, &menu_items);
  137.             checkoption(menubuf, xmenubuf, "D",
  138.                 "D(ownload),        ", fpD, &menu_items);
  139.             checkoption(menubuf, xmenubuf, "F",
  140.                 "F(ile list),       ", fpL, &menu_items);
  141.             checkoption(menubuf, xmenubuf, "R",
  142.                 "R(aw list),        ", fpR, &menu_items);
  143.             checkoption(menubuf, xmenubuf, "N",
  144.                 "N(ew file list),   ", fpL, &menu_items);
  145.             checkoption(menubuf, xmenubuf, "Z",
  146.                 "Z(ip file menu)    ", fpL, &menu_items);
  147.             checkoption(menubuf, xmenubuf, "L",
  148.                 "L(ocate files),    ", fpL, &menu_items);
  149.             checkoption(menubuf, xmenubuf, "C",
  150.                 "C(ontent of),      ", fpL, &menu_items);
  151.             checkoption(menubuf, xmenubuf, "X",
  152.                 "e(X)pert toggle,   ", mpX, &menu_items);
  153.             checkoption(menubuf, xmenubuf, "T",
  154.                 "T(oggle page),     ", mpT, &menu_items);
  155.             checkoption(menubuf, xmenubuf, "G",
  156.                 "G(oodbye),         ", mpG, &menu_items);
  157.             checkoption(menubuf, xmenubuf, "S",
  158.                 "S(ummary of dir),  ", mpG, &menu_items);
  159.             checkoption(menubuf, xmenubuf, " or ? ",
  160.                 "? --- help.        ", mpZ, &menu_items);
  161.             break;
  162.         case (4):
  163.             checkoption(menubuf, xmenubuf, "M",
  164.                 "M(essage section), ", mpMS, &menu_items);
  165.             checkoption(menubuf, xmenubuf, "F",
  166.                 "F(ile section),    ", mpE, &menu_items);
  167.             checkoption(menubuf, xmenubuf, "A",
  168.                 "A(dditional),      ", mpA, &menu_items);
  169.             checkoption(menubuf, xmenubuf, "L",
  170.                 "L(eave SIGs),      ", 1, &menu_items);
  171.             checkoption(menubuf, xmenubuf, "X",
  172.                 "e(X)pert toggle,   ", mpX, &menu_items);
  173.             checkoption(menubuf, xmenubuf, "T",
  174.                 "T(oggle page),     ", mpT, &menu_items);
  175.             checkoption(menubuf, xmenubuf, "G",
  176.                 "G(oodbye),         ", mpG, &menu_items);
  177.             checkoption(menubuf, xmenubuf, " or ? ",
  178.                 "? --- help.        ", mpZ, &menu_items);
  179.             break;
  180.         case (5):
  181.             checkoption(menubuf, xmenubuf, "F",
  182.                 "F(ile list),       ", fpL, &menu_items);
  183.             checkoption(menubuf, xmenubuf, "R",
  184.                 "R(aw list),        ", fpR, &menu_items);
  185.             checkoption(menubuf, xmenubuf, "N",
  186.                 "N(ew file list),   ", fpL, &menu_items);
  187.             checkoption(menubuf, xmenubuf, "L",
  188.                 "L(ocate files)     ", fpL, &menu_items);
  189.             break;
  190.         default:
  191.             return;
  192.  
  193.         }
  194.         if(type == 5)
  195.             strcat(menubuf, "\n\r");
  196.         else
  197.             strcat(menubuf, "\n\r\n\r");
  198.         if(!xpert) {
  199.             portsout(CRLF);
  200.             portsout(menubuf);
  201.         }
  202.         portsout("Commands: ");
  203.         portsout(xmenubuf);
  204.         portsout("===> ");
  205. }
  206.