diff --git a/man/remind.1 b/man/remind.1 index 0ab05ee5..4776faa0 100644 --- a/man/remind.1 +++ b/man/remind.1 @@ -1193,19 +1193,23 @@ The keyword \fBIN\fR is completely ignored, so you can write (for example): .fi .PP An alternate form of \fIback\fR makes writing reminders easier. -The following pairs of reminders are equivalent: +The following groups of reminders are equivalent: .PP .nf REM ~~1 MSG Last day of every month + REM Lastday MSG Last day of every month REM 1 --1 MSG Last day of every month REM May ~~1 MSG Last day of May + REM Lastday May MSG Last day of May REM 1 June --1 MSG Last day of May REM Dec 2025 ~~1 MSG Last day of December 2025 + REM Lastday Dec 2025 MSG Last day of December 2025 REM 1 Jan 2026 --1 MSG Last day of December 2025 REM Apr ~1 OMIT SAT SUN MSG Last workday of April + REM Lastworkday April OMIT SAT SUN MSG Last workday of April REM 1 May -1 OMIT SAT SUN MSG Last workday of April REM Apr ~~7 MSG Seventh-last day of April @@ -1215,6 +1219,8 @@ The following pairs of reminders are equivalent: REM 1 May -2 OMIT SAT SUN MSG Second-last workday of April .fi .PP +As we see, "Lastday" is equivalent to ~~1 and "Lastworkday" to ~1. +.PP Note that the First/Second/Third/Fourth/Last keywords and the ~ and ~~ form of \fIback\fR imply a value for the day of the month; as such, they cannot be combined with a day. Additionally, First/Second/Third/Fourth/Last diff --git a/src/token.c b/src/token.c index f14fe94e..066936cb 100644 --- a/src/token.c +++ b/src/token.c @@ -70,7 +70,9 @@ Token TokArray[] = { { "january", 3, T_Month, 0 }, { "july", 3, T_Month, 6 }, { "june", 3, T_Month, 5 }, - { "last", 4, T_Ordinal, -1 }, + { "last", 4, T_Ordinal, -1 }, + { "lastday", 7, T_BackAdj, -1 }, + { "lastworkday", 11, T_BackAdj, 1 }, { "march", 3, T_Month, 2 }, { "may", 3, T_Month, 4 }, { "maybe-uncomputable", 5, T_MaybeUncomputable, 0}, diff --git a/tests/test.cmp b/tests/test.cmp index a6018743..5131f7d3 100644 --- a/tests/test.cmp +++ b/tests/test.cmp @@ -3881,17 +3881,26 @@ REM March ~1 MSG y ../tests/test.rem(779): Trig = Saturday, 30 March, 1991 REM March ~~1 MSG y ../tests/test.rem(780): Trig = Sunday, 31 March, 1991 +REM Lastday March MSG y +../tests/test.rem(781): Trig = Sunday, 31 March, 1991 +REM Lastworkday March MSG y +../tests/test.rem(782): Trig = Saturday, 30 March, 1991 POP REM Dec 2000 ~~1 MSG y -../tests/test.rem(782): Trig = Sunday, 31 December, 2000 +../tests/test.rem(784): Trig = Sunday, 31 December, 2000 REM Dec 2000 ~~2 MSG y -../tests/test.rem(783): Trig = Saturday, 30 December, 2000 +../tests/test.rem(785): Trig = Saturday, 30 December, 2000 REM Dec 2000 ~~3 MSG y -../tests/test.rem(784): Trig = Friday, 29 December, 2000 +../tests/test.rem(786): Trig = Friday, 29 December, 2000 REM Dec 2000 ~~7 MSG y -../tests/test.rem(785): Trig = Monday, 25 December, 2000 +../tests/test.rem(787): Trig = Monday, 25 December, 2000 REM Jan 2001 ~~1 MSG y -../tests/test.rem(786): Trig = Wednesday, 31 January, 2001 +../tests/test.rem(788): Trig = Wednesday, 31 January, 2001 + +REM Lastday April 2022 OMIT SAT SUN MSG foo +../tests/test.rem(790): Trig = Saturday, 30 April, 2022 +REM Lastworkday April 2022 OMIT SAT SUN MSG foo +../tests/test.rem(791): Trig = Friday, 29 April, 2022 # Don't want Remind to queue reminders EXIT diff --git a/tests/test.rem b/tests/test.rem index 6ada0f4a..930b14d1 100644 --- a/tests/test.rem +++ b/tests/test.rem @@ -778,6 +778,8 @@ PUSH OMIT 31 March REM March ~1 MSG y REM March ~~1 MSG y +REM Lastday March MSG y +REM Lastworkday March MSG y POP REM Dec 2000 ~~1 MSG y REM Dec 2000 ~~2 MSG y @@ -785,6 +787,9 @@ REM Dec 2000 ~~3 MSG y REM Dec 2000 ~~7 MSG y REM Jan 2001 ~~1 MSG y +REM Lastday April 2022 OMIT SAT SUN MSG foo +REM Lastworkday April 2022 OMIT SAT SUN MSG foo + # Don't want Remind to queue reminders EXIT