Add a warning to use SCANFROM with a moveable ADDOMIT.

This commit is contained in:
Dianne Skoll
2025-09-24 13:02:12 -04:00
parent 23081b556f
commit 604e1b049c
4 changed files with 23 additions and 14 deletions

View File

@@ -3,25 +3,25 @@
# Public Holidays in Japan, courtesy of Brandon Wilson.
OMIT January 01 MSG 元日
REM January 15 UNTIL December 31 1999 ADDOMIT MSG 成人の日
REM January 15 UNTIL December 31 1999 SCANFROM -28 ADDOMIT MSG 成人の日
REM Second Monday in January SCANFROM -7 ADDOMIT SATISFY [$Ty >= 2000] MSG 成人の日
REM February 11 ADDOMIT SATISFY [$Ty >= 1967] MSG 建国記念の日
REM February 23 ADDOMIT SATISFY [$Ty >= 2020] MSG 天皇誕生日
REM February 11 SCANFROM -28 ADDOMIT SATISFY [$Ty >= 1967] MSG 建国記念の日
REM February 23 SCANFROM -28 ADDOMIT SATISFY [$Ty >= 2020] MSG 天皇誕生日
REM [datepart(soleq(0))] SCANFROM -7 ADDOMIT MSG 春分の日
REM April 29 UNTIL December 31 2006 ADDOMIT SATISFY [$Ty >= 1989] MSG みどりの日
REM April 29 ADDOMIT SATISFY [$Ty >= 2007] MSG 昭和の日
REM April 29 UNTIL December 31 2006 SCANFROM -28 ADDOMIT SATISFY [$Ty >= 1989] MSG みどりの日
REM April 29 SCANFROM -28 ADDOMIT SATISFY [$Ty >= 2007] MSG 昭和の日
OMIT May 03 MSG 憲法記念日
REM May 4 ADDOMIT SATISFY [$Ty >= 2007] MSG みどりの日
REM May 4 SCANFROM -28 ADDOMIT SATISFY [$Ty >= 2007] MSG みどりの日
OMIT May 05 MSG こどもの日
REM July 20 UNTIL December 31 2002 ADDOMIT SATISFY [$Ty >= 1996] MSG 海の日
REM July 20 UNTIL December 31 2002 SCANFROM -28 ADDOMIT SATISFY [$Ty >= 1996] MSG 海の日
REM Third Monday in July SCANFROM -7 ADDOMIT SATISFY [$Ty >= 2003] MSG 海の日
REM August 11 ADDOMIT SATISFY [$Ty >= 2016] MSG 山の日
REM September 15 UNTIL December 31 2002 ADDOMIT SATISFY [$Ty >= 1966] MSG 敬老の日
REM Third Monday in September SCANFROM -7 ADDOMIT SATISFY [$Ty >= 2003] MSG 敬老の日
REM [datepart(soleq(2))] SCANFROM -7 ADDOMIT MSG 秋分の日
REM October 10 UNTIL December 31 1999 ADDOMIT SATISFY [$Ty >= 1966] MSG 体育の日
REM August 11 SCANFROM -28 ADDOMIT SATISFY [$Ty >= 2016] MSG 山の日
REM September 15 UNTIL December 31 2002 SCANFROM -28 ADDOMIT SATISFY [$Ty >= 1966] MSG 敬老の日
REM Third Monday in September SCANFROM -28 ADDOMIT SATISFY [$Ty >= 2003] MSG 敬老の日
REM [datepart(soleq(2))] SCANFROM -28 ADDOMIT MSG 秋分の日
REM October 10 UNTIL December 31 1999 SCANFROM -28 ADDOMIT SATISFY [$Ty >= 1966] MSG 体育の日
REM Second Monday in October UNTIL December 31 2019 SCANFROM -7 ADDOMIT SATISFY [$Ty >= 2000] MSG 体育の日
REM Second Monday in October SCANFROM -7 ADDOMIT SATISFY [$Ty >= 2020] MSG スポーツの日
OMIT November 03 MSG 文化の日
OMIT November 23 MSG 勤労感謝の日
REM December 23 UNTIL December 31 2018 ADDOMIT SATISFY [$Ty >= 1989] MSG 天皇の誕生日
REM December 23 UNTIL December 31 2018 SCANFROM -28 ADDOMIT SATISFY [$Ty >= 1989] MSG 天皇の誕生日

View File

@@ -23,4 +23,4 @@ REM [easterdate($Uy)-2] MSG Goede Vrijdag
# Bevrijdingsdag is a holiday every 5th year.
# Hence the two reminders below
REM 5 May SATISFY [$Ty % 5 != 0] MSG Bevrijdingsdag
REM 5 May ADDOMIT SATISFY [$Ty % 5 == 0] MSG Bevrijdingsdag
REM 5 May ADDOMIT SCANFROM -28 SATISFY [$Ty % 5 == 0] MSG Bevrijdingsdag

View File

@@ -1211,6 +1211,13 @@ int ParseRem(ParsePtr s, Trigger *trig, TimeTrig *tim)
}
/* Check for some warning conditions */
if (trig->addomit) {
if (trig->y == NO_YR || trig->m == NO_MON || trig->d == NO_DAY || trig->rep != NO_REP) {
if (trig->scanfrom == NO_SCANFROM) {
Wprint(tr("Warning: Consider using SCANFROM with recurring ADDOMIT"));
}
}
}
if (!s->nonconst_expr) {
if (trig->y != NO_YR && trig->m != NO_MON && trig->d != NO_DAY && trig->until != NO_UNTIL) {
if (DSE(trig->y, trig->m, trig->d) > trig->until) {

View File

@@ -857,6 +857,7 @@ The tags are:
# Test ADDOMIT
REM Mon 15 Feb ADDOMIT MSG Family Day
../tests/test.rem(254): Warning: Consider using SCANFROM with recurring ADDOMIT
../tests/test.rem(254): Trig = Monday, 18 February, 1991
REM Feb 18 AFTER MSG Should trigger on Feb 19
../tests/test.rem(255): Trig = Tuesday, 19 February, 1991
@@ -25126,6 +25127,7 @@ TRANSLATE "Unmatched PUSH-VARS at %s(%d)" ""
TRANSLATE "Unrecognized command; interpreting as REM" ""
TRANSLATE "User function `%s' defined in non-constant context makes expression non-constant" ""
TRANSLATE "Variable assignment considered non-constant because of context" ""
TRANSLATE "Warning: Consider using SCANFROM with recurring ADDOMIT" ""
TRANSLATE "Warning: Function name `%s...' truncated to `%s'" ""
TRANSLATE "Warning: OMIT is ignored if you use OMITFUNC" ""
TRANSLATE "Warning: SCANFROM is ignored in two-argument form of evaltrig()" ""