mirror of
https://salsa.debian.org/dskoll/remind.git
synced 2026-04-16 06:18:47 +02:00
Compare commits
2 Commits
aa8f5a9731
...
1f960039a1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1f960039a1 | ||
|
|
dcf55e0fba |
40
april-fools-announcements/2026-april-fool-announcement.txt
Normal file
40
april-fools-announcements/2026-april-fool-announcement.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
Hi, all,
|
||||
|
||||
As you know, Remind has been around for a long time---over 36 years.
|
||||
It's written in C, and I think it's high time to rewrite it in a
|
||||
memory-safe language. After all, one CVE in 36 years is simply
|
||||
unacceptable.
|
||||
|
||||
I was looking at writing it in Rust, but decided that Rust isn't quite
|
||||
mature enough yet. So I decided to do it in FORTAN-77. I chose
|
||||
FORTRAN-77 over the more obvious choice of COBOL because I studied
|
||||
engineering and not business.
|
||||
|
||||
The rewrite will have the following implications:
|
||||
|
||||
o Remind will henceforth be known as REMIND.
|
||||
|
||||
o Sadly, I have to drop UTF-8 support. Your choices are ASCII or
|
||||
EBCDIC.
|
||||
|
||||
o All statements must begin in column 7. That means you might need to
|
||||
edit your existing scripts to add 6 spaces at the beginning of the
|
||||
line.
|
||||
|
||||
o Variables whose names begin with "I" through "N" can only hold INTs.
|
||||
|
||||
o I will be setting up a store on my web site to sell punched cards.
|
||||
(Yes; those will be needed to run REMIND.)
|
||||
|
||||
Now, I confess I haven't programmed in FORTRAN-77 in several decades,
|
||||
so I plan on using AI to assist me. After all, it has been trained on
|
||||
the mountains of open-source FORTRAN-77 code on the Internet.
|
||||
|
||||
I anticipate the rewrite will take about 9 years. You can use this
|
||||
reminder to alert yourself to when it's ready:
|
||||
|
||||
REM 1 APRIL 2035 MSG REMIND IN FORTRAN-77 READY. STOP.
|
||||
|
||||
Regards,
|
||||
|
||||
Dianne.
|
||||
@@ -515,10 +515,12 @@ In other words, \fB\-i\fIvar\fR is exactly the same as \fB\-i\fIvar\fR\fB=\fR0.
|
||||
Allows you to define a function on the command line.
|
||||
.PP
|
||||
If you supply a \fIdate\fR on the command line, it must consist of
|
||||
\fIday month year\fR, where \fIday\fR is the day of the month,
|
||||
[\fIday\fR] \fImonth\fR [\fIyear\fR], where \fIday\fR is the day of the month,
|
||||
\fImonth\fR is at least the first three letters of the English name
|
||||
of the month, and \fIyear\fR is a year (all 4 digits) from 1990 to
|
||||
about 2075. You can leave out the \fIday\fR, which then defaults to 1.
|
||||
If you leave out the year, then it defaults to the current year. You
|
||||
cannot leave out the \fImonth\fR.
|
||||
.PP
|
||||
If you do supply a \fIdate\fR on the command line, then \fBRemind\fR
|
||||
uses it, rather than the actual system date, as its notion of "today."
|
||||
|
||||
15
src/init.c
15
src/init.c
@@ -806,16 +806,13 @@ void InitRemind(int argc, char const *argv[])
|
||||
if (dse != NO_DATE) {
|
||||
FromDSE(dse, &y, &m, &d);
|
||||
}
|
||||
/* Must supply date in the form: day, mon, yr OR mon, yr */
|
||||
/* Must supply date in the form: day, mon, yr OR mon, yr */
|
||||
if (m != NO_MON || y != NO_YR || d != NO_DAY) {
|
||||
if (m == NO_MON || y == NO_YR) {
|
||||
if (rep == NO_REP) Usage();
|
||||
else if (m != NO_MON || y != NO_YR) Usage();
|
||||
else {
|
||||
m = CurMon;
|
||||
y = CurYear;
|
||||
if (d == NO_DAY) d = CurDay;
|
||||
}
|
||||
if (y == NO_YR) {
|
||||
y = CurYear;
|
||||
}
|
||||
if (m == NO_MON) {
|
||||
Usage();
|
||||
}
|
||||
if (d == NO_DAY) d=1;
|
||||
if (d > DaysInMonth(m, y)) {
|
||||
|
||||
Reference in New Issue
Block a user