Crashecho support added, few Mappath fixes, one more range check in editor fixed

This commit is contained in:
Alexander S. Aganichev 2001-05-05 21:41:41 +00:00
parent a7b00c4dc0
commit cf69e9116e
48 changed files with 226 additions and 198 deletions

View File

@ -1,7 +1,11 @@
# Uncomment to disable AdeptXBBS support # Uncomment to disable AdeptXBBS support
#CPPFLAGS+=-DGCFG_NOXBBS ifneq ($(findstring EMX, $(PATH)), EMX)
CPPFLAGS+=-DGCFG_NOXBBS
endif
# Uncomment to disable CrashMail support # Uncomment to disable CrashMail support
#CPPFLAGS+=-DGCFG_NOCMAIL #CPPFLAGS+=-DGCFG_NOCMAIL
# Uncomment to disable CrashEcho support
#CPPFLAGS+=-DGCFG_NOCECHO
# Uncomment to disable D'Bridge support # Uncomment to disable D'Bridge support
#CPPFLAGS+=-DGCFG_NODB #CPPFLAGS+=-DGCFG_NODB
# Uncomment to disable Dutchie support # Uncomment to disable Dutchie support
@ -50,6 +54,8 @@
#CPPFLAGS+=-DGCFG_NORAECHO #CPPFLAGS+=-DGCFG_NORAECHO
# Uncomment to disable RemoteAccess support # Uncomment to disable RemoteAccess support
#CPPFLAGS+=-DGCFG_NORA #CPPFLAGS+=-DGCFG_NORA
# Uncomment to disable SpaceTosser support
CPPFLAGS+=-DGCFG_NOSPCT
# Uncomment to disable Squish support # Uncomment to disable Squish support
#CPPFLAGS+=-DGCFG_NOSQSH #CPPFLAGS+=-DGCFG_NOSQSH
# Uncomment to disable SuperBBS support # Uncomment to disable SuperBBS support
@ -66,5 +72,3 @@
#CPPFLAGS+=-DGCFG_NOWMAIL #CPPFLAGS+=-DGCFG_NOWMAIL
# Uncomment to disable xMail support # Uncomment to disable xMail support
#CPPFLAGS+=-DGCFG_NOXMAIL #CPPFLAGS+=-DGCFG_NOXMAIL
# Uncomment to disable SpaceTosser support
#CPPFLAGS+=-DGCFG_NOSPCT

View File

@ -15,4 +15,6 @@
# Uncomment to disable WildCat! messagebase format # Uncomment to disable WildCat! messagebase format
#CPPFLAGS+=-DGMB_NOWCAT #CPPFLAGS+=-DGMB_NOWCAT
# Uncomment to disable AdeptXBBS messagebase format # Uncomment to disable AdeptXBBS messagebase format
#CPPFLAGS+=-DGMB_NOXBBS ifneq ($(findstring EMX, $(PATH)), EMX)
CPPFLAGS+=-DGMB_NOXBBS
endif

View File

@ -12,6 +12,8 @@ ______________________________________________________________________
Notes for GoldED+ 1.1.5, April xx 2001 Notes for GoldED+ 1.1.5, April xx 2001
______________________________________________________________________ ______________________________________________________________________
+ Thanks to Alexey Froloff added support for CrashEcho tosser.
- Fixed Y2K bug in WildCat! and PCBoard bases. - Fixed Y2K bug in WildCat! and PCBoard bases.
- Fixed cursor position in XlatImport menu when Auto encoding - Fixed cursor position in XlatImport menu when Auto encoding

View File

@ -387,6 +387,8 @@ void AreaList::GetAreafile(char* value) {
AFILE->fidomsgtype = CFG->fidomsgtype; AFILE->fidomsgtype = CFG->fidomsgtype;
AFILE->ra2usersbbs = CFG->ra2usersbbs; AFILE->ra2usersbbs = CFG->ra2usersbbs;
AFILE->squishuserno = CFG->squishuserno; AFILE->squishuserno = CFG->squishuserno;
AFILE->areapath = CFG->areapath;
AFILE->pcboardpath = CFG->pcboardpath;
if(not CFG->aka.empty()) if(not CFG->aka.empty())
AFILE->primary_aka = CFG->aka[0].addr; AFILE->primary_aka = CFG->aka[0].addr;
@ -399,17 +401,6 @@ void AreaList::GetAreafile(char* value) {
AFILE->attribsemail = CFG->attribsemail; AFILE->attribsemail = CFG->attribsemail;
AFILE->attribslocal = CFG->attribslocal; AFILE->attribslocal = CFG->attribslocal;
AFILE->areapath = CFG->areapath;
AFILE->adeptxbbspath = CFG->adeptxbbspath;
AFILE->jampath = CFG->jampath;
AFILE->squishuserpath = CFG->squishuserpath;
AFILE->hudsonpath = CFG->hudsonpath;
AFILE->goldbasepath = CFG->goldbasepath;
AFILE->pcboardpath = CFG->pcboardpath;
AFILE->ezycom_msgbasepath = CFG->ezycom.msgbasepath;
AFILE->ezycom_userbasepath = CFG->ezycom.userbasepath;
AFILE->fidolastread = CFG->fidolastread;
AFILE->ReadAreafile(crcval, value); AFILE->ReadAreafile(crcval, value);
CFG->ra2usersbbs = AFILE->ra2usersbbs; CFG->ra2usersbbs = AFILE->ra2usersbbs;
@ -1083,7 +1074,7 @@ Area::~Area() {
char* MapPath(char* map, bool reverse) { char* MapPath(char* map, bool reverse) {
Path buf,cmap; Path buf, cmap;
strxcpy(cmap, map, sizeof(Path)); strxcpy(cmap, map, sizeof(Path));
if(reverse) if(reverse)

View File

@ -61,25 +61,25 @@ bool ReadGoldedCfg(int& force) {
if(*CFG->squishuserpath == NUL) { if(*CFG->squishuserpath == NUL) {
char* ptr = getenv("MAXIMUS"); char* ptr = getenv("MAXIMUS");
if(ptr) { if(ptr != NULL) {
if(is_dir(ptr)) CfgSquishuserpath(ptr);
AddBackslash(strcpy(CFG->squishuserpath, ptr));
} }
else { else {
ptr = getenv("SQUISH"); ptr = getenv("SQUISH");
if(ptr) if(ptr != NULL)
AddBackslash(strcpy(CFG->squishuserpath, ptr)); CfgSquishuserpath(ptr);
else else
strcpy(CFG->squishuserpath, CFG->areapath); CfgSquishuserpath(CFG->areapath);
} }
} }
if(*CFG->hudsonpath == NUL) strcpy(CFG->hudsonpath, CFG->goldpath); CfgHudsonpath(CFG->goldpath);
if(*CFG->hudsonsyspath == NUL) strcpy(CFG->hudsonsyspath, CFG->hudsonpath); if(*CFG->hudsonsyspath == NUL)
if(*CFG->goldbasepath == NUL) strcpy(CFG->goldbasepath, CFG->hudsonpath); strcpy(CFG->hudsonsyspath, CFG->hudsonpath);
if(*CFG->goldbasesyspath == NUL) strcpy(CFG->goldbasesyspath, CFG->goldbasepath); CfgGoldbasepath(CFG->hudsonpath);
if(*CFG->jampath == NUL) if(*CFG->goldbasesyspath == NUL)
strcpy(CFG->jampath, CFG->hudsonpath); strcpy(CFG->goldbasesyspath, CFG->goldbasepath);
CfgJampath(CFG->hudsonpath);
MakePathname(CFG->goldcfg, CFG->goldpath, CFG->goldcfg); MakePathname(CFG->goldcfg, CFG->goldpath, CFG->goldcfg);
MakePathname(CFG->helpcfg.fn, CFG->goldpath, CFG->helpcfg.fn); MakePathname(CFG->helpcfg.fn, CFG->goldpath, CFG->helpcfg.fn);
@ -318,7 +318,7 @@ void InstallDetect(char* path) {
if(fp) { if(fp) {
if(*path) { if(*path) {
PathCopy(CFG->areapath, path); MapPath(PathCopy(CFG->areapath, path));
fprintf(fp, "AREAPATH %s\n", path); fprintf(fp, "AREAPATH %s\n", path);
} }

View File

@ -141,9 +141,15 @@ void CfgAddressmacro() {
// ------------------------------------------------------------------ // ------------------------------------------------------------------
void CfgAdeptxbbspath(const char *path, bool force) {
if (force or strblank(CFG->adeptxbbspath))
MapPath(PathCopy(CFG->adeptxbbspath, path));
}
void CfgAdeptxbbspath() { void CfgAdeptxbbspath() {
PathCopy(CFG->adeptxbbspath, val); CfgAdeptxbbspath(val, true);
} }
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -359,7 +365,7 @@ void CfgArealisttype() {
void CfgAreapath() { void CfgAreapath() {
PathCopy(CFG->areapath, val); MapPath(PathCopy(CFG->areapath, val));
} }
// ------------------------------------------------------------------ // ------------------------------------------------------------------

View File

@ -148,16 +148,28 @@ void CfgExternutil() {
// ------------------------------------------------------------------ // ------------------------------------------------------------------
void CfgEzycommsgbase(const char *path, bool force) {
if(force or strblank(CFG->ezycom.msgbasepath))
MapPath(PathCopy(CFG->ezycom.msgbasepath, path));
}
void CfgEzycommsgbase() { void CfgEzycommsgbase() {
PathCopy(CFG->ezycom.msgbasepath, val); CfgEzycommsgbase(val, true);
} }
// ------------------------------------------------------------------ // ------------------------------------------------------------------
void CfgEzycomuserbase(const char *path, bool force) {
if(force or strblank(CFG->ezycom.userbasepath))
MapPath(PathCopy(CFG->ezycom.userbasepath, path));
}
void CfgEzycomuserbase() { void CfgEzycomuserbase() {
PathCopy(CFG->ezycom.userbasepath, val); CfgEzycomuserbase(val, true);
} }
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -169,9 +181,14 @@ void CfgEzycomuserno() {
// ------------------------------------------------------------------ // ------------------------------------------------------------------
void CfgFidolastread(const char *path) {
MapPath(strxcpy(CFG->fidolastread, val, sizeof(Path)));
}
void CfgFidolastread() { void CfgFidolastread() {
strcpy(CFG->fidolastread, val); CfgFidolastread(val);
} }
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -286,9 +303,15 @@ void CfgGermankeyboard() {
// ------------------------------------------------------------------ // ------------------------------------------------------------------
void CfgGoldbasepath(const char *path, bool force) {
if(force or strblank(CFG->goldbasepath))
MapPath(PathCopy(CFG->goldbasepath, path));
}
void CfgGoldbasepath() { void CfgGoldbasepath() {
PathCopy(CFG->goldbasepath, val); CfgGoldbasepath(val, true);
} }
// ------------------------------------------------------------------ // ------------------------------------------------------------------

View File

@ -44,9 +44,15 @@ void CfgHappybirthday() {
// ------------------------------------------------------------------ // ------------------------------------------------------------------
void CfgHudsonpath(const char *path, bool force) {
if(force or strblank(CFG->hudsonpath))
MapPath(PathCopy(CFG->hudsonpath, path));
}
void CfgHudsonpath() { void CfgHudsonpath() {
PathCopy(CFG->hudsonpath, val); CfgHudsonpath(val, true);
} }
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -286,9 +292,15 @@ void CfgInvalidate() {
// ------------------------------------------------------------------ // ------------------------------------------------------------------
void CfgJampath(const char *path, bool force) {
if(force or strblank(CFG->jampath))
MapPath(PathCopy(CFG->jampath, path));
}
void CfgJampath() { void CfgJampath() {
PathCopy(CFG->jampath, val); CfgJampath(val, true);
} }
// ------------------------------------------------------------------ // ------------------------------------------------------------------

View File

@ -240,9 +240,15 @@ void CfgPathreportfile() {
// ------------------------------------------------------------------ // ------------------------------------------------------------------
void CfgPcboardpath(const char *path, bool force) {
if(force or strblank(CFG->pcboardpath))
MapPath(PathCopy(CFG->pcboardpath, path));
}
void CfgPcboardpath() { void CfgPcboardpath() {
PathCopy(CFG->pcboardpath, val); CfgPcboardpath(val, true);
} }
// ------------------------------------------------------------------ // ------------------------------------------------------------------

View File

@ -42,9 +42,19 @@ void CfgSquishuserno() {
// ------------------------------------------------------------------ // ------------------------------------------------------------------
void CfgSquishuserpath(const char *path, bool force) {
if(force or strblank(CFG->squishuserpath)) {
MapPath(PathCopy(CFG->squishuserpath, path));
if(not is_dir(CFG->squishuserpath))
StripBackslash(CFG->squishuserpath);
}
}
void CfgSquishuserpath() { void CfgSquishuserpath() {
PathCopy(CFG->squishuserpath, val); CfgSquishuserpath(val, true);
} }
// ------------------------------------------------------------------ // ------------------------------------------------------------------

View File

@ -565,7 +565,7 @@ void IEclass::GoLeft() {
if(currline->prev) { if(currline->prev) {
GoUp(); GoUp();
GoEOL(); GoEOL();
if((currline->txt[col] == '\n') or not ((col == (maxcol + 1)) and (currline->txt[col-1] == ' '))) if((col != mincol) and ((currline->txt[col] == '\n') or not ((col == (maxcol + 1)) and (currline->txt[col-1] == ' '))))
col--; col--;
} }
} }

View File

@ -66,10 +66,10 @@ guserbase::guserbase() {
entry.fidoaddr.net = 5020; entry.fidoaddr.net = 5020;
entry.fidoaddr.node = 604; entry.fidoaddr.node = 604;
entry.fidoaddr.point = 19; entry.fidoaddr.point = 19;
strcpy(entry.iaddr, "aaganichev@netscape.net"); strcpy(entry.iaddr, "aaganichev@yandex.ru");
entry.prefer_internet = YES; entry.prefer_internet = YES;
entry.is_deleted = NO; entry.is_deleted = NO;
strcpy(entry.pseudo, "As\'ka"); strcpy(entry.pseudo, "");
strcpy(entry.organisation, "GoldED+ Development Team"); strcpy(entry.organisation, "GoldED+ Development Team");
strcpy(entry.snail1, "Zelenograd"); strcpy(entry.snail1, "Zelenograd");
strcpy(entry.snail2, "Moscow"); strcpy(entry.snail2, "Moscow");
@ -78,7 +78,7 @@ guserbase::guserbase() {
strcpy(entry.voicephone, "+7-(095)-536-2374"); strcpy(entry.voicephone, "+7-(095)-536-2374");
entry.faxphone[0] = NUL; entry.faxphone[0] = NUL;
entry.firstdate = entry.lastdate = entry.times = 0; entry.firstdate = entry.lastdate = entry.times = 0;
strcpy(entry.homepage, "http://asa.i-connect.ru"); strcpy(entry.homepage, "http://aaganichev.narod.ru");
entry.group = 0; entry.group = 0;
strcpy(entry.comment1, "GoldED+ Maintainer"); strcpy(entry.comment1, "GoldED+ Maintainer");
entry.comment2[0] = NUL; entry.comment2[0] = NUL;

View File

@ -28,7 +28,11 @@
#include <gtimall.h> #include <gtimall.h>
#include <gstrall.h> #include <gstrall.h>
#include <gfilutil.h> #include <gfilutil.h>
#if defined(__MINGW32__)
#include <sys/utime.h>
#else
#include <utime.h> #include <utime.h>
#endif
#if defined(__OS2__) #if defined(__OS2__)
#define INCL_BASE #define INCL_BASE
@ -207,28 +211,29 @@ const char* AddPath(const char* path, const char* file) {
void MakePathname(char* pathname, const char* path, const char* name) { void MakePathname(char* pathname, const char* path, const char* name) {
char newpath[GMAXPATH];
Path tmpname; Path tmpname;
Path tmppath;
strcpy(tmpname, name); strcpy(tmpname, name);
strcpy(tmppath, path);
if(strblank(tmpname)) { if(strblank(tmpname)) {
*pathname = NUL; *pathname = NUL;
return; return;
} }
strchg(tmpname, GOLD_WRONG_SLASH_CHR, GOLD_SLASH_CHR);
if(strpbrk(tmpname, GOLD_SLASH_STR)) {
strxcpy(pathname, tmpname, sizeof(Path));
}
else {
Path tmppath;
strcpy(tmppath, path);
strbtrim(tmppath); strbtrim(tmppath);
strchg(tmppath, GOLD_WRONG_SLASH_CHR, GOLD_SLASH_CHR); strchg(tmppath, GOLD_WRONG_SLASH_CHR, GOLD_SLASH_CHR);
strchg(tmpname, GOLD_WRONG_SLASH_CHR, GOLD_SLASH_CHR); if(*tmppath)
if(strpbrk(tmpname, GOLD_SLASH_STR)) AddBackslash(tmppath);
strschg_environ(strxcpy(pathname, tmpname, sizeof(Path))); strxmerge(pathname, sizeof(Path), tmppath, tmpname, NULL);
else {
strcpy(newpath, tmppath);
if(*newpath)
AddBackslash(newpath);
strxmerge(pathname, sizeof(Path), newpath, tmpname, NULL);
} }
strschg_environ(pathname);
} }

View File

@ -53,7 +53,6 @@ string& AddBackslash(string& p) {
void MakePathname(string& pathname, const string& path, const string& name) { void MakePathname(string& pathname, const string& path, const string& name) {
Path pn; Path pn;
strcpy(pn, pathname.c_str());
MakePathname(pn, path.c_str(), name.c_str()); MakePathname(pn, path.c_str(), name.c_str());
pathname = pn; pathname = pn;
} }

View File

@ -45,15 +45,6 @@ gareafile::gareafile() {
squishuserno = 0; squishuserno = 0;
areapath = NULL; areapath = NULL;
adeptxbbspath = NULL;
jampath = NULL;
squishuserpath = NULL;
hudsonpath = NULL;
goldbasepath = NULL;
pcboardpath = NULL;
ezycom_msgbasepath = NULL;
ezycom_userbasepath = NULL;
fidolastread = NULL;
} }
@ -321,6 +312,7 @@ bool gareafile::ReadAreafile(word crc, char* parameters) {
const word CRC_AREAS_BBS = 0xBCEC; const word CRC_AREAS_BBS = 0xBCEC;
const word CRC_AREASBBS = 0xF77C; const word CRC_AREASBBS = 0xF77C;
const word CRC_CRASHMAIL = 0x7551; const word CRC_CRASHMAIL = 0x7551;
const word CRC_CRASHECHO = 0xDDB9;
const word CRC_DBRIDGE = 0xD365; const word CRC_DBRIDGE = 0xD365;
const word CRC_DUTCHIE = 0x0B08; const word CRC_DUTCHIE = 0x0B08;
const word CRC_D_BRIDGE = 0x48DA; const word CRC_D_BRIDGE = 0x48DA;
@ -348,6 +340,7 @@ bool gareafile::ReadAreafile(word crc, char* parameters) {
const word CRC_RAECHO = 0x701F; const word CRC_RAECHO = 0x701F;
const word CRC_RA_ECHO = 0x4FDF; const word CRC_RA_ECHO = 0x4FDF;
const word CRC_REMOTEACCESS = 0xECD0; const word CRC_REMOTEACCESS = 0xECD0;
const word CRC_SPACETOSS = 0xD2A6;
const word CRC_SQUISH = 0xFCF6; const word CRC_SQUISH = 0xFCF6;
const word CRC_SUPERBBS = 0x497F; const word CRC_SUPERBBS = 0x497F;
const word CRC_TERMAIL = 0x147A; const word CRC_TERMAIL = 0x147A;
@ -364,7 +357,8 @@ bool gareafile::ReadAreafile(word crc, char* parameters) {
#endif #endif
case CRC_AREAS_BBS: case CRC_AREAS_BBS:
case CRC_AREASBBS: ReadAreasBBS(parameters); break; case CRC_AREASBBS: ReadAreasBBS(parameters); break;
#ifndef GCFG_NOCMAIL #if !defined(GCFG_NOCMAIL) || !defined(GCFG_NOCECHO)
case CRC_CRASHECHO:
case CRC_CRASHMAIL: ReadCrashmail(parameters); break; case CRC_CRASHMAIL: ReadCrashmail(parameters); break;
#endif #endif
#ifndef GCFG_NODB #ifndef GCFG_NODB
@ -446,6 +440,9 @@ bool gareafile::ReadAreafile(word crc, char* parameters) {
#ifndef GCFG_NOSBBS #ifndef GCFG_NOSBBS
case CRC_SUPERBBS: ReadSuperBBS(parameters); break; case CRC_SUPERBBS: ReadSuperBBS(parameters); break;
#endif #endif
#ifndef GCFG_NOSPCT
case CRC_SPACETOSS: ReadSpaceToss(parameters); break;
#endif
#ifndef GCFG_NOTERMAIL #ifndef GCFG_NOTERMAIL
case CRC_TMAIL: case CRC_TMAIL:
case CRC_TERMAIL: ReadTmail(parameters); break; case CRC_TERMAIL: ReadTmail(parameters); break;

View File

@ -220,12 +220,12 @@ protected:
Path pathprefix; Path pathprefix;
// Fidoconfig parser functions
#ifndef GCFG_NOFIDOCONF #ifndef GCFG_NOFIDOCONF
// Fidoconfig parser functions
void replace_slashes(char **key); void replace_slashes(char **key);
void gettok(char** key, char** val); void gettok(char** key, char** val);
#endif #endif
#ifndef GCFG_NOCMAIL #if !defined(GCFG_NOCMAIL) || !defined(GCFG_NOCECHO)
// Crashmail II parser function // Crashmail II parser function
bool jbstrcpy(char *dest, char *src, size_t maxlen, size_t *jbc); bool jbstrcpy(char *dest, char *src, size_t maxlen, size_t *jbc);
#endif #endif
@ -315,6 +315,9 @@ public:
int ra2usersbbs; int ra2usersbbs;
int squishuserno; int squishuserno;
const char *areapath;
const char *pcboardpath;
ftn_addr primary_aka; ftn_addr primary_aka;
ftn_attr attribsnet; ftn_attr attribsnet;
@ -323,24 +326,13 @@ public:
ftn_attr attribsemail; ftn_attr attribsemail;
ftn_attr attribslocal; ftn_attr attribslocal;
char* areapath;
char* adeptxbbspath;
char* jampath;
char* squishuserpath;
char* hudsonpath;
char* goldbasepath;
char* pcboardpath;
char* ezycom_msgbasepath;
char* ezycom_userbasepath;
char* fidolastread;
void GetAreasBBS(char* name, char* origin, char* options); void GetAreasBBS(char* name, char* origin, char* options);
void ReadAreasBBS(char* tag); void ReadAreasBBS(char* tag);
#ifndef GCFG_NOXBBS #ifndef GCFG_NOXBBS
void ReadAdeptXBBS(char* tag); void ReadAdeptXBBS(char* tag);
#endif #endif
#ifndef GCFG_NOCMAIL #if !defined(GCFG_NOCMAIL) || !defined(GCFG_NOCECHO)
void ReadCrashmail(char* tag); void ReadCrashmail(char* tag);
#endif #endif
#ifndef GCFG_NODB #ifndef GCFG_NODB
@ -415,6 +407,9 @@ public:
#if !defined(GCFG_NOSQSH) || !defined(GCFG_NOPARTOSS) #if !defined(GCFG_NOSQSH) || !defined(GCFG_NOPARTOSS)
void ReadSquish(char* tag); void ReadSquish(char* tag);
#endif #endif
#ifndef GCFG_NOSPCT
void ReadSpaceToss(char *tag);
#endif
#ifndef GCFG_NOSBBS #ifndef GCFG_NOSBBS
void ReadSuperBBS(char* tag); void ReadSuperBBS(char* tag);
#endif #endif
@ -450,6 +445,15 @@ void CfgUsername(char* value);
void ReadEcholist(char* value); void ReadEcholist(char* value);
void SetAreaDesc(char* echoid, char* desc); void SetAreaDesc(char* echoid, char* desc);
void CfgAdeptxbbspath(const char *path, bool force = false);
void CfgEzycommsgbase(const char *path, bool force = false);
void CfgEzycomuserbase(const char *path, bool force = false);
void CfgGoldbasepath(const char *path, bool force = false);
void CfgHudsonpath(const char *path, bool force = false);
void CfgJampath(const char *path, bool force = false);
void CfgPcboardpath(const char *path, bool force = false);
void CfgSquishuserpath(const char *path, bool force = false);
void CfgFidolastread(const char *path);
// ------------------------------------------------------------------ // ------------------------------------------------------------------
// Legacy area types // Legacy area types

View File

@ -21,7 +21,7 @@
// ------------------------------------------------------------------ // ------------------------------------------------------------------
// $Id$ // $Id$
// ------------------------------------------------------------------ // ------------------------------------------------------------------
// Read areas from Crashmail II // Read areas from Crashmail II/CrashEcho
// ------------------------------------------------------------------ // ------------------------------------------------------------------
#include <cstdlib> #include <cstdlib>
@ -71,7 +71,7 @@ bool gareafile::jbstrcpy(char *dest, char *src, size_t maxlen, size_t *jbc) {
// ------------------------------------------------------------------ // ------------------------------------------------------------------
// Read areas from Crashmail (echomail processor) // Read areas from Crashmail II/CrashEcho (echomail processor)
void gareafile::ReadCrashmail(char* tag) { void gareafile::ReadCrashmail(char* tag) {
@ -89,8 +89,7 @@ void gareafile::ReadCrashmail(char* tag) {
extractdirname(path, file); extractdirname(path, file);
if(*squishuserpath == NUL) CfgSquishuserpath(path);
PathCopy(squishuserpath, path);
FILE* fp = fsopen(file, "rb", sharemode); FILE* fp = fsopen(file, "rb", sharemode);
if(fp) { if(fp) {
@ -117,6 +116,7 @@ void gareafile::ReadCrashmail(char* tag) {
const word CRC_DOMAIN = 0xFFCA; const word CRC_DOMAIN = 0xFFCA;
const word CRC_GROUP = 0x1C9B; const word CRC_GROUP = 0x1C9B;
const word CRC_NETMAIL = 0xE42E; const word CRC_NETMAIL = 0xE42E;
const word CRC_NETMAILDIR = 0x180A;
const word CRC_SYSOP = 0x967F; const word CRC_SYSOP = 0x967F;
const word CRC_UNCONFIRMED = 0x195E; const word CRC_UNCONFIRMED = 0x195E;
@ -144,6 +144,24 @@ void gareafile::ReadCrashmail(char* tag) {
case CRC_DOMAIN: case CRC_DOMAIN:
jbstrcpy(domain, buf, 50, &jbcpos); jbstrcpy(domain, buf, 50, &jbcpos);
break; break;
#ifndef GCFG_NOCECHO
case CRC_NETMAILDIR:
if(aa.type != 0xff) {
if(not unconfirmed)
AddNewArea(aa);
aa.reset();
}
aa.aka = primary_aka;
aa.type = GMB_NET;
aa.attr = attribsnet;
aa.msgbase = fidomsgtype;
jbstrcpy(path, buf, sizeof(Path), &jbcpos);
aa.setpath(path);
aa.setdesc("CrashEcho Netmail");
aa.setautoid("NETMAIL");
unconfirmed = false;
break;
#endif
case CRC_AREA: case CRC_AREA:
case CRC_NETMAIL: case CRC_NETMAIL:
case CRC_LOCALAREA: case CRC_LOCALAREA:
@ -195,8 +213,7 @@ void gareafile::ReadCrashmail(char* tag) {
if(aa.type == 0xff) if(aa.type == 0xff)
break; break;
jbstrcpy(path, buf, sizeof(Path), &jbcpos); jbstrcpy(path, buf, sizeof(Path), &jbcpos);
strxcpy(buf, path, sizeof(Path)); aa.setpath(path);
aa.setpath(MapPath(buf));
break; break;
case CRC_DESCRIPTION: case CRC_DESCRIPTION:
jbstrcpy(tmp, buf, 100, &jbcpos); jbstrcpy(tmp, buf, 100, &jbcpos);

View File

@ -360,8 +360,7 @@ void gareafile::ReadDBridge(char* tag) {
for(; line <= 11; line++) for(; line <= 11; line++)
fgets(buf, 255, fp); fgets(buf, 255, fp);
strtrim(buf); strtrim(buf);
if(*hudsonpath == NUL) CfgHudsonpath(buf);
PathCopy(hudsonpath, MapPath(buf));
// Primary address // Primary address
for(; line <= 15; line++) for(; line <= 15; line++)

View File

@ -65,10 +65,8 @@ void gareafile::ReadEzycom102(FILE* fp, char* path, char* file, char* options) {
STRNP2C(constant->sysopname); STRNP2C(constant->sysopname);
STRNP2C(constant->sysopalias); STRNP2C(constant->sysopalias);
if(*ezycom_msgbasepath == NUL) CfgEzycommsgbase(config->msgpath);
AddBackslash(strcpy(ezycom_msgbasepath, MapPath(config->msgpath))); CfgEzycomuserbase(config->userbasepath);
if(*ezycom_userbasepath == NUL)
AddBackslash(strcpy(ezycom_userbasepath, MapPath(config->userbasepath)));
// Fido netmail directory // Fido netmail directory
if(not strblank(config->netmailpath)) { if(not strblank(config->netmailpath)) {

View File

@ -66,10 +66,8 @@ void gareafile::ReadEzycom110(FILE* fp, char* path, char* file, char* options) {
STRNP2C(constant->sysopname); STRNP2C(constant->sysopname);
STRNP2C(constant->sysopalias); STRNP2C(constant->sysopalias);
if(*ezycom_msgbasepath == NUL) CfgEzycommsgbase(config->msgpath);
AddBackslash(strcpy(ezycom_msgbasepath, MapPath(config->msgpath))); CfgEzycomuserbase(config->userbasepath);
if(*ezycom_userbasepath == NUL)
AddBackslash(strcpy(ezycom_userbasepath, MapPath(config->userbasepath)));
// Fido netmail directory // Fido netmail directory
if(not strblank(config->netmailpath)) { if(not strblank(config->netmailpath)) {

View File

@ -93,8 +93,7 @@ void gareafile::ReadFrontDoor(char* tag) {
fread(editor, sizeof(FD_Editor), 1, fp); fread(editor, sizeof(FD_Editor), 1, fp);
fread(shared, sizeof(FD_Shared), 1, fp); fread(shared, sizeof(FD_Shared), 1, fp);
//CfgUsername(shared->user[0].name); //CfgUsername(shared->user[0].name);
if(*hudsonpath == NUL) CfgHudsonpath(editor->qbase);
PathCopy(hudsonpath, MapPath(editor->qbase));
aa.reset(); aa.reset();
aa.aka = shared->aka[0]; aa.aka = shared->aka[0];
aa.type = GMB_NET; aa.type = GMB_NET;

View File

@ -48,8 +48,7 @@ void gareafile::ReadFastecho11x(int fh) {
//CfgUsername(cfg->sysops[u].name); //CfgUsername(cfg->sysops[u].name);
// Get Hudson msgbase path // Get Hudson msgbase path
if(*hudsonpath == NUL) CfgHudsonpath(cfg->MsgBase);
PathCopy(hudsonpath, MapPath(cfg->MsgBase));
// Setup aka list // Setup aka list
SysAddress* aka = (SysAddress*)throw_calloc(cfg->AkaCnt, sizeof(SysAddress)); SysAddress* aka = (SysAddress*)throw_calloc(cfg->AkaCnt, sizeof(SysAddress));

View File

@ -48,8 +48,7 @@ void gareafile::ReadFastecho141(int fh) {
//CfgUsername(cfg->sysops[u].name); //CfgUsername(cfg->sysops[u].name);
// Get Hudson msgbase path // Get Hudson msgbase path
if(*hudsonpath == NUL) CfgHudsonpath(cfg->MsgBase);
PathCopy(hudsonpath, MapPath(cfg->MsgBase));
// Setup aka list // Setup aka list
SysAddress* aka = (SysAddress*)throw_calloc(cfg->AkaCnt, sizeof(SysAddress)); SysAddress* aka = (SysAddress*)throw_calloc(cfg->AkaCnt, sizeof(SysAddress));

View File

@ -47,8 +47,7 @@ void gareafile::ReadFastecho142(int fh) {
read(fh, cfg, sizeof(CONFIG6)); read(fh, cfg, sizeof(CONFIG6));
// Get Hudson msgbase path // Get Hudson msgbase path
if(*hudsonpath == NUL) CfgHudsonpath(cfg->MsgBase);
PathCopy(hudsonpath, MapPath(cfg->MsgBase));
// Setup aka and origin lists // Setup aka and origin lists
SysAddress* aka = (SysAddress*)throw_calloc(cfg->AkaCnt, sizeof(SysAddress)); SysAddress* aka = (SysAddress*)throw_calloc(cfg->AkaCnt, sizeof(SysAddress));

View File

@ -120,7 +120,7 @@ void gareafile::ReadFidoPCB(char* tag) {
PathCopy(mailpath, val); PathCopy(mailpath, val);
break; break;
case CRC_PCBOARD: case CRC_PCBOARD:
PathCopy(pcboardpath, val); CfgPcboardpath(val);
break; break;
case CRC_LOST_MAIL: case CRC_LOST_MAIL:
PathCopy(lostmailpath, val); PathCopy(lostmailpath, val);

View File

@ -43,8 +43,7 @@ void gareafile::ReadFMail092(FILE* fp, char* path, char* file, char* options) {
fclose(fp); fclose(fp);
// Get Hudson msgbase path // Get Hudson msgbase path
if(*hudsonpath == NUL) CfgHudsonpath(cfg->bbsPath);
PathCopy(hudsonpath, MapPath(cfg->bbsPath));
// Opus-.MSG style netmail // Opus-.MSG style netmail
if(not strblank(cfg->netPath)) { if(not strblank(cfg->netPath)) {

View File

@ -44,8 +44,7 @@ void gareafile::ReadFMail098(FILE* fp, char* path, char* file, char* options) {
fclose(fp); fclose(fp);
// Get Hudson msgbase path // Get Hudson msgbase path
if(*hudsonpath == NUL) CfgHudsonpath(cfg->bbsPath);
PathCopy(hudsonpath, MapPath(cfg->bbsPath));
// .MSG style netmail // .MSG style netmail
if(not strblank(cfg->netPath)) { if(not strblank(cfg->netPath)) {

View File

@ -44,8 +44,7 @@ void gareafile::ReadFMail116(FILE* fp, char* path, char* file, char* options) {
fclose(fp); fclose(fp);
// Get Hudson msgbase path // Get Hudson msgbase path
if(*hudsonpath == NUL) CfgHudsonpath(cfg->bbsPath);
PathCopy(hudsonpath, MapPath(cfg->bbsPath));
// .MSG style netmail // .MSG style netmail
if(not strblank(cfg->netPath)) { if(not strblank(cfg->netPath)) {

View File

@ -102,11 +102,8 @@ void gareafile::ReadGEcho(char* tag) {
//for(n=0; n<USERS; n++) //for(n=0; n<USERS; n++)
//CfgUsername(gesetup->username[n]); //CfgUsername(gesetup->username[n]);
if(*hudsonpath == NUL) CfgHudsonpath(gesetup->hmbpath);
PathCopy(hudsonpath, MapPath(gesetup->hmbpath)); CfgJampath(gesetup->jampath);
if(*jampath == NUL)
PathCopy(jampath, MapPath(gesetup->jampath));
int _fidomsgtype = fidomsgtype; int _fidomsgtype = fidomsgtype;
@ -329,11 +326,6 @@ void gareafile::ReadGEcho(char* tag) {
} }
} }
// Set the JAM message base path
if(*gesetup->jampath)
PathCopy(jampath, gesetup->jampath);
// -------------------------------------------------------------- // --------------------------------------------------------------
MakePathname(file, gepath, "areafile.ge"); MakePathname(file, gepath, "areafile.ge");

View File

@ -334,18 +334,17 @@ void gareafile::ReadHPTFile(char* path, char* file, char* options, char* origin,
// Get path // Get path
gettok(&key, &val); gettok(&key, &val);
strxcpy(buf2, key, sizeof(buf2));
// If not pass-through // If not pass-through
if(not strieql("Passthrough", buf2)) { if(not strieql("Passthrough", key)) {
aa.setpath(MapPath(buf2)); aa.setpath(key);
aa.msgbase = fidomsgtype; aa.msgbase = fidomsgtype;
aa.groupid = group; aa.groupid = group;
gettok(&key, &val); gettok(&key, &val);
while(*key == '-' || strieql(key, "Squish") || strieql(key, "Jam")) { while((*key == '-') or strieql(key, "Squish") or strieql(key, "Jam")) {
if(strieql(key, "Squish")) if(strieql(key, "Squish"))
aa.msgbase = GMB_SQUISH; aa.msgbase = GMB_SQUISH;
@ -455,8 +454,7 @@ void gareafile::ReadHPT(char* tag) {
extractdirname(path, file); extractdirname(path, file);
if(*squishuserpath == NUL) CfgSquishuserpath(path);
PathCopy(squishuserpath, path);
ReadHPTFile(path, file, options, origin, defaultgroup); ReadHPTFile(path, file, options, origin, defaultgroup);
} }

View File

@ -52,11 +52,8 @@ void gareafile::ReadIMail160(char* options, char* file, char* impath) {
fread(CF, sizeof(im_config_type), 1, fp); fread(CF, sizeof(im_config_type), 1, fp);
fclose(fp); fclose(fp);
if(*jampath == NUL) CfgJampath(CF->echojam);
PathCopy(jampath, MapPath(CF->echojam)); CfgHudsonpath(CF->quickbbs);
if(*hudsonpath == NUL)
PathCopy(hudsonpath, MapPath(CF->quickbbs));
// Fido netmail // Fido netmail
if(not strblank(CF->netmail)) { if(not strblank(CF->netmail)) {

View File

@ -62,11 +62,8 @@ void gareafile::ReadIMail170(char* options, char* file, char* impath) {
fread(CF, sizeof(im_config_type), 1, fp); fread(CF, sizeof(im_config_type), 1, fp);
fclose(fp); fclose(fp);
if(*jampath == NUL) CfgJampath(CF->echojam);
PathCopy(jampath, MapPath(CF->echojam)); CfgHudsonpath(CF->quickbbs);
if(*hudsonpath == NUL)
PathCopy(hudsonpath, MapPath(CF->quickbbs));
// Fido netmail // Fido netmail
if(not strblank(CF->netmail)) { if(not strblank(CF->netmail)) {

View File

@ -62,11 +62,8 @@ void gareafile::ReadIMail185(char* options, char* file, char* impath) {
fread(CF, sizeof(im_config_type), 1, fp); fread(CF, sizeof(im_config_type), 1, fp);
fclose(fp); fclose(fp);
if(*jampath == NUL) CfgJampath(CF->echojam);
PathCopy(jampath, MapPath(CF->echojam)); CfgHudsonpath(CF->quickbbs);
if(*hudsonpath == NUL)
PathCopy(hudsonpath, MapPath(CF->quickbbs));
// Fido netmail // Fido netmail
if(not strblank(CF->netmail)) { if(not strblank(CF->netmail)) {

View File

@ -76,8 +76,7 @@ void gareafile::ReadInterMail(char* tag) {
fp.fclose(); fp.fclose();
if(*hudsonpath == NUL) CfgHudsonpath(ctl->e.qbase);
PathCopy(hudsonpath, MapPath(ctl->e.qbase));
AreaCfg aa; AreaCfg aa;

View File

@ -76,10 +76,8 @@ void gareafile::ReadLoraBBS(char* tag) {
//CfgUsername(cfg->sysop); //CfgUsername(cfg->sysop);
if(*hudsonpath == NUL) CfgHudsonpath(cfg->quick_msgpath);
PathCopy(hudsonpath, MapPath(cfg->quick_msgpath)); CfgGoldbasepath(cfg->quick_msgpath);
if(*goldbasepath == NUL)
PathCopy(goldbasepath, MapPath(cfg->quick_msgpath));
AreaCfg aa; AreaCfg aa;

View File

@ -59,10 +59,12 @@ void gareafile::ReadMaximus3(char* mxpath, char* areafile, char* options) {
fread(offsets, (uint)heapsz, 1, fp); fread(offsets, (uint)heapsz, 1, fp);
fclose(fp); fclose(fp);
if(*squishuserpath == NUL) Path userfile;
strcat(PathCopy(squishuserpath, PRM(user_file)), ".bbs"); strxmerge(userfile, sizeof(Path), PRM(user_file), ".bbs", NULL);
CfgSquishuserpath(userfile);
strcpy(stpcpy(areafile, PRM(marea_name)), ".dat"); strcpy(stpcpy(areafile, PRM(marea_name)), ".dat");
MapPath(areafile);
fp = fsopen(areafile, "rb", sharemode); fp = fsopen(areafile, "rb", sharemode);
if(fp) { if(fp) {
@ -120,14 +122,9 @@ void gareafile::ReadMaximus3(char* mxpath, char* areafile, char* options) {
continue; continue;
} }
if(ZSTR(path)[1] != ':') { Path apath;
Path areapath; MakePathname(apath, mxpath, ZSTR(path));
strcpy(stpcpy(areapath, mxpath), ZSTR(path)); aa.setpath(apath);
aa.setpath(areapath);
}
else {
aa.setpath(ZSTR(path));
}
aa.aka = CAST(ftn_addr, area->primary); aa.aka = CAST(ftn_addr, area->primary);
aa.setdesc(*ZSTR(descript) ? ZSTR(descript) : ZSTR(name)); aa.setdesc(*ZSTR(descript) ? ZSTR(descript) : ZSTR(name));
@ -236,8 +233,7 @@ void gareafile::ReadMaximus(char* tag) {
MakePathname(areafile, mxpath, "area.dat"); MakePathname(areafile, mxpath, "area.dat");
} }
if(*squishuserpath == NUL) CfgSquishuserpath(mxpath);
PathCopy(squishuserpath, mxpath);
if(is_maximus3) if(is_maximus3)
ReadMaximus3(mxpath, areafile, options); ReadMaximus3(mxpath, areafile, options);

View File

@ -78,8 +78,7 @@ void gareafile::ReadPCBoard(char* tag) {
if(*_path == NUL) if(*_path == NUL)
strcpy(_path, areapath); strcpy(_path, areapath);
if(*pcboardpath == NUL) CfgPcboardpath(_path);
strcpy(pcboardpath, _path);
gfile fp; gfile fp;
const char* _file = AddPath(_path, "pcboard.dat"); const char* _file = AddPath(_path, "pcboard.dat");

View File

@ -69,8 +69,7 @@ void gareafile::ReadProBoard(char* tag) {
fread(cfg, sizeof(Config), 1, fp); fread(cfg, sizeof(Config), 1, fp);
if(*hudsonpath == NUL) CfgHudsonpath(cfg->msgpath);
PathCopy(hudsonpath, MapPath(cfg->msgpath));
fclose(fp); fclose(fp);
} }
@ -128,15 +127,15 @@ void gareafile::ReadProBoard(char* tag) {
break; break;
case MSGBASE_SQUISH: case MSGBASE_SQUISH:
aa.msgbase = GMB_SQUISH; aa.msgbase = GMB_SQUISH;
aa.setpath(MapPath(area->path)); aa.setpath(area->path);
break; break;
case MSGBASE_SDM: case MSGBASE_SDM:
aa.msgbase = GMB_OPUS; aa.msgbase = GMB_OPUS;
aa.setpath(MapPath(area->path)); aa.setpath(area->path);
break; break;
case MSGBASE_JAM: case MSGBASE_JAM:
aa.msgbase = GMB_JAM; aa.msgbase = GMB_JAM;
aa.setpath(MapPath(area->path)); aa.setpath(area->path);
break; break;
} }
aa.aka = aka[area->aka]; aa.aka = aka[area->aka];

View File

@ -63,7 +63,7 @@ void gareafile::ReadQEchoFile(char* file, char* options, char* origin) {
aa.setechoid(ptr); aa.setechoid(ptr);
if((ptr = strtok(NULL, " \t")) != NULL) if((ptr = strtok(NULL, " \t")) != NULL)
if(not strieql("Passthrough", ptr)) { if(not strieql("Passthrough", ptr)) {
aa.setpath(MapPath(ptr)); aa.setpath(ptr);
aa.msgbase = GMB_JAM; aa.msgbase = GMB_JAM;
if((ptr = strtok(NULL, " \t")) != NULL) if((ptr = strtok(NULL, " \t")) != NULL)
if((*ptr == '*') and ((ptr = strtok(NULL, " \t")) != NULL)) { if((*ptr == '*') and ((ptr = strtok(NULL, " \t")) != NULL)) {

View File

@ -146,8 +146,7 @@ void gareafile::ReadQ276(char* qbpath, char* origin, char* options) {
fread(cfg, sizeof(Q276CfgRecT), 1, fp); fread(cfg, sizeof(Q276CfgRecT), 1, fp);
STRNP2C(cfg->MsgPath); STRNP2C(cfg->MsgPath);
if(*hudsonpath == NUL) CfgHudsonpath(cfg->MsgPath);
PathCopy(hudsonpath, MapPath(cfg->MsgPath));
fclose(fp); fclose(fp);
} }

View File

@ -85,8 +85,7 @@ void gareafile::ReadRemoteAccess(char* tag) {
ra2usersbbs = 2; ra2usersbbs = 2;
STRNP2C(config->MsgBasePath); STRNP2C(config->MsgBasePath);
if(*hudsonpath == NUL) CfgHudsonpath(config->MsgBasePath);
PathCopy(hudsonpath, MapPath(config->MsgBasePath));
} }
MakePathname(file, rapath, "messages.ra"); MakePathname(file, rapath, "messages.ra");

View File

@ -107,8 +107,7 @@ void gareafile::ReadSquishFile(char* path, char* file, char* options, char* orig
// Get path // Get path
getkeyval(&key, &val); getkeyval(&key, &val);
strxcpy(buf2, key, sizeof(buf2)); aa.setpath(key);
aa.setpath(MapPath(buf2));
// If not pass-through // If not pass-through
if(not striinc("-0", val)) { if(not striinc("-0", val)) {
@ -211,8 +210,7 @@ void gareafile::ReadSquish(char* tag) {
extractdirname(path, file); extractdirname(path, file);
if(*squishuserpath == NUL) CfgSquishuserpath(path);
PathCopy(squishuserpath, path);
ReadSquishFile(path, file, options, origin, defaultgroup); ReadSquishFile(path, file, options, origin, defaultgroup);
} }

View File

@ -93,8 +93,7 @@ void gareafile::ReadSuperBBS(char* tag) {
fclose(fp); fclose(fp);
STRNP2C(sconfig->MsgBasePath); STRNP2C(sconfig->MsgBasePath);
if(*hudsonpath == NUL) CfgHudsonpath(sconfig->MsgBasePath);
PathCopy(hudsonpath, MapPath(sconfig->MsgBasePath));
// Is it 1.16 or later? // Is it 1.16 or later?
if(sconfig->VersionNumber >= 0x0110) { if(sconfig->VersionNumber >= 0x0110) {

View File

@ -103,12 +103,10 @@ void gareafile::ReadTimedFile(char* path, char* file, char* options, char* origi
ReadTimedFile(path, buf2, options, origin); ReadTimedFile(path, buf2, options, origin);
break; break;
case CRC_HUDSONPATH: case CRC_HUDSONPATH:
if(*hudsonpath == NUL) CfgHudsonpath(val);
PathCopy(hudsonpath, MapPath(val));
break; break;
case CRC_JAMLOG: case CRC_JAMLOG:
if(*jampath == NUL) CfgJampath(val);
PathCopy(jampath, MapPath(val));
break; break;
#ifndef GCFG_NOSQSH #ifndef GCFG_NOSQSH
case CRC_SQUISHCFG: case CRC_SQUISHCFG:
@ -147,7 +145,7 @@ void gareafile::ReadTimedFile(char* path, char* file, char* options, char* origi
break; break;
#endif #endif
case CRC_LASTREAD: case CRC_LASTREAD:
strcpy(fidolastread, val); CfgFidolastread(val);
break; break;
case CRC_SQUISHOFFSET: case CRC_SQUISHOFFSET:
squishuserno = atoi(val); squishuserno = atoi(val);

View File

@ -91,8 +91,7 @@ void gareafile::ReadTosScan(char* tag) {
fseek(fp, sizeof(FD_Mailer), SEEK_CUR); // Seek past some data fseek(fp, sizeof(FD_Mailer), SEEK_CUR); // Seek past some data
fread(editor, sizeof(FD_Editor), 1, fp); fread(editor, sizeof(FD_Editor), 1, fp);
fread(shared, sizeof(FD_Shared), 1, fp); fread(shared, sizeof(FD_Shared), 1, fp);
if(*hudsonpath == NUL) CfgHudsonpath(editor->qbase);
PathCopy(hudsonpath, MapPath(editor->qbase));
aa.reset(); aa.reset();
aa.type = GMB_NET; aa.type = GMB_NET;
aa.attr = attribsnet; aa.attr = attribsnet;

View File

@ -56,13 +56,13 @@ void gareafile::ReadWtrGteFile(char* options, FILE* fp) {
ConfigRecord& c = *_tmp; ConfigRecord& c = *_tmp;
fread(&c, sizeof(ConfigRecord), 1, fp); fread(&c, sizeof(ConfigRecord), 1, fp);
strp2c(c.systemdir); MapPath(c.systemdir); strp2c(c.systemdir);
CfgJampath(c.systemdir);
MapPath(c.systemdir);
strp2c(c.origins[0]); strp2c(c.origins[0]);
strp2c(c.origins[1]); strp2c(c.origins[1]);
if(*jampath == NUL)
PathCopy(jampath, c.systemdir);
if(c.fidonetmailtype) { if(c.fidonetmailtype) {
aa.reset(); aa.reset();
aa.msgbase = gettype(c.opusdateformat ? GMB_OPUS : GMB_FTS1, c.fidonetmailtype); aa.msgbase = gettype(c.opusdateformat ? GMB_OPUS : GMB_FTS1, c.fidonetmailtype);

View File

@ -180,8 +180,7 @@ void gareafile::ReadAdeptXBBS(char* tag) {
strcpy(stpcpy(file, path), cfg); strcpy(stpcpy(file, path), cfg);
if(strblank(adeptxbbspath)) CfgAdeptxbbspath(path);
strcpy(adeptxbbspath, path);
ReadAdeptXbbsFile(path, file, options); ReadAdeptXbbsFile(path, file, options);

View File

@ -114,8 +114,7 @@ void gareafile::ReadxMailFile(char* file, char* options) {
CfgOrigin(val); CfgOrigin(val);
break; break;
case CRC_MESSAGEBASE: case CRC_MESSAGEBASE:
if(*hudsonpath == NUL) CfgHudsonpath(val);
PathCopy(hudsonpath, MapPath(val));
break; break;
} }
} }