home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / BBS / MISC / XSRC_117.ZIP / XSETSYS.C < prev    next >
Encoding:
C/C++ Source or Header  |  1990-10-12  |  16.4 KB  |  533 lines

  1. /*--------------------------------------------------------------------------*/
  2. /*                                                                          */
  3. /*   XBBS SOURCE CODE copyright (c) 1990 by M. Kimes                        */
  4. /*   All Rights Reserved                                                    */
  5. /*                                                                          */
  6. /*    For complete details of the licensing restrictions, please refer      */
  7. /*    to the License agreement, which is published in its entirety in       */
  8. /*    the in the file LICENSE.XBS.                                          */
  9. /*                                                                          */
  10. /*    USE OF THIS FILE IS SUBJECT TO THE RESTRICTIONS CONTAINED IN THE      */
  11. /*    XBBS LICENSING AGREEMENT.  IF YOU DO NOT FIND THE TEXT OF             */
  12. /*    THIS AGREEMENT IN ANY OF THE AFOREMENTIONED FILES, OR IF YOU DO       */
  13. /*    NOT HAVE THESE FILES, YOU SHOULD IMMEDIATELY CONTACT M. KIMES         */
  14. /*    AT THE ADDRESS LISTED BELOW.  IN NO EVENT SHOULD YOU PROCEED TO USE   */
  15. /*    THIS FILE WITHOUT HAVING ACCEPTED THE TERMS OF THE XBBS LICENSING     */
  16. /*    AGREEMENT, OR SUCH OTHER AGREEMENT AS YOU ARE ABLE TO REACH WITH      */
  17. /*    M. KIMES                                                              */
  18. /*                                                                          */
  19. /*                                                                          */
  20. /* You can contact M. Kimes at the following address:                       */
  21. /*                                                                          */
  22. /* M. Kimes                         1:380/16.0@FidoNet                      */
  23. /* 542 Merrick                      (318)222-3455 data                      */
  24. /* Shreveport, LA  71104                                                    */
  25. /*                                                                          */
  26. /*                                                                          */
  27. /* Please feel free to contact me at any time to share your comments about  */
  28. /* my software and/or licensing policies.                                   */
  29. /*                                                                          */
  30. /*--------------------------------------------------------------------------*/
  31. /***************************************************************************/
  32. /* Set values of XBBS system variables                                     */
  33. /***************************************************************************/
  34.  
  35. #include "msg.h"
  36. #include "xext.h"
  37.  
  38.  
  39.  
  40. /* Set system variables */
  41. void pascal setsystem (char *rest) {
  42.  
  43.     long i1,i2;
  44.     char *p,*pp;
  45.     struct _user *uuser;
  46.  
  47.     stripcr(rest);
  48.     uuser=&user;
  49.     p=strtok(rest,",");
  50.     p=var_trans(p);
  51.     i1=atol(p);
  52.     pp=var_trans(strtok(0,",\n"));
  53.     i2=atol(pp);
  54.     if(i1>171L && i1<236L) {
  55.         i1-=93L;
  56.         uuser=&other;
  57.     }
  58.     switch((int)i1) {
  59.         case 0:     strncpy(msg.subj,pp,64);
  60.                     msg.subj[63]=0;
  61.                     break;
  62.         case 1:        strncpy(msg.to,pp,36);
  63.                     msg.to[35]=0;
  64.                     break;
  65.         case 2:        strncpy(msg.from,pp,36);
  66.                     msg.from[35]=0;
  67.                     break;
  68.         case 3:     strncpy(msg.date,pp,20);
  69.                     msg.date[19]=0;
  70.                     break;
  71.         case 4:     msg.attr=(word)i2;
  72.                     break;
  73.         case 5:        msg.m_attr=(word)i2;
  74.                     break;
  75.         case 6:        msg.times=(word)i2;
  76.                     break;
  77.         case 7:        msg.cost=(word)i2;
  78.                     break;
  79.         case 8:        msg.orig=(word)i2;
  80.                     break;
  81.         case 9:        msg.orig_net=(word)i2;
  82.                     break;
  83.         case 10:    msg.o_zone=(word)i2;
  84.                     break;
  85.         case 11:    msg.o_point=(word)i2;
  86.                     break;
  87.         case 12:    msg.dest=(word)i2;
  88.                     break;
  89.         case 13:    msg.dest_net=(word)i2;
  90.                     break;
  91.         case 14:    msg.d_zone=(word)i2;
  92.                     break;
  93.         case 15:    msg.d_point=(word)i2;
  94.                     break;
  95.         case 16:    if(strlen(pp)<8) break; /* Expects YY/MM/DD */
  96.                     *msg.indate=(char)atoi(pp);
  97.                     msg.indate[1]=(char)atoi(&pp[3]);
  98.                     msg.indate[2]=(char)atoi(&pp[6]);
  99.                     msg.indate[3]=0;
  100.                     break;
  101.         case 17:    strncpy(conf.system,pp,64);
  102.                     conf.system[63]=0;
  103.                     break;
  104.         case 18:    strncpy(conf.sysop,pp,36);
  105.                     conf.system[35]=0;
  106.                     break;
  107.         case 19:    strncpy(conf.logfile,pp,79);
  108.                     conf.logfile[78]=0;
  109.                     break;
  110.         case 20:    conf.commport=(char)i2;
  111.                     break;
  112.         case 21:    conf.node=(word)i2;
  113.                     break;
  114.         case 22:    conf.net=(word)i2;
  115.                     break;
  116.         case 23:    conf.zone=(word)i2;
  117.                     break;
  118.         case 24:    conf.alt_node=(word)i2;
  119.                     break;
  120.         case 25:    conf.alt_net=(word)i2;
  121.                     break;
  122.         case 26:    conf.alt_zone=(word)i2;
  123.                     break;
  124.         case 27:    strncpy(conf.homepath,pp,79);
  125.                     conf.homepath[78]=0;
  126.                     break;
  127.         case 28:    strncpy(conf.menupath,pp,79);
  128.                     conf.menupath[78]=0;
  129.                     break;
  130.         case 29:    strncpy(conf.messpath,pp,79);
  131.                     conf.messpath[78]=0;
  132.                     break;
  133.         case 30:    conf.idleseconds=(word)i2;
  134.                     break;
  135.         case 31:    conf.pages=(char)i2;
  136.                     break;
  137.         case 32:    conf.sysopin=(char)i2;
  138.                     break;
  139.         case 33:    conf.touchup=(char)i2;
  140.                     break;
  141.         case 34:    conf.uptime=(char)i2;
  142.                     break;
  143.         case 35:    conf.downtime=(char)i2;
  144.                     break;
  145.         case 36:    conf.dvideo=(char)i2;
  146.                     break;
  147.         case 37:    conf.bvideo=(char)i2;
  148.                     break;
  149.         case 38:    conf.bioswrites=(char)i2;
  150.                     break;
  151.         case 39:    conf.debug=(char)i2;
  152.                     break;
  153.         case 40:    conf.ansiavail=(char)i2;
  154.                     break;
  155.         case 41:    conf.whichstat=(char)i2;
  156.                     break;
  157.         case 42:    conf.promptsay=(char)i2;
  158.                     break;
  159.         case 43:    strncpy(conf.edansi,pp,79);
  160.                     conf.edansi[78]=0;
  161.                     break;
  162.         case 44:    strncpy(conf.edline,pp,79);
  163.                     conf.edline[78]=0;
  164.                     break;
  165.         case 45:    strncpy(conf.edlocal,pp,79);
  166.                     conf.edlocal[78]=0;
  167.                     break;
  168.         case 46:    conf.ansibaud=(word)i2;
  169.                     break;
  170.         case 47:    strncpy(conf.quotestring,pp,4);
  171.                     conf.quotestring[3]=0;
  172.                     break;
  173.         case 48:    conf.callcount=i2;
  174.                     break;
  175.         case 49:    strncpy(conf.lastcaller,pp,36);
  176.                     conf.lastcaller[35]=0;
  177.                     break;
  178.         case 50:    conf.netmailboard=(word)i2;
  179.                     break;
  180.         case 51:    conf.altnetboard=(word)i2;
  181.                     break;
  182.         case 52:    strncpy(conf.origin,pp,59);
  183.                     conf.origin[58]=0;
  184.                     break;
  185.         case 53:    conf.carbons=(char)i2;
  186.                     break;
  187.         case 54:    if((char)i2<0 || (char)i2>9) break;
  188.                     pp=var_trans(strtok(0,",\n"));
  189.                     strncpy(conf.jumpfile[(char)i2],pp,13);
  190.                     conf.jumpfile[(char)i2][12]=0;
  191.                     break;
  192.         case 55:    if((char)i2<0 || (char)i2>9) break;
  193.                     pp=var_trans(strtok(0,",\n"));
  194.                     *conf.jumpkey[(char)i2]=*pp;
  195.                     conf.jumpkey[(char)i2][2]=0;
  196.                     break;
  197.         case 56:    if((char)i2<0 || (char)i2>9) break;
  198.                     pp=var_trans(strtok(0,",\n"));
  199.                     strncpy(conf.subfile[(char)i2],pp,13);
  200.                     conf.subfile[(char)i2][12]=0;
  201.                     break;
  202.         case 57:    if((char)i2<0 || (char)i2>9) break;
  203.                     pp=var_trans(strtok(0,",\n"));
  204.                     *conf.subkey[(char)i2]=*pp;
  205.                     conf.subkey[(char)i2][2]=0;
  206.                     break;
  207.         case 58:    conf.nolmrs=(word)i2;
  208.                     break;
  209.         case 59:    conf.quote_pos=i2;
  210.                     break;
  211.         case 60:    strncpy(conf.quote_file,pp,13);
  212.                     conf.quote_file[12]=0;
  213.                     break;
  214.         case 61:    conf.startat=(char)i2;
  215.                     break;
  216.         case 62:    conf.numcomps=(char)i2;
  217.                     break;
  218.         case 63:    strncpy(conf.edgraph,pp,79);
  219.                     conf.edgraph[78]=0;
  220.                     break;
  221.         case 64:    conf.comments=(char)i2;
  222.                     break;
  223.         case 65:    conf.purgebaud=(word)i2;
  224.                     break;
  225.         case 66:    conf.genphone=(char)i2;
  226.                     break;
  227.         case 67:    conf.genstatezip=(char)i2;
  228.                     break;
  229.         case 68:    conf.share=(char)i2;
  230.                     break;
  231.         case 69:    conf.fastANSI=(char)i2;
  232.                     break;
  233.         case 70:    conf.logmenu=(char)i2;
  234.                     break;
  235.         case 71:    conf.logfiles=(char)i2;
  236.                     break;
  237.         case 72:    conf.logmsg=(char)i2;
  238.                     break;
  239.         case 73:    conf.logtext=(char)i2;
  240.                     break;
  241.         case 74:    strncpy(conf.nodelist,pp,79);
  242.                     conf.nodelist[78]=0;
  243.                     break;
  244.         case 75:    conf.lastusernum=(word)i2;
  245.                     break;
  246.         case 76:    conf.useswapdisk=*pp;
  247.                     break;
  248.         case 77:    conf.LIMEMS=(char)i2;
  249.                     break;
  250.         case 78:    conf.swap=(char)i2;
  251.                     break;
  252.         case 79:    strncpy(uuser->name,pp,36);
  253.                     uuser->name[35]=0;
  254.                     break;
  255.         case 80:    strncpy(uuser->handle,pp,36);
  256.                     uuser->handle[35]=0;
  257.                     break;
  258.         case 81:    uuser->birthdate.da_mon=(char)i2;
  259.                     i2=atol(var_trans(strtok(0,",\n")));
  260.                     uuser->birthdate.da_day=(char)i2;
  261.                     i2=atol(var_trans(strtok(0,",\n")));
  262.                     uuser->birthdate.da_year=(int)i2;
  263.                     break;
  264.         case 82:    strncpy(uuser->password,pp,12);
  265.                     uuser->password[11]=0;
  266.                     break;
  267.         case 83:    strncpy(uuser->city,pp,12);
  268.                     uuser->city[24]=0;
  269.                     break;
  270.         case 84:    strncpy(uuser->state,pp,2);
  271.                     uuser->state[2]=0;
  272.                     break;
  273.         case 85:    strncpy(uuser->zip,pp,6);
  274.                     uuser->zip[5]=0;
  275.                     break;
  276.         case 86:    strncpy(uuser->phone1,pp,10);
  277.                     uuser->phone1[9]=0;
  278.                     break;
  279.         case 87:    strncpy(uuser->phone2,pp,10);
  280.                     uuser->phone2[9]=0;
  281.                     break;
  282.         case 88:    uuser->length=(char)i2;
  283.                     break;
  284.         case 89:    uuser->cold=(char)i2;
  285.                     break;
  286.         case 90:    uuser->width=(char)i2;
  287.                     break;
  288.         case 91:    uuser->graphics=(char)i2;
  289.                     break;
  290.         case 92:    uuser->fullscreen=(char)i2;
  291.                     break;
  292.         case 93:    uuser->scrnclr=(char)i2;
  293.                     break;
  294.         case 94:    uuser->commodore=(char)i2;
  295.                     break;
  296.         case 95:    uuser->expert=(char)i2;
  297.                     break;
  298.         case 96:    uuser->more=(char)i2;
  299.                     break;
  300.         case 97:    uuser->ignorehrs=(char)i2;
  301.                     break;
  302.         case 98:    uuser->ignorerat=(char)i2;
  303.                     break;
  304.         case 99:    uuser->nokill=(char)i2;
  305.                     break;
  306.         case 100:    uuser->deleted=(char)i2;
  307.                     break;
  308.         case 101:    uuser->arq=(char)i2;
  309.                     break;
  310.         case 102:    uuser->twit=(char)i2;
  311.                     break;
  312.         case 103:    uuser->ansimenus=(char)i2;
  313.                     break;
  314.         case 104:    uuser->gen1=(char)i2;
  315.                     break;
  316.         case 105:    uuser->gen2=(char)i2;
  317.                     break;
  318.         case 106:    uuser->gen3=(char)i2;
  319.                     break;
  320.         case 107:    uuser->attr2=(word)i2;
  321.                     break;
  322.         case 108:   if((char)i2<0 || (char)i2>9) break;
  323.                     i1=atol(var_trans(strtok(0,",\n")));
  324.                     uuser->stat[(char)i2]=(word)i1;
  325.                     break;
  326.         case 109:    uuser->upk=(unsigned long)i2;
  327.                     break;
  328.         case 110:    uuser->downk=(unsigned long)i2;
  329.                     break;
  330.         case 111:    uuser->upno=(word)i2;
  331.                     break;
  332.         case 112:    uuser->downno=(word)i2;
  333.                     break;
  334.         case 113:    uuser->posts=(word)i2;
  335.                     break;
  336.         case 114:    uuser->credit=(int)i2;
  337.                     break;
  338.         case 115:    uuser->violations=(char)i2;
  339.                     break;
  340.         case 116:    uuser->lastdate.da_mon=(char)i2;
  341.                     i2=atol(var_trans(strtok(0,",\n")));
  342.                     uuser->lastdate.da_day=(char)i2;
  343.                     i2=atol(var_trans(strtok(0,",\n")));
  344.                     uuser->lastdate.da_year=(int)i2;
  345.                     break;
  346.         case 117:    uuser->logondate.da_mon=(char)i2;
  347.                     i2=atol(var_trans(strtok(0,",\n")));
  348.                     uuser->logondate.da_day=(char)i2;
  349.                     i2=atol(var_trans(strtok(0,",\n")));
  350.                     uuser->logondate.da_year=(int)i2;
  351.                     break;
  352.         case 118:    uuser->lasttime.ti_hour=(char)i2;
  353.                     i2=atol(var_trans(strtok(0,",\n")));
  354.                     uuser->lasttime.ti_min=(char)i2;
  355.                     i2=atol(var_trans(strtok(0,",\n")));
  356.                     uuser->lasttime.ti_sec=(char)i2;
  357.                     uuser->lasttime.ti_hund=0;
  358.                     break;
  359.         case 119:    uuser->logontime.ti_hour=(char)i2;
  360.                     i2=atol(var_trans(strtok(0,",\n")));
  361.                     uuser->logontime.ti_min=(char)i2;
  362.                     i2=atol(var_trans(strtok(0,",\n")));
  363.                     uuser->logontime.ti_sec=(char)i2;
  364.                     uuser->logontime.ti_hund=0;
  365.                     break;
  366.         case 120:    uuser->times=(ulong)i2;
  367.                     break;
  368.         case 121:    uuser->callsperday=(word)i2;
  369.                     break;
  370.         case 122:    uuser->timepercall=(word)i2;
  371.                     break;
  372.         case 123:    uuser->totaltime=(word)i2;
  373.                     break;
  374.         case 124:    uuser->callstoday=(word)i2;
  375.                     break;
  376.         case 125:    uuser->timetoday=(word)i2;
  377.                     break;
  378.         case 126:    uuser->comptype=(char)i2;
  379.                     break;
  380.         case 127:    uuser->uktoday=(word)i2;
  381.                     break;
  382.         case 128:    uuser->dktoday=(word)i2;
  383.                     break;
  384.         case 129:   if((char)i2<0 || (char)i2>4) break;
  385.                     pp=var_trans(strtok(0,",\n"));
  386.                     strncpy(uuser->variable[(char)i2],pp,76);
  387.                     uuser->variable[(char)i2][75]=0;
  388.                     break;
  389.         case 130:   if((char)i2<0 || (char)i2>9) break;
  390.                     pp=var_trans(strtok(0,",\n"));
  391.                     uuser->numvars[(char)i2]=(word)i2;
  392.                     break;
  393.         case 131:    strncpy(mboard.name,pp,48);
  394.                     mboard.name[47]=0;
  395.                     break;
  396.         case 132:    strncpy(mboard.forceto,pp,36);
  397.                     mboard.forceto[35]=0;
  398.                     break;
  399.         case 133:    mboard.attr=(word)i2;
  400.                     break;
  401.         case 134:    mboard.max=(word)i2;
  402.                     break;
  403.         case 135:    mboard.number=(word)i2;
  404.                     break;
  405.         case 136:    mboard.substat1=(word)i2;
  406.                     break;
  407.         case 137:    mboard.substat2=(word)i2;
  408.                     break;
  409.         case 138:    strncpy(fboard.name,pp,47);
  410.                     fboard.name[46]=0;
  411.                     break;
  412.         case 139:    fboard.flags=(char)i2;
  413.                     break;
  414.         case 140:    strncpy(fboard.dpath,pp,79);
  415.                     fboard.dpath[78]=0;
  416.                     break;
  417.         case 141:    strncpy(fboard.upath,pp,79);
  418.                     fboard.upath[78]=0;
  419.                     break;
  420.         case 142:   if(uuser==&user)userno=(word)i2;
  421.                     else tempuserno=(word)i2;
  422.                     break;
  423.         case 143:   baud=(word)i2;
  424.                     break;
  425.         case 144:    pages=(char)i2;
  426.                     break;
  427.         case 145:    age=(char)i2;
  428.                     break;
  429.         case 146:    timer_off=(char)i2;
  430.                     break;
  431.         case 147:   if((char)i2<0 || (char)i2>9) break;
  432.                     pp=var_trans(strtok(0,",\n"));
  433.                     strncpy(variable[(char)i2],pp,82);
  434.                     variable[(char)i2][81]=0;
  435.                     break;
  436.         case 148:   if((char)i2<0 || (char)i2>9) break;
  437.                     pp=var_trans(strtok(0,",\n"));
  438.                     strncpy(event[(char)i2].filename,pp,13);
  439.                     event[(char)i2].filename[12]=0;
  440.                     pp=var_trans(strtok(0,",\n"));
  441.                     event[(char)i2].secsleft=(ulong)i2;
  442.                     break;
  443.         case 149:   if((word)i2>conf.nolmrs) break;
  444.                     pp=var_trans(strtok(0,",\n"));
  445.                     lastread[(word)i2]=(word)i1;
  446.                     break;
  447. /*      case 150:   strncpy(aftertimeout,pp,13);
  448.                     aftertimeout[12]=0;
  449.                     break;
  450.         case 151:    strncpy(aftercarrierloss,pp,13);
  451.                     aftercarrierloss[12]=0;
  452.                     break;
  453.         case 152:    strncpy(afternotime,pp,13);
  454.                     afternotime[12]=0;
  455.                     break;
  456.         case 153:   strncpy(afterlogoff,pp,13);
  457.                     afterlogoff[12]=0;
  458.                     break;
  459.         case 154:    strncpy(aftererror,pp,13);
  460.                     aftererror[12]=0;
  461.                     break;
  462.         case 155:    strncpy(promptfile,pp,81);
  463.                     promptfile[80]=0;
  464.                     if((p=strchr(promptfile,'.'))) *p=0;
  465.                     break;
  466.         case 156:   nid.node=(word)i2;
  467.                     break;
  468.         case 157:    nid.net=(word)i2;
  469.                     break;
  470.         case 158:    nid.zone=(word)i2;
  471.                     break;
  472.         case 159:    nid.type=(char)i2;
  473.                     break;
  474. */      case 171:   strncpy(messpath,pp,79);
  475.                     messpath[78]=0;
  476.                     break;
  477.         case 236:    /* RESERVED */
  478.                     break;
  479.         case 237:   strncpy(conf.domain,pp,36);
  480.                     conf.domain[36]=0;
  481.                     break;
  482.         case 238:   strncpy(conf.alt_domain,pp,36);
  483.                     conf.alt_domain[35]=0;
  484.                     break;
  485.         case 239:    strncpy(to_domain,pp,36);
  486.                     to_domain[35]=0;
  487.                     break;
  488.         case 240:   nodenumber=(char)i2;
  489.                     break;
  490.         case 241:    user.id=(ulong)i2;
  491.                     break;
  492.         case 242:    user.node=(char)i2;
  493.                     break;
  494.         case 243:    other.id=(ulong)i2;
  495.                     break;
  496.         case 244:    other.node=(char)i2;
  497.                     break;
  498.         case 245:    conf.nextid=(ulong)i2;
  499.                     break;
  500.         case 246:    conf.RBBSorQBBS=(char)i2;
  501.                     break;
  502.         case 247:    user.hiok=(char)i2;
  503.                     break;
  504.         case 248:   other.hiok=(char)i2;
  505.                     break;
  506. /*      case 249:   strncpy(memoname,pp,80);
  507.                     memoname[79]=0;
  508.         case 250:    blksize=(word)i2;
  509.                     break;
  510.         case 251:   strncpy(lastmsgid,pp,80);
  511.                     lastmsgid[79]=0;
  512.                     break;
  513.         case 252:   strncpy(lastreply,pp,80);
  514.                     lastreply[79]=0;
  515.                     break;                      */
  516.         case 253:   strncpy(msginfo,pp,133);
  517.                     msginfo[132]=0;
  518.                     break;
  519.         case 254:   strncpy(assocfile,pp,133);
  520.                     assocfile[132]=0;
  521.                     break;
  522.         case 255:   user.lastmsgarea=(word)i2;
  523.                     break;
  524.         case 256:   other.lastmsgarea=(word)i2;
  525.                     break;
  526.         case 257:   user.pointid=(word)i2;
  527.                     break;
  528.         case 258:   other.pointid=(word)i2;
  529.                     break;
  530.     }
  531. }
  532.  
  533.