From d0fc0d7104e9dcbc78813ad73ef15bed23cb0574 Mon Sep 17 00:00:00 2001 From: "Alexander S. Aganichev" Date: Mon, 7 Apr 2003 10:24:42 +0000 Subject: [PATCH] Fix configuration parser problems --- docs/notework.txt | 6 ++++++ goldlib/gcfg/gxsync.cpp | 28 +++++++++++++++++++++++++--- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/docs/notework.txt b/docs/notework.txt index 56be6c9..844d6a1 100644 --- a/docs/notework.txt +++ b/docs/notework.txt @@ -12,6 +12,12 @@ ______________________________________________________________________ Notes for GoldED+ 1.1.5, /snapshot/ ______________________________________________________________________ +- GoldED+ should now properly prepend data/subs path to the Synchronet + bases, so copying of msgs.cnf to that directory should not be done + anymore in order to make Synchronet areafile reader working. + +- Fixed the warning line if SeqMsgId set to MAYBE. + - GoldED+/W32 will not issue warning about too long commandline under NT. diff --git a/goldlib/gcfg/gxsync.cpp b/goldlib/gcfg/gxsync.cpp index c692437..63c24ad 100644 --- a/goldlib/gcfg/gxsync.cpp +++ b/goldlib/gcfg/gxsync.cpp @@ -55,10 +55,32 @@ void gareafile::ReadSynchronet(char* tag) { if(not fexist(file)) { AddBackslash(file); - strcat(file, "msgs.cnf"); + strxcat(file, "msgs.cnf", sizeof(Path)); } - extractdirname(path, file); + if(not fexist(file)) { + extractdirname(path, file); + AddBackslash(path); + strxmerge(file, sizeof(Path), path, "ctrl/msgs.cnf", NULL); + } + + if(fexist(file)) { + Path ctrl; + extractdirname(ctrl, file); + size_t len = strlen(ctrl); + if((len > 0) and isslash(ctrl[len - 1])) { + ctrl[len - 1] = NUL; + extractdirname(path, ctrl); + } + else { + strcpy(path, ctrl); + } + AddBackslash(path); + strxcat(path, "data/subs/", sizeof(Path)); + } + else { + *path = NUL; + } FILE* in = fsopen(file, "rb", sharemode); if(in) { @@ -88,7 +110,7 @@ void gareafile::ReadSynchronet(char* tag) { break; AreaCfg aa; aa.reset(); - aa.type = GMB_ECHO; + aa.type = (sub_misc & SUB_QNET) ? GMB_LOCAL : GMB_ECHO; aa.attr = attribsecho; aa.msgbase = GMB_SMB; aa.setechoid((sub.misc & SUB_FIDO) ? sub.sname : sub.code);