// ------------------------------------------------------------------ // GoldED+ // Copyright (C) 1990-1999 Odinn Sorensen // Copyright (C) 1999-2000 Alexander S. Aganichev // ------------------------------------------------------------------ // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License as // published by the Free Software Foundation; either version 2 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, // MA 02111-1307 USA // ------------------------------------------------------------------ // $Id$ // ------------------------------------------------------------------ // Configuration functions, part 6. // ------------------------------------------------------------------ #include #include // ------------------------------------------------------------------ extern char* val; // ------------------------------------------------------------------ void CfgMsglistfirst() { bool flag = GetYesno(val); if(cfgingroup) CFG->grp.AddItm(GRP_MSGLISTFIRST, flag); else CFG->msglistfirst = flag; } // ------------------------------------------------------------------ void CfgMsglistheader() { bool flag = GetYesno(val); if(cfgingroup) CFG->grp.AddItm(GRP_MSGLISTHEADER, flag); else CFG->msglistheader = flag; } // ------------------------------------------------------------------ void CfgMsglistwidesubj() { bool flag = GetYesno(val); if(cfgingroup) CFG->grp.AddItm(GRP_MSGLISTWIDESUBJ, flag); else CFG->msglistwidesubj = flag; } // ------------------------------------------------------------------ void CfgNamesfile() { strcpy(CFG->namesfile, val); } // ------------------------------------------------------------------ void CfgNickname() { Name buf; strxcpy(buf, val, sizeof(buf)); if(cfgingroup) CFG->grp.AddItm(GRP_NICKNAME, buf, strlen(buf)+1); else strcpy(CFG->nickname, buf); } // ------------------------------------------------------------------ void CfgNetname() { Name buf; strxcpy(buf, val, sizeof(buf)); if(cfgingroup) CFG->grp.AddItm(GRP_NETNAME, buf, strlen(buf)+1); else strcpy(CFG->netname, buf); } // ------------------------------------------------------------------ void CfgNodelist() { // Only used by GoldNODE } // ------------------------------------------------------------------ void CfgNodepath() { PathCopy(CFG->nodepath, val); } // ------------------------------------------------------------------ void CfgNodepathfd() { PathCopy(CFG->nodepathfd, val); } // ------------------------------------------------------------------ void CfgNodepathv7() { PathCopy(CFG->nodepathv7, val); } // ------------------------------------------------------------------ extern char v7nodeflags[16][9]; void CfgNodev7flags() { GTok t; char* flagstring = t.First(val); char* flagvals = t.Next(); uint flagval; if(tolower(*flagvals) == 'b') flagval = atoi(flagvals+1); else { flagval = atoi(flagvals); switch(flagval) { case 32: flagval = 5; break; case 64: flagval = 6; break; case 128: flagval = 7; break; case 256: flagval = 8; break; case 512: flagval = 9; break; case 1024: flagval = 10; break; case 2048: flagval = 11; break; case 8192: flagval = 13; break; case 16384: flagval = 14; break; default: flagval = 0; } } if(flagval) strcpy(stpcpy(v7nodeflags[flagval], flagstring), ","); } // ------------------------------------------------------------------ extern char v7modemtype[8][9]; void CfgNodev7modem() { GTok t; char* modemstring = t.First(val); char* modemvals = t.Next(); int modemval; if(tolower(*modemvals) == 'b') modemval = atoi(modemvals+1); else { modemval = atoi(modemvals); switch(modemval) { case 1: modemval = 0; break; case 2: modemval = 1; break; case 4: modemval = 2; break; case 8: modemval = 3; break; case 16: modemval = 4; break; case 32: modemval = 5; break; case 64: modemval = 6; break; case 128: modemval = 7; break; default: modemval = -1; } } if(modemval >= 0) strcat(stpcpy(v7modemtype[modemval], modemstring), ","); } // ------------------------------------------------------------------ void CfgOrganization() { INam buf; strxcpy(buf, val, sizeof(buf)); if(cfgingroup) CFG->grp.AddItm(GRP_ORGANIZATION, buf, strlen(buf)+1); else strcpy(CFG->organization, buf); } // ------------------------------------------------------------------ void CfgOrigin(const char* v) { char buf[256]; val = strxcpy(buf, v, sizeof(buf)); CfgOrigin(); } void CfgOrigin() { if(not strblank(val)) { StripQuotes(val); if(cfgingroup) CFG->grp.AddItm(GRP_ORIGIN, val, strlen(val)+1); else CFG->origin.push_back(val); } } // ------------------------------------------------------------------ void CfgOutboundpath() { PathCopy(CFG->outboundpath, val); } // ------------------------------------------------------------------ void CfgOutputfile() { Path buf; strxcpy(buf, val, sizeof(buf)); if(cfgingroup) CFG->grp.AddItm(GRP_OUTPUTFILE, buf, strlen(buf)+1); else strcpy(CFG->outputfile, buf); } void CfgPathreportfile() { PathCopy(CFG->pathreportfile, val); } // ------------------------------------------------------------------ void CfgPcboardpath(const char *path, bool force) { if(force or strblank(CFG->pcboardpath)) MapPath(PathCopy(CFG->pcboardpath, path)); } void CfgPcboardpath() { CfgPcboardpath(val, true); } // ------------------------------------------------------------------ void CfgPcboarduserno() { CFG->pcboarduserno = atoi(val); } // ------------------------------------------------------------------ void CfgPersonalmail() { if(striinc("STARTUP", val)) CFG->personalmail |= PM_STARTUP; if(striinc("NOTSTARTUP", val)) CFG->personalmail &= ~PM_STARTUP; if(striinc("ALLNAMES", val)) CFG->personalmail |= PM_ALLNAMES; if(striinc("NOTALLNAMES", val)) CFG->personalmail &= ~PM_ALLNAMES; if(striinc("LISTONLY", val)) CFG->personalmail |= PM_LISTONLY; if(striinc("NOTLISTONLY", val)) CFG->personalmail &= ~PM_LISTONLY; } // ------------------------------------------------------------------ void CfgPlay() { Path buf; strxcpy(buf, val, sizeof(buf)); if(cfgingroup) CFG->grp.AddItm(GRP_PLAY, buf, strlen(buf)+1); else FileToGPlay(&CFG->play, buf); } // ------------------------------------------------------------------ void CfgPrintdevice() { strcpy(CFG->printdevice, val); } // ------------------------------------------------------------------ void CfgPrintinit() { CvtPrnstr(CFG->printinit, val); } // ------------------------------------------------------------------ void CfgPrintlength() { CFG->printlength = atoi(val); } // ------------------------------------------------------------------ void CfgPrintmargin() { CFG->printmargin = atoi(val); } // ------------------------------------------------------------------ void CfgPrintreset() { CvtPrnstr(CFG->printreset, val); } // ------------------------------------------------------------------ void CfgQuotebuffile() { Path buf; strxcpy(buf, val, sizeof(buf)); if(cfgingroup) CFG->grp.AddItm(GRP_QUOTEBUFFILE, buf, strlen(buf)+1); else strcpy(CFG->quotebuffile, buf); } // ------------------------------------------------------------------ void CfgQuotebufmode() { if(strieql(val, "ASK")) CFG->quotebufmode = QBUF_ASK; else if(strieql(val, "APPEND")) CFG->quotebufmode = QBUF_APPEND; else if(strieql(val, "OVERWRITE")) CFG->quotebufmode = QBUF_OVERWRITE; } // ------------------------------------------------------------------ void CfgQuotechars() { char buf[11]; strxcpy(buf, StripQuotes(val), sizeof(buf)); if(cfgingroup) CFG->grp.AddItm(GRP_QUOTECHARS, buf, strlen(buf)+1); else strcpy(CFG->quotechars, buf); } // ------------------------------------------------------------------ void CfgQuotectrl() { int ctrlinfo = CI_NONE; if(striinc("NO", val)) ctrlinfo = CI_NONE; else if(striinc("YES", val)) ctrlinfo = CI_TEAR|CI_ORIG; else { if(striinc("TEARLINE", val)) ctrlinfo |= CI_TEAR; if(striinc("ORIGIN", val)) ctrlinfo |= CI_ORIG; } if(cfgingroup) CFG->grp.AddItm(GRP_QUOTECTRL, ctrlinfo); else CFG->quotectrl = ctrlinfo; } // ------------------------------------------------------------------ void CfgQuotemargin() { CFG->quotemargin = atoi(val); } // ------------------------------------------------------------------