384 lines
8.4 KiB
C++
384 lines
8.4 KiB
C++
|
|
// ------------------------------------------------------------------
|
|
// 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 3.
|
|
// ------------------------------------------------------------------
|
|
|
|
#include <golded.h>
|
|
#include <gcprot.h>
|
|
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
extern char* val;
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgDispmargin() {
|
|
|
|
CFG->dispmargin = atoi(val);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgDispmsgsize() {
|
|
|
|
if(strieql("NO", val))
|
|
CFG->dispmsgsize = NO;
|
|
else if(strieql("BYTES", val))
|
|
CFG->dispmsgsize = DISPMSGSIZE_BYTES;
|
|
else if(strieql("KBYTES", val))
|
|
CFG->dispmsgsize = DISPMSGSIZE_KBYTES;
|
|
else if(strieql("LINES", val))
|
|
CFG->dispmsgsize = DISPMSGSIZE_LINES;
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgDispareano() {
|
|
|
|
CFG->dispareano = GetYesno(val);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgDisppmfirst() {
|
|
|
|
CFG->disppmfirst = make_bool(GetYesno(val));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgDispsoftcr()
|
|
{
|
|
bool flag = make_bool(GetYesno(val));
|
|
|
|
if (cfgingroup)
|
|
CFG->grp.AddItm(GRP_DISPSOFTCR, flag);
|
|
else
|
|
CFG->dispsoftcr = flag;
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgDisptabsize() {
|
|
|
|
CFG->disptabsize = atoi(val);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditautoattach() {
|
|
|
|
EDIT->AutoAttach(make_bool(GetYesno(val)));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditautosave() {
|
|
|
|
EDIT->AutoSave(atoi(val));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditchangedate() {
|
|
|
|
EDIT->ChangeDate(GetYesno(val));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditcharpara() {
|
|
|
|
char ch = *StripQuotes(val);
|
|
if(ch)
|
|
EDIT->CharPara(ch);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditcharspace() {
|
|
|
|
char ch = *StripQuotes(val);
|
|
if(ch)
|
|
EDIT->CharSpace(ch);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditcomment() {
|
|
|
|
char* key;
|
|
getkeyval(&key, &val);
|
|
StripQuotes(key);
|
|
StripQuotes(val);
|
|
EDIT->Comment.Add(key, val);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditcompletion() {
|
|
|
|
char* key;
|
|
getkeyval(&key, &val);
|
|
StripQuotes(key);
|
|
StripQuotes(val);
|
|
EDIT->Completion.Add(key, val);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditcrlfterm() {
|
|
|
|
EDIT->CrLfTerm(make_bool(GetYesno(val)));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditfieldclear() {
|
|
|
|
EDIT->FieldClear(make_bool(GetYesno(val)));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEdithardline() {
|
|
|
|
EDIT->HardLine(StripQuotes(val));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEdithardlines() {
|
|
|
|
EDIT->HardLines(make_bool(GetYesno(val)));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEdithardterm() {
|
|
|
|
bool flag = make_bool(GetYesno(val));
|
|
if(cfgingroup)
|
|
CFG->grp.AddItm(GRP_EDITHARDTERM, flag);
|
|
else
|
|
EDIT->HardTerm(flag);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEdithdrnameset() {
|
|
|
|
char* key;
|
|
getkeyval(&key, &val);
|
|
EDIT->HdrNamePos(atoi(key));
|
|
EDIT->HdrNameLen(atoi(val));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEdithdrnodeset() {
|
|
|
|
char* key;
|
|
getkeyval(&key, &val);
|
|
EDIT->HdrNodePos(atoi(key));
|
|
EDIT->HdrNodeLen(atoi(val));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditheaderattrs() {
|
|
|
|
EDIT->HeaderAttrs(make_bool(GetYesno(val)));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditheaderfirst() {
|
|
|
|
int v = EDITHEADERFIRST_NO;
|
|
GTok t;
|
|
if(t.First(val)) {
|
|
do {
|
|
if(strieql("NEW", t.Token()))
|
|
v |= EDITHEADERFIRST_NEW;
|
|
else if(strieql("CHANGES", t.Token()))
|
|
v |= EDITHEADERFIRST_CHANGES;
|
|
else if(strieql("REPLIES", t.Token()))
|
|
v |= EDITHEADERFIRST_REPLIES;
|
|
else if(strieql("FORWARDS", t.Token()))
|
|
v |= EDITHEADERFIRST_FORWARDS;
|
|
else
|
|
v = GetYesno(t.Token()) ? EDITHEADERFIRST_YES : EDITHEADERFIRST_NO;
|
|
} while(t.Next());
|
|
}
|
|
EDIT->HeaderFirst(v);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditinternal() {
|
|
|
|
EDIT->Internal(make_bool(GetYesno(val)));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditmenu() {
|
|
|
|
EDIT->Menu(make_bool(GetYesno(val)));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditmixcase() {
|
|
|
|
bool flag = make_bool(GetYesno(val));
|
|
if(cfgingroup)
|
|
CFG->grp.AddItm(GRP_EDITMIXCASE, flag);
|
|
else
|
|
EDIT->MixCase(flag);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditor() {
|
|
|
|
EDIT->External(val);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditorfile() {
|
|
|
|
EDIT->File(val);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditquotemargin() {
|
|
|
|
EDIT->QuoteMargin(atoi(val));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditreplyre() {
|
|
|
|
int replyre;
|
|
if(strieql(val, "NUMERIC"))
|
|
replyre = REPLYRE_NUMERIC;
|
|
else
|
|
replyre = GetYesno(val) ? REPLYRE_YES : REPLYRE_NO;
|
|
|
|
if(cfgingroup)
|
|
CFG->grp.AddItm(GRP_EDITREPLYRE, replyre);
|
|
else
|
|
EDIT->ReplyRe(replyre);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditsavemenu() {
|
|
|
|
EDIT->SaveMenu(make_bool(GetYesno(val)));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditsaveutil() {
|
|
|
|
char* _key;
|
|
getkeyval(&_key, &val);
|
|
int n = atoi(_key);
|
|
EDIT->SaveUtil.Add(n, StripQuotes(val));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditsoftcrxlat() {
|
|
|
|
EDIT->SoftCrXlat(*val);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditspellcheck() {
|
|
|
|
EDIT->SpellChecker(val);
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEditundelete() {
|
|
|
|
EDIT->UnDelete(atoi(val));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEncodeemailheaders() {
|
|
|
|
CFG->encodeemailheaders = make_bool(GetYesno(val));
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEndgroup() {
|
|
|
|
cfgingroup = false;
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|
|
void CfgEvent(char* v) { val = v; CfgEvent(); }
|
|
void CfgEvent() {
|
|
|
|
char* key;
|
|
word x;
|
|
std::vector<GEvent>::iterator n;
|
|
GEvent tmp;
|
|
|
|
x = getkeyvalcrc(&key, &val);
|
|
|
|
for(n = CFG->event.begin(); n != CFG->event.end(); n++)
|
|
if(x == n->type)
|
|
break;
|
|
|
|
tmp.type = x;
|
|
getkeyval(&key, &val);
|
|
if(strieql(key, "PLAY")) {
|
|
tmp.command = EVTC_PLAY;
|
|
FileToGPlay(&tmp.play, val);
|
|
}
|
|
|
|
if(n == CFG->event.end())
|
|
CFG->event.push_back(tmp);
|
|
else
|
|
*n = tmp;
|
|
}
|
|
|
|
// ------------------------------------------------------------------
|
|
|