Crashecho support added, few Mappath fixes, one more range check in editor fixed
This commit is contained in:
parent
a7b00c4dc0
commit
cf69e9116e
10
Config.def
10
Config.def
@ -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
|
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
|
@ -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--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
strbtrim(tmppath);
|
|
||||||
strchg(tmppath, GOLD_WRONG_SLASH_CHR, GOLD_SLASH_CHR);
|
|
||||||
strchg(tmpname, GOLD_WRONG_SLASH_CHR, GOLD_SLASH_CHR);
|
strchg(tmpname, GOLD_WRONG_SLASH_CHR, GOLD_SLASH_CHR);
|
||||||
if(strpbrk(tmpname, GOLD_SLASH_STR))
|
if(strpbrk(tmpname, GOLD_SLASH_STR)) {
|
||||||
strschg_environ(strxcpy(pathname, tmpname, sizeof(Path)));
|
strxcpy(pathname, tmpname, sizeof(Path));
|
||||||
else {
|
|
||||||
strcpy(newpath, tmppath);
|
|
||||||
if(*newpath)
|
|
||||||
AddBackslash(newpath);
|
|
||||||
strxmerge(pathname, sizeof(Path), newpath, tmpname, NULL);
|
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
Path tmppath;
|
||||||
|
|
||||||
|
strcpy(tmppath, path);
|
||||||
|
strbtrim(tmppath);
|
||||||
|
strchg(tmppath, GOLD_WRONG_SLASH_CHR, GOLD_SLASH_CHR);
|
||||||
|
if(*tmppath)
|
||||||
|
AddBackslash(tmppath);
|
||||||
|
strxmerge(pathname, sizeof(Path), tmppath, tmpname, NULL);
|
||||||
|
}
|
||||||
|
strschg_environ(pathname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
@ -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++)
|
||||||
|
@ -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)) {
|
||||||
|
@ -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)) {
|
||||||
|
@ -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;
|
||||||
|
@ -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));
|
||||||
|
@ -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));
|
||||||
|
@ -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));
|
||||||
|
@ -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);
|
||||||
|
@ -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)) {
|
||||||
|
@ -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)) {
|
||||||
|
@ -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)) {
|
||||||
|
@ -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");
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -52,12 +52,9 @@ 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)) {
|
||||||
aa.reset();
|
aa.reset();
|
||||||
|
@ -62,12 +62,9 @@ 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)) {
|
||||||
aa.reset();
|
aa.reset();
|
||||||
|
@ -62,12 +62,9 @@ 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)) {
|
||||||
aa.reset();
|
aa.reset();
|
||||||
|
@ -75,9 +75,8 @@ void gareafile::ReadInterMail(char* tag) {
|
|||||||
if(not memcmp(ctl->fingerprint, "JoHo", 5) and (ctl->sysrev == IM_THISREV)) {
|
if(not memcmp(ctl->fingerprint, "JoHo", 5) and (ctl->sysrev == IM_THISREV)) {
|
||||||
|
|
||||||
fp.fclose();
|
fp.fclose();
|
||||||
|
|
||||||
if(*hudsonpath == NUL)
|
CfgHudsonpath(ctl->e.qbase);
|
||||||
PathCopy(hudsonpath, MapPath(ctl->e.qbase));
|
|
||||||
|
|
||||||
AreaCfg aa;
|
AreaCfg aa;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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");
|
||||||
|
@ -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];
|
||||||
|
@ -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)) {
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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");
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user