Issue a warning if we detect a SCANFROM used in two-arg evaltrig().

This commit is contained in:
David F. Skoll
2008-09-20 00:14:13 -04:00
parent 50a15cf089
commit 36035dda01

View File

@@ -209,7 +209,7 @@ Operator Func[] = {
{ "dosubst", 1, 3, FDosubst },
{ "dusk", 0, 1, FDusk },
{ "easterdate", 1, 1, FEasterdate },
{ "evaltrig", 1, 1, FEvalTrig },
{ "evaltrig", 1, 2, FEvalTrig },
{ "filedate", 1, 1, FFiledate },
{ "filedatetime", 1, 1, FFiledatetime },
{ "filedir", 0, 0, FFiledir },
@@ -2570,16 +2570,31 @@ FEvalTrig(void)
Parser p;
Trigger trig;
TimeTrig tim;
int jul;
int jul, scanfrom;
int r;
ASSERT_TYPE(0, STR_TYPE);
if (Nargs >= 2) {
if (!HASDATE(ARG(1))) return E_BAD_TYPE;
scanfrom = DATEPART(ARG(1));
} else {
scanfrom = NO_DATE;
}
CreateParser(ARGSTR(0), &p);
p.allownested = 0;
r = ParseRem(&p, &trig, &tim, 0);
if (r) return r;
if (trig.typ != NO_TYPE) return E_PARSE_ERR;
jul = ComputeTrigger(trig.scanfrom, &trig, &r, 0);
if (scanfrom == NO_DATE) {
jul = ComputeTrigger(trig.scanfrom, &trig, &r, 0);
} else {
/* Hokey... */
if (trig.scanfrom != JulianToday) {
Eprint("Warning: SCANFROM is ignored in two-argument form of evaltrig()");
}
jul = ComputeTrigger(scanfrom, &trig, &r, 0);
}
if (r) return r;
if (jul < 0) {
RetVal.type = INT_TYPE;