home *** CD-ROM | disk | FTP | other *** search
- /*--------------------------------------------------------------------------*/
- /* */
- /* XBBS SOURCE CODE copyright (c) 1990 by M. Kimes */
- /* All Rights Reserved */
- /* */
- /* For complete details of the licensing restrictions, please refer */
- /* to the License agreement, which is published in its entirety in */
- /* the in the file LICENSE.XBS. */
- /* */
- /* USE OF THIS FILE IS SUBJECT TO THE RESTRICTIONS CONTAINED IN THE */
- /* XBBS LICENSING AGREEMENT. IF YOU DO NOT FIND THE TEXT OF */
- /* THIS AGREEMENT IN ANY OF THE AFOREMENTIONED FILES, OR IF YOU DO */
- /* NOT HAVE THESE FILES, YOU SHOULD IMMEDIATELY CONTACT M. KIMES */
- /* AT THE ADDRESS LISTED BELOW. IN NO EVENT SHOULD YOU PROCEED TO USE */
- /* THIS FILE WITHOUT HAVING ACCEPTED THE TERMS OF THE XBBS LICENSING */
- /* AGREEMENT, OR SUCH OTHER AGREEMENT AS YOU ARE ABLE TO REACH WITH */
- /* M. KIMES */
- /* */
- /* */
- /* You can contact M. Kimes at the following address: */
- /* */
- /* M. Kimes 1:380/16.0@FidoNet */
- /* 542 Merrick (318)222-3455 data */
- /* Shreveport, LA 71104 */
- /* */
- /* */
- /* Please feel free to contact me at any time to share your comments about */
- /* my software and/or licensing policies. */
- /* */
- /*--------------------------------------------------------------------------*/
- /***************************************************************************/
- /* Set values of XBBS system variables */
- /***************************************************************************/
-
- #include "msg.h"
- #include "xext.h"
-
-
-
- /* Set system variables */
- void pascal setsystem (char *rest) {
-
- long i1,i2;
- char *p,*pp;
- struct _user *uuser;
-
- stripcr(rest);
- uuser=&user;
- p=strtok(rest,",");
- p=var_trans(p);
- i1=atol(p);
- pp=var_trans(strtok(0,",\n"));
- i2=atol(pp);
- if(i1>171L && i1<236L) {
- i1-=93L;
- uuser=&other;
- }
- switch((int)i1) {
- case 0: strncpy(msg.subj,pp,64);
- msg.subj[63]=0;
- break;
- case 1: strncpy(msg.to,pp,36);
- msg.to[35]=0;
- break;
- case 2: strncpy(msg.from,pp,36);
- msg.from[35]=0;
- break;
- case 3: strncpy(msg.date,pp,20);
- msg.date[19]=0;
- break;
- case 4: msg.attr=(word)i2;
- break;
- case 5: msg.m_attr=(word)i2;
- break;
- case 6: msg.times=(word)i2;
- break;
- case 7: msg.cost=(word)i2;
- break;
- case 8: msg.orig=(word)i2;
- break;
- case 9: msg.orig_net=(word)i2;
- break;
- case 10: msg.o_zone=(word)i2;
- break;
- case 11: msg.o_point=(word)i2;
- break;
- case 12: msg.dest=(word)i2;
- break;
- case 13: msg.dest_net=(word)i2;
- break;
- case 14: msg.d_zone=(word)i2;
- break;
- case 15: msg.d_point=(word)i2;
- break;
- case 16: if(strlen(pp)<8) break; /* Expects YY/MM/DD */
- *msg.indate=(char)atoi(pp);
- msg.indate[1]=(char)atoi(&pp[3]);
- msg.indate[2]=(char)atoi(&pp[6]);
- msg.indate[3]=0;
- break;
- case 17: strncpy(conf.system,pp,64);
- conf.system[63]=0;
- break;
- case 18: strncpy(conf.sysop,pp,36);
- conf.system[35]=0;
- break;
- case 19: strncpy(conf.logfile,pp,79);
- conf.logfile[78]=0;
- break;
- case 20: conf.commport=(char)i2;
- break;
- case 21: conf.node=(word)i2;
- break;
- case 22: conf.net=(word)i2;
- break;
- case 23: conf.zone=(word)i2;
- break;
- case 24: conf.alt_node=(word)i2;
- break;
- case 25: conf.alt_net=(word)i2;
- break;
- case 26: conf.alt_zone=(word)i2;
- break;
- case 27: strncpy(conf.homepath,pp,79);
- conf.homepath[78]=0;
- break;
- case 28: strncpy(conf.menupath,pp,79);
- conf.menupath[78]=0;
- break;
- case 29: strncpy(conf.messpath,pp,79);
- conf.messpath[78]=0;
- break;
- case 30: conf.idleseconds=(word)i2;
- break;
- case 31: conf.pages=(char)i2;
- break;
- case 32: conf.sysopin=(char)i2;
- break;
- case 33: conf.touchup=(char)i2;
- break;
- case 34: conf.uptime=(char)i2;
- break;
- case 35: conf.downtime=(char)i2;
- break;
- case 36: conf.dvideo=(char)i2;
- break;
- case 37: conf.bvideo=(char)i2;
- break;
- case 38: conf.bioswrites=(char)i2;
- break;
- case 39: conf.debug=(char)i2;
- break;
- case 40: conf.ansiavail=(char)i2;
- break;
- case 41: conf.whichstat=(char)i2;
- break;
- case 42: conf.promptsay=(char)i2;
- break;
- case 43: strncpy(conf.edansi,pp,79);
- conf.edansi[78]=0;
- break;
- case 44: strncpy(conf.edline,pp,79);
- conf.edline[78]=0;
- break;
- case 45: strncpy(conf.edlocal,pp,79);
- conf.edlocal[78]=0;
- break;
- case 46: conf.ansibaud=(word)i2;
- break;
- case 47: strncpy(conf.quotestring,pp,4);
- conf.quotestring[3]=0;
- break;
- case 48: conf.callcount=i2;
- break;
- case 49: strncpy(conf.lastcaller,pp,36);
- conf.lastcaller[35]=0;
- break;
- case 50: conf.netmailboard=(word)i2;
- break;
- case 51: conf.altnetboard=(word)i2;
- break;
- case 52: strncpy(conf.origin,pp,59);
- conf.origin[58]=0;
- break;
- case 53: conf.carbons=(char)i2;
- break;
- case 54: if((char)i2<0 || (char)i2>9) break;
- pp=var_trans(strtok(0,",\n"));
- strncpy(conf.jumpfile[(char)i2],pp,13);
- conf.jumpfile[(char)i2][12]=0;
- break;
- case 55: if((char)i2<0 || (char)i2>9) break;
- pp=var_trans(strtok(0,",\n"));
- *conf.jumpkey[(char)i2]=*pp;
- conf.jumpkey[(char)i2][2]=0;
- break;
- case 56: if((char)i2<0 || (char)i2>9) break;
- pp=var_trans(strtok(0,",\n"));
- strncpy(conf.subfile[(char)i2],pp,13);
- conf.subfile[(char)i2][12]=0;
- break;
- case 57: if((char)i2<0 || (char)i2>9) break;
- pp=var_trans(strtok(0,",\n"));
- *conf.subkey[(char)i2]=*pp;
- conf.subkey[(char)i2][2]=0;
- break;
- case 58: conf.nolmrs=(word)i2;
- break;
- case 59: conf.quote_pos=i2;
- break;
- case 60: strncpy(conf.quote_file,pp,13);
- conf.quote_file[12]=0;
- break;
- case 61: conf.startat=(char)i2;
- break;
- case 62: conf.numcomps=(char)i2;
- break;
- case 63: strncpy(conf.edgraph,pp,79);
- conf.edgraph[78]=0;
- break;
- case 64: conf.comments=(char)i2;
- break;
- case 65: conf.purgebaud=(word)i2;
- break;
- case 66: conf.genphone=(char)i2;
- break;
- case 67: conf.genstatezip=(char)i2;
- break;
- case 68: conf.share=(char)i2;
- break;
- case 69: conf.fastANSI=(char)i2;
- break;
- case 70: conf.logmenu=(char)i2;
- break;
- case 71: conf.logfiles=(char)i2;
- break;
- case 72: conf.logmsg=(char)i2;
- break;
- case 73: conf.logtext=(char)i2;
- break;
- case 74: strncpy(conf.nodelist,pp,79);
- conf.nodelist[78]=0;
- break;
- case 75: conf.lastusernum=(word)i2;
- break;
- case 76: conf.useswapdisk=*pp;
- break;
- case 77: conf.LIMEMS=(char)i2;
- break;
- case 78: conf.swap=(char)i2;
- break;
- case 79: strncpy(uuser->name,pp,36);
- uuser->name[35]=0;
- break;
- case 80: strncpy(uuser->handle,pp,36);
- uuser->handle[35]=0;
- break;
- case 81: uuser->birthdate.da_mon=(char)i2;
- i2=atol(var_trans(strtok(0,",\n")));
- uuser->birthdate.da_day=(char)i2;
- i2=atol(var_trans(strtok(0,",\n")));
- uuser->birthdate.da_year=(int)i2;
- break;
- case 82: strncpy(uuser->password,pp,12);
- uuser->password[11]=0;
- break;
- case 83: strncpy(uuser->city,pp,12);
- uuser->city[24]=0;
- break;
- case 84: strncpy(uuser->state,pp,2);
- uuser->state[2]=0;
- break;
- case 85: strncpy(uuser->zip,pp,6);
- uuser->zip[5]=0;
- break;
- case 86: strncpy(uuser->phone1,pp,10);
- uuser->phone1[9]=0;
- break;
- case 87: strncpy(uuser->phone2,pp,10);
- uuser->phone2[9]=0;
- break;
- case 88: uuser->length=(char)i2;
- break;
- case 89: uuser->cold=(char)i2;
- break;
- case 90: uuser->width=(char)i2;
- break;
- case 91: uuser->graphics=(char)i2;
- break;
- case 92: uuser->fullscreen=(char)i2;
- break;
- case 93: uuser->scrnclr=(char)i2;
- break;
- case 94: uuser->commodore=(char)i2;
- break;
- case 95: uuser->expert=(char)i2;
- break;
- case 96: uuser->more=(char)i2;
- break;
- case 97: uuser->ignorehrs=(char)i2;
- break;
- case 98: uuser->ignorerat=(char)i2;
- break;
- case 99: uuser->nokill=(char)i2;
- break;
- case 100: uuser->deleted=(char)i2;
- break;
- case 101: uuser->arq=(char)i2;
- break;
- case 102: uuser->twit=(char)i2;
- break;
- case 103: uuser->ansimenus=(char)i2;
- break;
- case 104: uuser->gen1=(char)i2;
- break;
- case 105: uuser->gen2=(char)i2;
- break;
- case 106: uuser->gen3=(char)i2;
- break;
- case 107: uuser->attr2=(word)i2;
- break;
- case 108: if((char)i2<0 || (char)i2>9) break;
- i1=atol(var_trans(strtok(0,",\n")));
- uuser->stat[(char)i2]=(word)i1;
- break;
- case 109: uuser->upk=(unsigned long)i2;
- break;
- case 110: uuser->downk=(unsigned long)i2;
- break;
- case 111: uuser->upno=(word)i2;
- break;
- case 112: uuser->downno=(word)i2;
- break;
- case 113: uuser->posts=(word)i2;
- break;
- case 114: uuser->credit=(int)i2;
- break;
- case 115: uuser->violations=(char)i2;
- break;
- case 116: uuser->lastdate.da_mon=(char)i2;
- i2=atol(var_trans(strtok(0,",\n")));
- uuser->lastdate.da_day=(char)i2;
- i2=atol(var_trans(strtok(0,",\n")));
- uuser->lastdate.da_year=(int)i2;
- break;
- case 117: uuser->logondate.da_mon=(char)i2;
- i2=atol(var_trans(strtok(0,",\n")));
- uuser->logondate.da_day=(char)i2;
- i2=atol(var_trans(strtok(0,",\n")));
- uuser->logondate.da_year=(int)i2;
- break;
- case 118: uuser->lasttime.ti_hour=(char)i2;
- i2=atol(var_trans(strtok(0,",\n")));
- uuser->lasttime.ti_min=(char)i2;
- i2=atol(var_trans(strtok(0,",\n")));
- uuser->lasttime.ti_sec=(char)i2;
- uuser->lasttime.ti_hund=0;
- break;
- case 119: uuser->logontime.ti_hour=(char)i2;
- i2=atol(var_trans(strtok(0,",\n")));
- uuser->logontime.ti_min=(char)i2;
- i2=atol(var_trans(strtok(0,",\n")));
- uuser->logontime.ti_sec=(char)i2;
- uuser->logontime.ti_hund=0;
- break;
- case 120: uuser->times=(ulong)i2;
- break;
- case 121: uuser->callsperday=(word)i2;
- break;
- case 122: uuser->timepercall=(word)i2;
- break;
- case 123: uuser->totaltime=(word)i2;
- break;
- case 124: uuser->callstoday=(word)i2;
- break;
- case 125: uuser->timetoday=(word)i2;
- break;
- case 126: uuser->comptype=(char)i2;
- break;
- case 127: uuser->uktoday=(word)i2;
- break;
- case 128: uuser->dktoday=(word)i2;
- break;
- case 129: if((char)i2<0 || (char)i2>4) break;
- pp=var_trans(strtok(0,",\n"));
- strncpy(uuser->variable[(char)i2],pp,76);
- uuser->variable[(char)i2][75]=0;
- break;
- case 130: if((char)i2<0 || (char)i2>9) break;
- pp=var_trans(strtok(0,",\n"));
- uuser->numvars[(char)i2]=(word)i2;
- break;
- case 131: strncpy(mboard.name,pp,48);
- mboard.name[47]=0;
- break;
- case 132: strncpy(mboard.forceto,pp,36);
- mboard.forceto[35]=0;
- break;
- case 133: mboard.attr=(word)i2;
- break;
- case 134: mboard.max=(word)i2;
- break;
- case 135: mboard.number=(word)i2;
- break;
- case 136: mboard.substat1=(word)i2;
- break;
- case 137: mboard.substat2=(word)i2;
- break;
- case 138: strncpy(fboard.name,pp,47);
- fboard.name[46]=0;
- break;
- case 139: fboard.flags=(char)i2;
- break;
- case 140: strncpy(fboard.dpath,pp,79);
- fboard.dpath[78]=0;
- break;
- case 141: strncpy(fboard.upath,pp,79);
- fboard.upath[78]=0;
- break;
- case 142: if(uuser==&user)userno=(word)i2;
- else tempuserno=(word)i2;
- break;
- case 143: baud=(word)i2;
- break;
- case 144: pages=(char)i2;
- break;
- case 145: age=(char)i2;
- break;
- case 146: timer_off=(char)i2;
- break;
- case 147: if((char)i2<0 || (char)i2>9) break;
- pp=var_trans(strtok(0,",\n"));
- strncpy(variable[(char)i2],pp,82);
- variable[(char)i2][81]=0;
- break;
- case 148: if((char)i2<0 || (char)i2>9) break;
- pp=var_trans(strtok(0,",\n"));
- strncpy(event[(char)i2].filename,pp,13);
- event[(char)i2].filename[12]=0;
- pp=var_trans(strtok(0,",\n"));
- event[(char)i2].secsleft=(ulong)i2;
- break;
- case 149: if((word)i2>conf.nolmrs) break;
- pp=var_trans(strtok(0,",\n"));
- lastread[(word)i2]=(word)i1;
- break;
- /* case 150: strncpy(aftertimeout,pp,13);
- aftertimeout[12]=0;
- break;
- case 151: strncpy(aftercarrierloss,pp,13);
- aftercarrierloss[12]=0;
- break;
- case 152: strncpy(afternotime,pp,13);
- afternotime[12]=0;
- break;
- case 153: strncpy(afterlogoff,pp,13);
- afterlogoff[12]=0;
- break;
- case 154: strncpy(aftererror,pp,13);
- aftererror[12]=0;
- break;
- case 155: strncpy(promptfile,pp,81);
- promptfile[80]=0;
- if((p=strchr(promptfile,'.'))) *p=0;
- break;
- case 156: nid.node=(word)i2;
- break;
- case 157: nid.net=(word)i2;
- break;
- case 158: nid.zone=(word)i2;
- break;
- case 159: nid.type=(char)i2;
- break;
- */ case 171: strncpy(messpath,pp,79);
- messpath[78]=0;
- break;
- case 236: /* RESERVED */
- break;
- case 237: strncpy(conf.domain,pp,36);
- conf.domain[36]=0;
- break;
- case 238: strncpy(conf.alt_domain,pp,36);
- conf.alt_domain[35]=0;
- break;
- case 239: strncpy(to_domain,pp,36);
- to_domain[35]=0;
- break;
- case 240: nodenumber=(char)i2;
- break;
- case 241: user.id=(ulong)i2;
- break;
- case 242: user.node=(char)i2;
- break;
- case 243: other.id=(ulong)i2;
- break;
- case 244: other.node=(char)i2;
- break;
- case 245: conf.nextid=(ulong)i2;
- break;
- case 246: conf.RBBSorQBBS=(char)i2;
- break;
- case 247: user.hiok=(char)i2;
- break;
- case 248: other.hiok=(char)i2;
- break;
- /* case 249: strncpy(memoname,pp,80);
- memoname[79]=0;
- case 250: blksize=(word)i2;
- break;
- case 251: strncpy(lastmsgid,pp,80);
- lastmsgid[79]=0;
- break;
- case 252: strncpy(lastreply,pp,80);
- lastreply[79]=0;
- break; */
- case 253: strncpy(msginfo,pp,133);
- msginfo[132]=0;
- break;
- case 254: strncpy(assocfile,pp,133);
- assocfile[132]=0;
- break;
- case 255: user.lastmsgarea=(word)i2;
- break;
- case 256: other.lastmsgarea=(word)i2;
- break;
- case 257: user.pointid=(word)i2;
- break;
- case 258: other.pointid=(word)i2;
- break;
- }
- }
-
-