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. */
- /* */
- /*--------------------------------------------------------------------------*/
- /***************************************************************************/
- /* Get values of XBBS system variables */
- /***************************************************************************/
-
- #include "msg.h"
- #include "xext.h"
-
-
-
- /* Get system variables */
- char * pascal sysval (char *rest) {
-
- long i1,result;
- char *p;
- static char pp[33];
- struct _user *uuser;
-
- result=-2; /* Error */
- uuser=&user;
- stripcr(rest);
- p=strtok(rest,",");
- p=var_trans(p);
- i1=atol(p);
- result=0;
- if(i1>171L && i1<236L) {
- i1-=93L;
- uuser=&other;
- }
- switch((int)i1) {
- case 0: return msg.subj;
- case 1: return msg.to;
- case 2: return msg.from;
- case 3: return msg.date;
- case 4: result=(long)msg.attr;
- break;
- case 5: result=(long)msg.m_attr;
- break;
- case 6: result=(long)msg.times;
- break;
- case 7: result=(long)msg.cost;
- break;
- case 8: result=(long)msg.orig;
- break;
- case 9: result=(long)msg.orig_net;
- break;
- case 10: result=(long)msg.o_zone;
- break;
- case 11: result=(long)msg.o_point;
- break;
- case 12: result=(long)msg.dest;
- break;
- case 13: result=(long)msg.dest_net;
- break;
- case 14: result=(long)msg.d_zone;
- break;
- case 15: result=(long)msg.d_point;
- break;
- case 16: return msg.indate;
- case 17: return conf.system;
- case 18: return conf.sysop;
- case 19: return conf.logfile;
- case 20: result=(long)conf.commport;
- break;
- case 21: result=(long)conf.node;
- break;
- case 22: result=(long)conf.net;
- break;
- case 23: result=(long)conf.zone;
- break;
- case 24: result=(long)conf.alt_node;
- break;
- case 25: result=(long)conf.alt_net;
- break;
- case 26: result=(long)conf.alt_zone;
- break;
- case 27: return conf.homepath;
- case 28: return conf.menupath;
- case 29: return conf.messpath;
- case 30: result=(long)conf.idleseconds;
- break;
- case 31: result=(long)conf.pages;
- break;
- case 32: result=(long)conf.sysopin;
- break;
- case 33: result=(long)conf.touchup;
- break;
- case 34: result=(long)conf.uptime;
- break;
- case 35: result=(long)conf.downtime;
- break;
- case 36: result=(long)conf.dvideo;
- break;
- case 37: result=(long)conf.bvideo;
- break;
- case 38: result=(long)conf.bioswrites;
- break;
- case 39: result=(long)conf.debug;
- break;
- case 40: result=(long)conf.ansiavail;
- break;
- case 41: result=(long)conf.whichstat;
- break;
- case 42: result=(long)conf.promptsay;
- break;
- case 43: return conf.edansi;
- case 44: return conf.edline;
- case 45: return conf.edlocal;
- case 46: result=(long)conf.ansibaud;
- break;
- case 47: return conf.quotestring;
- case 48: result=(long)conf.callcount;
- break;
- case 49: return conf.lastcaller;
- case 50: result=(long)conf.netmailboard;
- break;
- case 51: result=(long)conf.altnetboard;
- break;
- case 52: return conf.origin;
- case 53: result=(long)conf.carbons;
- break;
- case 54: p=var_trans(strtok(0,",\n"));
- i1=atol(p);
- if((char)i1<0 || (char)i1>9) break;
- return conf.jumpfile[(char)i1];
- case 55: p=var_trans(strtok(0,",\n"));
- i1=atol(p);
- if((char)i1<0 || (char)i1>9) break;
- return conf.jumpkey[(char)i1];
- case 56: p=var_trans(strtok(0,",\n"));
- i1=atol(p);
- if((char)i1<0 || (char)i1>9) break;
- return conf.subfile[(char)i1];
- case 57: p=var_trans(strtok(0,",\n"));
- i1=atol(p);
- if((char)i1<0 || (char)i1>9) break;
- return conf.subkey[(char)i1];
- case 58: result=(long)conf.nolmrs;
- break;
- case 59: result=(long)conf.quote_pos;
- break;
- case 60: return conf.quote_file;
- case 61: result=(long)conf.startat;
- break;
- case 62: result=(long)conf.numcomps;
- break;
- case 63: return conf.edgraph;
- case 64: result=(long)conf.comments;
- break;
- case 65: result=(long)conf.purgebaud;
- break;
- case 66: result=(long)conf.genphone;
- break;
- case 67: result=(long)conf.genstatezip;
- break;
- case 68: result=(long)conf.share;
- break;
- case 69: result=(long)conf.fastANSI;
- break;
- case 70: result=(long)conf.logmenu;
- break;
- case 71: result=(long)conf.logfiles;
- break;
- case 72: result=(long)conf.logmsg;
- break;
- case 73: result=(long)conf.logtext;
- break;
- case 74: return conf.nodelist;
- case 75: result=(long)conf.lastusernum;
- break;
- case 76: *pp=conf.useswapdisk;
- pp[1]=0;
- return pp;
- case 77: result=(long)conf.LIMEMS;
- break;
- case 78: result=(long)conf.swap;
- break;
- case 79: return uuser->name;
- case 80: return uuser->handle;
- case 81: sprintf(pp,"%02hu/%02hu/%04u",uuser->birthdate.da_mon,uuser->birthdate.da_day,uuser->birthdate.da_year);
- return pp;
- case 82: return uuser->password;
- case 83: return uuser->city;
- case 84: return uuser->state;
- case 85: return uuser->zip;
- case 86: return uuser->phone1;
- case 87: return uuser->phone2;
- case 88: result=(long)uuser->length;
- break;
- case 89: result=(long)uuser->cold;
- break;
- case 90: result=(long)uuser->width;
- break;
- case 91: result=(long)uuser->graphics;
- break;
- case 92: result=(long)uuser->fullscreen;
- break;
- case 93: result=(long)uuser->scrnclr;
- break;
- case 94: result=(long)uuser->commodore;
- break;
- case 95: result=(long)uuser->expert;
- break;
- case 96: result=(long)uuser->more;
- break;
- case 97: result=(long)uuser->ignorehrs;
- break;
- case 98: result=(long)uuser->ignorerat;
- break;
- case 99: result=(long)uuser->nokill;
- break;
- case 100: result=(long)uuser->deleted;
- break;
- case 101: result=(long)uuser->arq;
- break;
- case 102: result=(long)uuser->twit;
- break;
- case 103: result=(long)uuser->ansimenus;
- break;
- case 104: result=(long)uuser->gen1;
- break;
- case 105: result=(long)uuser->gen2;
- break;
- case 106: result=(long)uuser->gen3;
- break;
- case 107: result=(long)uuser->attr2;
- break;
- case 108: p=var_trans(strtok(0,",\n"));
- i1=atol(p);
- if((char)i1<0 || (char)i1>9) break;
- result=(long)uuser->stat[(char)i1];
- break;
- case 109: result=(long)uuser->upk;
- break;
- case 110: result=(long)uuser->downk;
- break;
- case 111: result=(long)uuser->upno;
- break;
- case 112: result=(long)uuser->downno;
- break;
- case 113: result=(long)uuser->posts;
- break;
- case 114: result=(long)uuser->credit;
- break;
- case 115: result=(long)uuser->violations;
- break;
- case 116: sprintf(pp,"%02hu/%02hu/%04u",uuser->lastdate.da_mon,uuser->lastdate.da_day,uuser->lastdate.da_year);
- return pp;
- case 117: sprintf(pp,"%02hu/%02hu/%04u",uuser->logondate.da_mon,uuser->logondate.da_day,uuser->logondate.da_year);
- return pp;
- case 118: sprintf(pp,"%02u:%02u:%02u",uuser->lasttime.ti_hour,uuser->lasttime.ti_min,uuser->lasttime.ti_sec);
- return pp;
- case 119: sprintf(pp,"%02u:%02u:%02u",uuser->logontime.ti_hour,uuser->logontime.ti_min,uuser->logontime.ti_sec);
- return pp;
- case 120: result=(long)uuser->times;
- break;
- case 121: result=(long)uuser->callsperday;
- break;
- case 122: result=(long)uuser->timepercall;
- break;
- case 123: result=(long)uuser->totaltime;
- break;
- case 124: result=(long)uuser->callstoday;
- break;
- case 125: result=(long)uuser->timetoday;
- break;
- case 126: result=(long)uuser->comptype;
- break;
- case 127: result=(long)uuser->uktoday;
- break;
- case 128: result=(long)uuser->dktoday;
- break;
- case 129: p=var_trans(strtok(0,",\n"));
- i1=atol(p);
- if((char)i1<0 || (char)i1>4) break;
- return uuser->variable[(char)i1];
- case 130: p=var_trans(strtok(0,",\n"));
- i1=atol(p);
- if((char)i1<0 || (char)i1>9) break;
- result=(long)uuser->numvars[(char)i1];
- break;
- case 131: return mboard.name;
- case 132: return mboard.forceto;
- case 133: result=(long)mboard.attr;
- break;
- case 134: result=(long)mboard.max;
- break;
- case 135: result=(long)mboard.number;
- break;
- case 136: result=(long)mboard.substat1;
- break;
- case 137: result=(long)mboard.substat2;
- break;
- case 138: return fboard.name;
- case 139: result=(long)fboard.flags;
- break;
- case 140: return fboard.dpath;
- case 141: return fboard.upath;
- case 142: if(uuser==&user)result=(long)userno;
- else result=(long)tempuserno;
- break;
- case 143: result=(long)baud;
- break;
- case 144: result=(long)pages;
- break;
- case 145: result=(long)age;
- break;
- case 146: result=(long)timer_off;
- break;
- case 147: p=var_trans(strtok(0,",\n"));
- i1=atol(p);
- if((char)i1<0 || (char)i1>9) break;
- return variable[(char)i1];
- case 148: p=var_trans(strtok(0,",\n"));
- i1=atol(p);
- if((char)i1<0 || (char)i1>9) break;
- result=(long)event[(char)i1].secsleft;
- return event[(char)i1].filename;
- case 149: p=var_trans(strtok(0,",\n"));
- i1=atol(p);
- if((word)i1>conf.nolmrs) break;
- result=(long)lastread[(word)i1];
- break;
- /* case 150: return aftertimeout;
- case 151: return aftercarrierloss;
- case 152: return afternotime;
- case 153: return afterlogoff;
- case 154: return aftererror;
- case 155: return promptfile;
- case 156: result=(long)nid.node;
- break;
- case 157: result=(long)nid.net;
- break;
- case 158: result=(long)nid.zone;
- break;
- case 159: result=(long)nid.type;
- break;
- case 160: result=(long)nif.node;
- break;
- case 161: result=(long)nif.net;
- break;
- case 162: result=(long)nif.zone;
- break;
- case 163: result=(long)nif.type;
- break;
- case 164: result=(long)nif.flags;
- break;
- case 165: result=(long)nif.baud;
- break;
- case 166: result=(long)nif.cost;
- break;
- case 167: return nif.name;
- case 168: return nif.city;
- case 169: return nif.phone;
- case 170: return nif.password; */
- case 171: return messpath;
- case 236: return ""; /* RESERVED */
- case 237: return conf.domain;
- case 238: return conf.alt_domain;
- case 239: return to_domain;
- case 240: result=(long)nodenumber;
- break;
- case 241: result=(long)user.id;
- break;
- case 242: result=(long)user.node;
- break;
- case 243: result=(long)other.id;
- break;
- case 244: result=(long)other.node;
- break;
- case 245: result=(long)conf.nextid;
- break;
- case 246: result=(long)conf.RBBSorQBBS;
- break;
- case 247: result=(long)user.hiok;
- break;
- case 248: result=(long)other.hiok;
- break;
- /* case 249: return memoname;
- case 250: result=(long)blksize;
- break;
- case 251: return lastmsgid;
- case 252: return lastreply; */
- case 253: return msginfo;
- case 254: return assocfile;
- case 255: result=(long)user.lastmsgarea;
- break;
- case 256: result=(long)other.lastmsgarea;
- break;
- case 257: result=(long)user.pointid;
- break;
- case 258: result=(long)other.pointid;
- break;
- }
- sprintf(pp,"%lu",result);
- return pp;
- }
-
-