Compare commits

...

58 Commits

Author SHA1 Message Date
Dianne Skoll
42f868db07 Prep for 06.01.09 release. 2025-10-31 11:02:16 -04:00
Dianne Skoll
2996275ec4 Update man page 2025-10-31 10:56:30 -04:00
Dianne Skoll
5586198a0e Save the view in Options so if you switch views, it is remembered. 2025-10-31 10:52:29 -04:00
Dianne Skoll
d17c48e751 Implement 1-, 2- and 4-week displays in addition to monthly. 2025-10-30 22:00:28 -04:00
Dianne Skoll
e08a6370ef Proper error propagation. 2025-10-30 20:24:23 -04:00
Dianne Skoll
7a319466cf Fix error output 2025-10-30 18:00:34 -04:00
Dianne Skoll
4158ad5977 More work towards supporting weekly calendars. 2025-10-30 17:17:11 -04:00
Dianne Skoll
9b07eed26f More work towards supporting weekly calendars. 2025-10-30 16:37:02 -04:00
Dianne Skoll
05ead8c40d More helpful errors when parsing expressions. 2025-10-30 14:30:29 -04:00
Dianne Skoll
35e222967c More work on supporting weekly calendar views. 2025-10-30 13:03:40 -04:00
Dianne Skoll
83ca07d34f Start laying the groundwork for supporting weekly views in tkremind. 2025-10-30 12:25:57 -04:00
Dianne Skoll
36f4bb852b Avoid warnings on FreeBSD. 2025-10-29 13:46:41 -04:00
Dianne Skoll
9642303d05 Proper test for link-time optimizations. 2025-10-29 13:44:55 -04:00
Dianne Skoll
a6144baff7 Add -Werror so we don't enable -ffat-lto-objects on FreeBSD. 2025-10-29 13:41:34 -04:00
Dianne Skoll
17985c59c3 Bind the KP_* variations of Home, Left, Right, Prior and Next.
Start adding support for window properties.
2025-10-29 13:35:21 -04:00
Dianne Skoll
719295ccd7 Update man page to reflect new reality of hand-edited reminders. 2025-10-29 12:33:23 -04:00
Dianne Skoll
3d74389713 Remove dead code; if a reminder is hand-edited, make it non-modifiable via TkRemind. 2025-10-29 12:29:24 -04:00
Dianne Skoll
80c7244d64 Merge branch 'test_support_env' into 'master'
test-rem: support for $REMIND_CMD and $REM2PS

See merge request dskoll/remind!10
2025-10-28 09:39:24 -04:00
Jochen Sprickerhof
db27be1469 test-rem: support for $REMIND_CMD and $REM2PS 2025-10-28 09:39:24 -04:00
Dianne Skoll
d59fe832fd Update version number. 2025-10-27 10:24:11 -04:00
Dianne Skoll
88ebdf275e Avoid test failure. 2025-10-27 10:23:38 -04:00
Dianne Skoll
a7a6f8b5f0 Prep for 06.01.08 release. 2025-10-27 10:22:29 -04:00
Dianne Skoll
3e248c069e Change button color. 2025-10-26 16:46:14 -04:00
Dianne Skoll
65cca1fd8f Remove useless test. 2025-10-25 12:45:59 -04:00
Dianne Skoll
5a889043ba Remove misleading wording. 2025-10-25 12:42:58 -04:00
Dianne Skoll
6d1fcdf246 Change button color. 2025-10-25 11:04:52 -04:00
Dianne Skoll
3476b965ef Add "Show Command" option to Print dialog. 2025-10-24 16:31:27 -04:00
Dianne Skoll
0bba2dc3b3 Fix modal file browser. 2025-10-24 10:27:48 -04:00
Dianne Skoll
e5c27f19f5 Handle window raising better. 2025-10-24 08:52:59 -04:00
Dianne Skoll
f9aa53433e Raise .edit on button press. 2025-10-24 08:51:06 -04:00
Dianne Skoll
5323245529 Use wm protocol WM_DELETE_WINDOW on the .edit modal as well. 2025-10-24 08:49:14 -04:00
Dianne Skoll
deb12ac7cd Fix all modal dialogs. 2025-10-24 08:12:20 -04:00
Dianne Skoll
a1488d93ad Finally fix all the race conditions. 2025-10-23 22:00:06 -04:00
Dianne Skoll
65add3d32e Reset EditingReminder to 0 if edit window is destroyed. 2025-10-23 21:23:39 -04:00
Dianne Skoll
8d6f5efa7b Fix race conditions seen on slow computers if you double-click a day number or tagged reminder. 2025-10-23 17:54:40 -04:00
Dianne Skoll
eb996a8146 Avoid error if you click too fast on a tagged reminder. 2025-10-23 17:12:18 -04:00
Dianne Skoll
1cd6205cdd Make TkRemind work on dumb systems that use "poor-man's" bold and italic. 2025-10-23 12:08:02 -04:00
Dianne Skoll
6d9ccc1522 Make bold and italic work on stupid systems. 2025-10-23 11:49:58 -04:00
Dianne Skoll
0268020579 Bump version to 06.01.07 2025-10-23 11:23:10 -04:00
Dianne Skoll
5803d1dd7e Update changelog 2025-10-23 11:22:40 -04:00
Dianne Skoll
5dfce21af6 Add ?tkr=1 2025-10-23 11:18:37 -04:00
Dianne Skoll
8ddb956f9a Change cursor inside links 2025-10-22 23:36:58 -04:00
Dianne Skoll
32421815cd Make the version numbers in WHATSNEW match the ones in Remind. 2025-10-22 22:51:00 -04:00
Dianne Skoll
dbe3bc13fa Make links blue. 2025-10-22 16:48:05 -04:00
Dianne Skoll
c68c716585 Make URLs in man pages clickable. 2025-10-22 16:09:30 -04:00
Dianne Skoll
7a1a5abc0f Give the window an appropriate title. 2025-10-22 13:05:14 -04:00
Dianne Skoll
53a1318306 Tweak man pages to remove "4th Berkeley Distribution" 2025-10-22 12:59:23 -04:00
Dianne Skoll
78fecf28c4 More info 2025-10-22 12:40:20 -04:00
Dianne Skoll
6081d29b11 Reduce flicker. 2025-10-22 12:33:51 -04:00
Dianne Skoll
e0a5125ee0 Set focus to man page window so PgUp, etc work as expected. 2025-10-22 12:30:50 -04:00
Dianne Skoll
c3f790a99b Allow for browsing of other man pages in the "SEE ALSO" section. 2025-10-22 12:27:15 -04:00
Dianne Skoll
3eb507451e Nicely format the man page. 2025-10-22 11:33:20 -04:00
Dianne Skoll
e9e0368418 six => seven 2025-10-22 10:28:49 -04:00
Dianne Skoll
759ae1ab80 Add a "help" button that shows TkRemind's man page, positioned to a useful place. 2025-10-22 10:25:42 -04:00
Dianne Skoll
e8602824a0 Add helpful message. 2025-10-22 09:47:57 -04:00
Dianne Skoll
62301a88cc We don't use _chan any more. 2025-10-20 14:17:52 -04:00
Dianne Skoll
6b163092c7 Check spelling of Perl man pages too. 2025-10-20 13:55:33 -04:00
Dianne Skoll
f8ac99d22e Tighten up display 2025-10-20 13:43:04 -04:00
19 changed files with 1158 additions and 479 deletions

28
configure vendored
View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.72 for remind 06.01.06.
# Generated by GNU Autoconf 2.72 for remind 06.01.09.
#
#
# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation,
@@ -601,8 +601,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='remind'
PACKAGE_TARNAME='remind'
PACKAGE_VERSION='06.01.06'
PACKAGE_STRING='remind 06.01.06'
PACKAGE_VERSION='06.01.09'
PACKAGE_STRING='remind 06.01.09'
PACKAGE_BUGREPORT=''
PACKAGE_URL='https://dianne.skoll.ca/projects/remind/'
@@ -1258,7 +1258,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
'configure' configures remind 06.01.06 to adapt to many kinds of systems.
'configure' configures remind 06.01.09 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1320,7 +1320,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of remind 06.01.06:";;
short | recursive ) echo "Configuration of remind 06.01.09:";;
esac
cat <<\_ACEOF
@@ -1408,7 +1408,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
remind configure 06.01.06
remind configure 06.01.09
generated by GNU Autoconf 2.72
Copyright (C) 2023 Free Software Foundation, Inc.
@@ -1871,7 +1871,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by remind $as_me 06.01.06, which was
It was created by remind $as_me 06.01.09, which was
generated by GNU Autoconf 2.72. Invocation command line was
$ $0$ac_configure_args_raw
@@ -4231,6 +4231,7 @@ U="`uname -s`"
if test "$U" != "SunOS" -a "$GCC" = yes; then
CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes"
# Check for link-time optimization support
OLDCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -flto=auto"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -flto=auto" >&5
printf %s "checking whether $CC supports -flto=auto... " >&6; }
@@ -4258,11 +4259,12 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lto" >&5
printf "%s\n" "$lto" >&6; }
if test "x$lto" != "xyes" ; then
CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes"
CFLAGS="$OLDCFLAGS"
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -ffat-lto-object" >&5
printf %s "checking whether $CC supports -ffat-lto-object... " >&6; }
CFLAGS="$CFLAGS -ffat-lto-objects"
OLDCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Werror -ffat-lto-objects"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int x = 1;
@@ -4287,7 +4289,9 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lto" >&5
printf "%s\n" "$lto" >&6; }
if test "x$lto" != "xyes" ; then
CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes -flto=auto"
CFLAGS="$OLDCFLAGS"
else
CFLAGS="$OLDCFLAGS -ffat-lto-objects"
fi
fi
fi
@@ -4895,7 +4899,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by remind $as_me 06.01.06, which was
This file was extended by remind $as_me 06.01.09, which was
generated by GNU Autoconf 2.72. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -4960,7 +4964,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
remind config.status 06.01.06
remind config.status 06.01.09
configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\"

View File

@@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(remind, 06.01.06, , , https://dianne.skoll.ca/projects/remind/)
AC_INIT(remind, 06.01.09, , , https://dianne.skoll.ca/projects/remind/)
AC_CONFIG_SRCDIR([src/queue.c])
cat <<'EOF'
@@ -50,6 +50,7 @@ U="`uname -s`"
if test "$U" != "SunOS" -a "$GCC" = yes; then
CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes"
# Check for link-time optimization support
OLDCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -flto=auto"
AC_MSG_CHECKING([whether $CC supports -flto=auto])
AC_LINK_IFELSE(
@@ -61,10 +62,11 @@ if test "$U" != "SunOS" -a "$GCC" = yes; then
)
AC_MSG_RESULT([$lto])
if test "x$lto" != "xyes" ; then
CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes"
CFLAGS="$OLDCFLAGS"
else
AC_MSG_CHECKING([whether $CC supports -ffat-lto-object])
CFLAGS="$CFLAGS -ffat-lto-objects"
OLDCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Werror -ffat-lto-objects"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[int x = 1;]],
@@ -74,7 +76,9 @@ if test "$U" != "SunOS" -a "$GCC" = yes; then
)
AC_MSG_RESULT([$lto])
if test "x$lto" != "xyes" ; then
CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes -flto=auto"
CFLAGS="$OLDCFLAGS"
else
CFLAGS="$OLDCFLAGS -ffat-lto-objects"
fi
fi
fi

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
# Save variables and functions that we will mess with
PUSH-VARS InIsrael IncludeIsraeliHolidays Reform IncludeOmer IncludeOmerCal SunCal ostart yz
PUSH-FUNCS _chan _h2 _h2I _YZ _PastSat _BackTwoSat
PUSH-FUNCS _h2 _h2I _YZ _PastSat _BackTwoSat
SET InIsrael value("InIsrael", 0)
SET IncludeIsraeliHolidays value("IncludeIsraeliHolidays", 1)

View File

@@ -1,5 +1,4 @@
.TH REM 1 "@RELEASE_DATE@" "User Commands" "VERSION @VERSION@"
.UC 4
.TH REM 1 "@RELEASE_DATE@" "Remind" "VERSION @VERSION@"
.SH NAME
rem \- Invoke Remind with a default filename
.SH SYNOPSIS

View File

@@ -1,5 +1,4 @@
.TH REM2PS 1 "@RELEASE_DATE@" "User Commands" "VERSION @VERSION@"
.UC 4
.TH REM2PS 1 "@RELEASE_DATE@" "Remind" "VERSION @VERSION@"
.SH NAME
rem2ps \- draw a PostScript calendar from Remind output
.SH SYNOPSIS

View File

@@ -1,5 +1,4 @@
.TH REMIND 1 "@RELEASE_DATE@" "User Commands" "VERSION @VERSION@"
.UC 4
.TH REMIND 1 "@RELEASE_DATE@" "Remind" "VERSION @VERSION@"
.SH NAME
remind \- a sophisticated reminder service
.SH SYNOPSIS
@@ -5314,8 +5313,7 @@ expressions are evaluated only once, not recursively. Thus, writing:
.fi
.PP
causes \fBRemind\fR to read the token "[a+b]". It does not interpret
this as a pasted-in expression. In fact, the only way to get a literal
left-bracket into a reminder is to use ["["].
this as a pasted-in expression.
.PP
You can use expression pasting almost anywhere. However, there are a few
exceptions:
@@ -5602,8 +5600,6 @@ following example:
# FSET -f(x) 2*x
.fi
.PP
to define a function and suppress any "redefined function" warning.
.PP
.SH SAVING AND RESTORING FUNCTIONS
.PP
Occasionally, it is useful to redefine a function for a specific block of

View File

@@ -1,5 +1,4 @@
.TH TKREMIND 1 "@RELEASE_DATE@" "User Commands" "VERSION @VERSION@"
.UC 4
.TH TKREMIND 1 "@RELEASE_DATE@" "Remind" "VERSION @VERSION@"
.SH NAME
tkremind \- graphical front-end to Remind calendar program
.SH SYNOPSIS
@@ -54,9 +53,10 @@ directory before starting \fBTkRemind\fR.
When you start \fBTkRemind\fR, it displays a calendar for the current
month, with today's date highlighted. Reminders are filled into each
box on the calendar. If a box contains many reminders, you can scroll
it up and down by dragging mouse button 2 in the box. Note that there
is no specific indication of an over-full box; you'll just have to
notice that the box appears completely full.
it up and down by dragging mouse button 2 in the box or by using the
scroll wheel (if your mouse has one.) Note that there is no specific
indication of an over-full box; you'll just have to notice that the
box appears completely full.
.SH NAVIGATING
To change to the previous or next month, click the \fB<\-\fR
@@ -71,12 +71,23 @@ year. Once you've done this, click \fBGo\fR to go to the date, or
To exit \fBTkRemind\fR, click \fBQuit\fR.
.SH CHANGING THE VIEW
By default, \fBTkRemind\fR shows the calendar for an entire month.
The \fBView...\fR menu lets you pick from the following choices: Display
an entire month, or display one, two or four weeks' worth of reminders.
If you change the view, \fBTkRemind\fR remembers the change and that
view becomes the default view next time you start \fBTkRemind\fR
In the monthly view, the Next and Previous navigation buttons and keyboard
shortcuts move by one month. In all other views, they move by one week.
This is true even for views that display multiple weeks.
.SH ADDING REMINDERS
To add a reminder, click button 1 in any day number in the calendar.
The \fBAdd Reminder...\fR dialog will pop up, with values preselected for
the day you clicked.
The dialog has six basic groups of controls. The first three lines
The dialog has seven basic groups of controls. The first three lines
select one of three types of reminders. Choose the type of reminder
with the radio buttons, and choose the values of the days, months, and
years by selecting values from pull-down menus. The pull-down menus
@@ -127,6 +138,10 @@ reminder you entered using the \fBAdd Reminder...\fR dialog. You can
edit the reminder, thereby gaining access to advanced features of
\fBRemind\fR. You can also use it simply to play around and discover
\fBRemind\fR's idioms for expressing different types of reminders.
.PP
\fBNOTE\fR: If you hand-edit a reminder, then that reminder will
\fInot\fR be editable in TkRemind's graphical reminder dialog any more.
You will have to hand-edit it to change it.
.SH SEEING A SINGLE DAY'S REMINDERS
Right-click on any day number in the calendar to pop up a window with
@@ -168,6 +183,12 @@ that during printing, \fBRemind\fR is called with the
option. If you are producing PDF output, then the option \fB-itkpdf=1\fR
is also supplied to \fBRemind\fR.
If you click on \fBShow Command\fR rather than \fBPrint\fR, then
\fBTkRemind\fR won't actually print anything. Instead, it will pop
up a text window with the command that it \fIwould have used\fR to print
the calendar. You can cut-and-paste the command into a shell prompt and
adjust as needed if you want to use any \fBrem2pdf\fR or \fBrem2ps\fR
options that are not directly supported by \fBTkRemind\fR.
.SH EDITING REMINDERS
@@ -181,13 +202,11 @@ reminder entirely by selecting \fBDelete reminder\fR. The remaining
buttons, \fBPreview reminder\fR and \fBCancel\fR operate identically
to the dialog in "ADDING REMINDERS."
Note that if you edit a reminder (using \fBPreview reminder\fR),
any edits you made are \fInot\fR retained in the dialog box. You
should not attempt to edit such reminders; you have to retype them
in the \fBPreview reminder\fR dialog.
If the reminder was not created with \fBTkRemind\fR, you can't edit
it with \fBTkRemind\fR.
Note that if you have hand-edited a reminder (using \fBPreview
reminder\fR), or if the reminder was hand-created in the first place,
then clicking on it will \fInot\fR pop up the TkRemind
reminder-editing dialog. Instead, TkRemind will start up a text
editor (if you have configured one) so you can hand-edit the reminder.
.SH USING A TEXT EDITOR

View File

@@ -5,7 +5,7 @@ use ExtUtils::MakeMaker;
sub manifypods {
my ($self,%attribs) = @_;
my $result = $self->SUPER::manifypods(%attribs);
$result =~ s/^(POD2MAN_EXE\s*=\s*)(.+)$/$1$2 --center 'VERSION @VERSION@' --date '@RELEASE_DATE@'/m;
$result =~ s/^(POD2MAN_EXE\s*=\s*)(.+)$/$1$2 --center 'VERSION @VERSION@' --date '@RELEASE_DATE@' --release Remind/m;
return $result;
}
}

View File

@@ -251,7 +251,8 @@ if ($settings->{eps}) {
# Don't read from a terminal
if (-t STDIN) { ## no critic
print STDERR "I can't read data from a terminal. Please run like this:\n";
print STDERR " remind -pp [options] filename | $me [options] > out.pdf\n";
print STDERR " remind -pp [options] filename | $me [options] > out.pdf\n\n";
print STDERR "For help, run: $me --help\n";
exit(1);
}

View File

@@ -690,7 +690,7 @@ sub draw_day
$cr->restore();
}
$so_far += $h + 2 * $settings->{border_size};
$so_far += $h + $settings->{border_size};
my $entry_height = 0;
my $done = 0;
foreach my $entry (@{$self->{entries}->[$day]}) {
@@ -819,7 +819,7 @@ sub draw_title
=head2 get_rgb($color)
Parses a 3- or 6-hex-digit color value and returs [red, green, blue]. If
Parses a 3- or 6-hex-digit color value and returns [red, green, blue]. If
color could not be parsed, returns undef
=cut

File diff suppressed because it is too large Load Diff

View File

@@ -137,6 +137,7 @@
#define E_NO_MB 113
#define E_BAD_MB_SEQ 114
#define E_EXPR_NODES_EXCEEDED 115
#define E_EXPECTING_EOXPR 116
#ifdef MK_GLOBALS
#undef EXTERN
#define EXTERN
@@ -270,6 +271,7 @@ EXTERN char *ErrMsg[]
/* E_NO_MB */ "C library does not support multibyte characters",
/* E_BAD_MB_SEQ */ "Invalid multibyte sequence",
/* E_EXPR_NODES_EXCEEDED */ "Maximum expression complexity exceeded",
/* E_EXPECTING_EOXPR */ "Expecting end-of-expression",
}
#endif /* MK_GLOBALS */
;

View File

@@ -2759,9 +2759,21 @@ expr_node *parse_expression(char const **e, int *r, Var *locals)
print_expr_tree(node, ErrFp);
fprintf(ErrFp, "\n");
}
if (**e && (**e != ']')) {
orig = o2;
}
if (**e && (**e != ']')) {
if (DebugFlag & DB_PARSE_EXPR) {
fprintf(ErrFp, " Unparsed: %s\n", *e);
}
if (*r == OK) {
*r = E_EXPECTING_EOXPR;
}
}
if (*r != OK) {
if (node) {
free_expr_tree(node);
node = NULL;
}
}
if (!SuppressErrorOutputInCatch) {
if (*r == E_EXPECT_COMMA ||
@@ -2771,6 +2783,7 @@ expr_node *parse_expression(char const **e, int *r, Var *locals)
*r == E_2FEW_ARGS ||
*r == E_PARSE_ERR ||
*r == E_EOLN ||
*r == E_EXPECTING_EOXPR ||
*r == E_BAD_NUMBER ||
*r == E_BAD_DATE ||
*r == E_BAD_TIME ||

View File

@@ -34,8 +34,10 @@
#endif
#ifdef HAVE_SYS_TERMIOS_H
#ifdef __sun
#include <sys/termios.h>
#endif
#endif
#include <ctype.h>
#include <math.h>

View File

@@ -36,8 +36,10 @@
#endif
#ifdef HAVE_SYS_TERMIOS_H
#ifdef __sun
#include <sys/termios.h>
#endif
#endif
#include "types.h"

View File

@@ -13,6 +13,7 @@
13ths
15am
1GB
1p
1pm
20am
20pm
@@ -22,6 +23,7 @@
2s
30PM
34am
3pm
3string34
45am
45pm
@@ -302,6 +304,8 @@ Pango
ParseUntriggered
Paulo
Pelzl
PgDn
PgUp
Philipp
Pinard
Plaser
@@ -510,6 +514,7 @@ datetime
datetimes
day1
day2
daymap
dayname
daynames
daynum
@@ -523,6 +528,7 @@ dev
devel
dfs
dh
dialogs
difftime
doesn
dosubst
@@ -591,6 +597,7 @@ gridline
gridlines
groff
gvim
hashref
hasn
hdate
hebdate
@@ -736,6 +743,7 @@ num
ok
oktober
ol
oldstyle
ons
ordx
orthodoxeaster
@@ -785,6 +793,7 @@ rem2ps
rem2ps2
remind's
rescan
rgb
rn
ro
romanian
@@ -911,6 +920,7 @@ ubitux
ui
uid
unbuffered
undef
undefine
underlinefg
uniq
@@ -941,6 +951,8 @@ wkstart
wn
www
x00
x1
x2
xAB
xdg
xinitrc
@@ -948,6 +960,8 @@ xless
xmessage
xsiz
xsiz1
y1
y2
year1
year2
yeardiff

View File

@@ -27,12 +27,16 @@ if test `id -u` = 0 ; then
exit 1
fi
REMIND="../src/remind --flush -q"
REMIND_CMD=${REMIND_CMD:-../src/remind}
REM2PS=${REM2PS:-../src/rem2ps}
REMIND="$REMIND_CMD --flush -q"
OUT="../tests/test.out"
CMP="../tests/test.cmp"
# Set a known timezone so moon phases show up in predictable places
TZ=UTC
export TZ
LANG=C.UTF-8
LC_ALL=C.UTF-8
# Check if "grep" accepts "-a" flag
echo TEST | grep -a TEST > /dev/null 2>&1
@@ -189,8 +193,8 @@ rm -f ../tests/purge_dir/*.rem.purged >> $OUT 2>&1
$REMIND ../tests/runtest.rem >> $OUT 2>&1
$REMIND -p ../tests/shade.rem 1 August 2009 | ../src/rem2ps -e -l -c3 >> $OUT 2>&1
$REMIND -pp ../tests/shade.rem 1 August 2009 | ../src/rem2ps -e -l -c3 >> $OUT 2>&1
$REMIND -p ../tests/shade.rem 1 August 2009 | "$REM2PS" -e -l -c3 >> $OUT 2>&1
$REMIND -pp ../tests/shade.rem 1 August 2009 | "$REM2PS" -e -l -c3 >> $OUT 2>&1
TZ=America/Toronto $REMIND ../tests/sunmoon.rem 1 Jan 2011 >> $OUT 2>&1
@@ -507,8 +511,8 @@ $REMIND --version >> $OUT 2>&1
# Test queueing. Because eventstart depends on the actual system
# date, we use the --test flag to fake the date and time.
# We can't use $REMIND here because it includes the -q flag.
echo JSONQUEUE | ../src/remind --flush --test -z0 ../tests/queue1.rem >> $OUT 2>&1
echo QUEUE | ../src/remind --flush --test -zj ../tests/queue1.rem >> $OUT 2>&1
echo JSONQUEUE | "$REMIND_CMD" --flush --test -z0 ../tests/queue1.rem >> $OUT 2>&1
echo QUEUE | "$REMIND_CMD" --flush --test -zj ../tests/queue1.rem >> $OUT 2>&1
# Test for leap year bug that was fixed
$REMIND -dte - 28 Feb 2024 <<'EOF' >> $OUT 2>&1
@@ -662,6 +666,12 @@ for i in ../man/*.1 ; do
fi
done
if test -d ../rem2pdf/blib ; then
PERLMANS=`find ../rem2pdf/blib -name '*.1p' -o -name '*.3pm'`
else
PERLMANS=""
fi
# If we have "spellintian", run it against man pages
cat <<'EOF' >> $OUT
@@ -673,7 +683,7 @@ spellintian /dev/null < /dev/null > /dev/null 2>&1
if test $? = 0 ; then
echo "Linting man pages"
# we grep out some false-positives from rem2ps
spellintian --picky ../man/*.1 2>&1 | grep -v -F 'MinX MinX (duplicate word)' | grep -v -F 'MinY MinY (duplicate word)' | grep -v -F 'show show (duplicate word)' >> $OUT 2>&1
spellintian --picky $PERLMANS ../man/*.1 2>&1 | grep -v -F 'MinX MinX (duplicate word)' | grep -v -F 'MinY MinY (duplicate word)' | grep -v -F 'show show (duplicate word)' >> $OUT 2>&1
fi
# If we have "hunspell", run it against man pages
@@ -688,14 +698,13 @@ HUNSPELL="hunspell -d en_US -l -p manpage-personal-dict"
$HUNSPELL /dev/null < /dev/null > /dev/null 2>&1
if test $? = 0; then
echo "Spell-checking man pages, WHATSNEW and README.md"
cat ../man/*.1 | $HUNSPELL -n >> $OUT 2>&1
cat ../man/*.1 $PERLMANS | $HUNSPELL -n >> $OUT 2>&1
cat ../docs/WHATSNEW | $HUNSPELL >> $OUT 2>&1
cat ../README.md | $HUNSPELL >> $OUT 2>&1
# If we have pod2man, check rem2pdf and rem2html man pages too
pod2man < ../rem2html/rem2html.in > /dev/null 2>&1
if test $? = 0 ; then
pod2man < ../rem2html/rem2html.in | $HUNSPELL -n >> $OUT 2>&1
pod2man < ../rem2pdf/bin/rem2pdf.in | $HUNSPELL -n >> $OUT 2>&1
fi
fi

View File

@@ -1046,7 +1046,7 @@ set a057 value("a05"+"6")
"a05" + "6" => "a056"
value("a056") => "SDFJHSDF KSJDFH KJSDFH KSJDFH"
set a058 version()
version() => "06.01.06"
version() => "06.01.09"
set a059 wkday(today())
today() => 1991-02-16
wkday(1991-02-16) => "Saturday"
@@ -2609,7 +2609,7 @@ a056 "SDFJHSDF KSJDFH KJSDFH KSJDFH"
a007 "1991-02-16"
a057 "SDFJHSDF KSJDFH KJSDFH KSJDFH"
a008 "11:44"
a058 "06.01.06"
a058 "06.01.09"
a059 "Saturday"
a010 12
a060 6
@@ -5040,8 +5040,9 @@ set a 7 * "Cabbage! "
# Should result in errors
set pqxya 1+2)
1 + 2 => 3
../tests/test.rem(1014): Expecting end-of-line
1+2)
^-- here
../tests/test.rem(1014): Expecting end-of-expression
# Should result in an error
REM Tue OMIT 2024-01-01 MSG Wookie
@@ -5562,8 +5563,8 @@ REM SATISFY ""
REM SATISFY [version() > "01.00.00"]
../tests/test.rem(1074): SATISFY: expression has no reference to trigdate() or $T...
../tests/test.rem(1074): Trig = Saturday, 16 February, 1991
version() => "06.01.06"
"06.01.06" > "01.00.00" => 1
version() => "06.01.09"
"06.01.09" > "01.00.00" => 1
../tests/test.rem(1074): Trig(satisfied) = Saturday, 16 February, 1991
REM SATISFY [max(x, max(x, 1, 2, 3), 4, 5, 6) * 5]
../tests/test.rem(1075): SATISFY: expression has no reference to trigdate() or $T...
@@ -16669,7 +16670,7 @@ Expression nodes high-water: 302076
Expression nodes leaked: 0
Parse level high-water: 34
Max expr node evaluations per line: 2001
Total expression node evaluations: 106467
Total expression node evaluations: 106464
Test 2
@@ -23707,7 +23708,7 @@ SECURITY: Won't read world-writable file or directory!
Error reading include_dir/ww: Can't open file
SECURITY: Won't read world-writable file or directory!
Error reading include_dir/ww: No files matching *.rem
06.01.06
06.01.09
Enabling test mode: This is meant for the acceptance test.
Do not use --test in production.
In test mode, the system time is fixed at 2025-01-06@19:00
@@ -23905,7 +23906,9 @@ Parsed expression: 1||1
Parsed expression: 2
=> 2
Unparsed: , 3
../tests/expr.rem(15): Expecting end-of-line
2, 3
^-- here
../tests/expr.rem(15): Expecting end-of-expression
Parsed expression: iif(0, "foo", 0, "bar", 1, "blech", 0, "quux", 1, "borhy", "wacka")
=> (Iif 0 "foo" 0 "bar" 1 "blech" 0 "quux" 1 "borhy" "wacka")
iif(0, ?, 0, ?, 1, "blech", ?, ?, ?, ?, ?) => "blech"
@@ -23923,7 +23926,7 @@ max(6, 9, 50) => 50
Parsed expression: max(1,
=> Error: Illegal character
Unparsed: ,1)
,1)
max(1,,1)
^-- here
Parsed expression: 5%0
=> (% 5 0)
@@ -24284,7 +24287,7 @@ Expression nodes high-water: 499
Expression nodes leaked: 0
Parse level high-water: 2001
Max expr node evaluations per line: 499
Total expression node evaluations: 632
Total expression node evaluations: 631
-stdin-(14): Unmatched PUSH-OMIT-CONTEXT at -stdin-(7)
-stdin-(14): Warning: PUSH-OMIT-CONTEXT without matching POP-OMIT-CONTEXT
No reminders.
@@ -25063,6 +25066,7 @@ TRANSLATE "TZ specified for non-timed reminder" ""
TRANSLATE "C library does not support multibyte characters" ""
TRANSLATE "Invalid multibyte sequence" ""
TRANSLATE "Maximum expression complexity exceeded" ""
TRANSLATE "Expecting end-of-expression" ""
# Other Messages
TRANSLATE "%s function `%s' defined at %s(%s) does not use its argument" ""