Compare commits

...

28 Commits

Author SHA1 Message Date
Dianne Skoll
2c30088553 Update docs. 2022-02-08 13:31:11 -05:00
Dianne Skoll
6f0c189afb Edit proper file 2022-02-08 13:23:29 -05:00
Dianne Skoll
0e2996c3e1 Update "See also" 2022-02-08 13:22:32 -05:00
Dianne Skoll
ce8040dd1f Add generated file to .gitignore 2022-02-08 13:19:07 -05:00
Dianne Skoll
a8fd2d463d Update man pages 2022-02-08 13:18:48 -05:00
Dianne Skoll
237813127c Document how to highlight "today" in rem2html 2022-02-08 13:10:15 -05:00
Dianne Skoll
3e6259532f Support the old-style "REM ... SPECIAL SHADE grey" variant. 2022-02-03 19:34:09 -05:00
Dianne Skoll
c015441130 Don't barf if libcairo is too old. 2022-02-03 17:27:31 -05:00
Dianne Skoll
9661455fee Set default heading size to 12 instead of 14. 2022-02-03 16:27:38 -05:00
Dianne Skoll
df983b4123 Make sure all system variables are accessible. 2022-02-03 16:16:28 -05:00
Dianne Skoll
068d5429eb Fix variable sort order 2022-02-03 16:12:13 -05:00
Dianne Skoll
6c593fe849 Update docs. 2022-02-02 11:43:27 -05:00
Dianne Skoll
6a7bdb2ec7 Note the defalt font is Sans 2022-02-01 20:02:09 -05:00
Dianne Skoll
a4aead18dd Default font to "Sans" instead of "Helvetica" in rem2pdf... gives better output 2022-02-01 20:01:00 -05:00
Dianne Skoll
d277154d9f Update WHATSNEW 2022-02-01 19:56:51 -05:00
Dianne Skoll
d2662fb026 Remove unused macro and misleading comment. 2022-02-01 19:52:48 -05:00
Dianne Skoll
2f522ea705 Remove unused macro SIZEOF_UNSIGNED_SHORT 2022-02-01 19:51:45 -05:00
Dianne Skoll
cd68041312 Get rid of obsolete PutChar and Putc macros. 2022-02-01 16:05:06 -05:00
Dianne Skoll
9c2556f16d Remove some old cruft; increase number of full OMITs from 500 to 1000. 2022-01-31 14:43:44 -05:00
Dianne Skoll
b80b938d3d Take values from build.tk 2022-01-31 14:38:28 -05:00
Dianne Skoll
0bd6278050 Fix typo. 2022-01-31 14:37:47 -05:00
Dianne Skoll
b2746f28db Include seconds in lat/lon settings. 2022-01-31 14:35:47 -05:00
Dianne Skoll
cfd3698b53 Remove extraneous spaces. 2022-01-31 09:03:56 -05:00
Dianne Skoll
6b5150d30e Update docs. 2022-01-31 09:01:10 -05:00
Dianne Skoll
b011adf94e Fix build.tk 2022-01-31 09:00:02 -05:00
Dianne Skoll
d09b725710 Create proper custom.h 2022-01-31 08:55:34 -05:00
Dianne Skoll
2f1e3524df Replace the various LAT_ and LONG_ macros with DEFAULT_LATITUDE and DEFAULT_LONGITUDE 2022-01-31 08:52:18 -05:00
Dianne Skoll
2de47cfa51 Update docs 2022-01-30 14:42:01 -05:00
25 changed files with 692 additions and 326 deletions

1
.gitignore vendored
View File

@@ -24,3 +24,4 @@ blib/
pm_to_blib
rem2pdf/Makefile.top
rem2pdf/bin/rem2pdf
rem2html/rem2html.1

View File

@@ -27,8 +27,10 @@ proc SetConfigDefaults {} {
global Config
set Config(LAT_DEG) 45
set Config(LAT_MIN) 24
set Config(LAT_SEC) 14
set Config(LON_DEG) 75
set Config(LON_MIN) 39
set Config(LON_SEC) 23
set Config(LOCATION) "Ottawa"
set Config(DEFAULT_PAGE) "Letter"
set Config(DATESEP) "-"
@@ -157,10 +159,14 @@ proc CreateLocationDialog { w } {
-from 0 -to 89 -length 300 -variable Config(LAT_DEG)
scale $w.latmin -label "Latitude (minutes)" -orient horizontal \
-from 0 -to 59 -length 300 -variable Config(LAT_MIN)
scale $w.latsec -label "Latitude (seconds)" -orient horizontal \
-from 0 -to 59 -length 300 -variable Config(LAT_SEC)
scale $w.londeg -label "Longitude (degrees)" -orient horizontal \
-from 0 -to 179 -length 300 -variable Config(LON_DEG)
scale $w.lonmin -label "Longtude (minutes)" -orient horizontal \
-from 0 -to 59 -length 300 -variable Config(LON_MIN)
scale $w.lonsec -label "Longitude (seconds)" -orient horizontal \
-from 0 -to 59 -length 300 -variable Config(LON_SEC)
radiobutton $w.north -text "Northern Hemisphere" \
-variable Config(NORTHERN_HEMISPHERE) -value 1
@@ -176,8 +182,10 @@ proc CreateLocationDialog { w } {
$w.location insert end $Config(LOCATION)
grid $w.latdeg -
grid $w.latmin -
grid $w.latsec -
grid $w.londeg -
grid $w.lonmin -
grid $w.lonsec -
grid $w.north $w.west
grid $w.south $w.east
@@ -406,15 +414,19 @@ proc CreateCustomH {} {
# modify them willy-nilly
set LAT_DEG $Config(LAT_DEG)
set LAT_MIN $Config(LAT_MIN)
set LAT_SEC $Config(LAT_SEC)
set LON_DEG $Config(LON_DEG)
set LON_MIN $Config(LON_MIN)
set LON_SEC $Config(LON_SEC)
if {!$Config(NORTHERN_HEMISPHERE)} {
set LAT_DEG "-$LAT_DEG"
set LAT_MIN "-$LAT_MIN"
set LAT_SEC "-$LAT_SEC"
}
if {!$Config(WESTERN_HEMISPHERE)} {
set LON_DEG "-$LON_DEG"
set LON_MIN "-$LON_MIN"
set LON_SEC "-$LON_SEC"
}
set Config(LOCATION) [$Loc.location get]
@@ -431,21 +443,15 @@ proc CreateCustomH {} {
while {[gets $in line] != -1} {
switch -glob -- $line {
"#define LAT_DEG *" {
puts $out "#define LAT_DEG $LAT_DEG"
.msgs insert end "#define LAT_DEG $LAT_DEG\n"
"#define DEFAULT_LATITUDE *" {
set lat [expr $LAT_DEG + ($LAT_MIN/60.0) + ($LAT_SEC/3600.0)];
puts $out "#define DEFAULT_LATITUDE $lat"
.msgs insert end "#define DEFAULT_LATITUDE $lat"
}
"#define LAT_MIN *" {
puts $out "#define LAT_MIN $LAT_MIN"
.msgs insert end "#define LAT_MIN $LAT_MIN\n"
}
"#define LON_DEG *" {
puts $out "#define LON_DEG $LON_DEG"
.msgs insert end "#define LON_DEG $LON_DEG\n"
}
"#define LON_MIN *" {
puts $out "#define LON_MIN $LON_MIN"
.msgs insert end "#define LON_MIN $LON_MIN\n"
"#define DEFAULT_LONGITUDE *" {
set lon [expr -1.0 * ($LON_DEG + ($LON_MIN/60.0) + ($LON_SEC/3600.0))]
puts $out "#define DEFAULT_LONGITUDE $lon"
.msgs insert end "#define DEFAULT_LONGITUDE $lon"
}
"#define LOCATION *" {
puts $out "#define LOCATION \"$Config(LOCATION)\""
@@ -758,14 +764,17 @@ proc SetConfigFromRemind {} {
# Query Remind for the rest
QueryRemind $rem LAT_DEG {$LatDeg}
QueryRemind $rem LAT_MIN {$LatMin}
QueryRemind $rem LAT_SEC {$LatSec}
QueryRemind $rem LON_DEG {$LongDeg}
QueryRemind $rem LON_MIN {$LongMin}
QueryRemind $rem LON_SEC {$LongSec}
QueryRemind $rem LOCATION {$Location}
QueryRemind $rem DATESEP {$DateSep}
QueryRemind $rem TIMESEP {$TimeSep}
QueryRemind $rem LANGUAGE {language()}
set $Config(LAT_MIN) [expr abs($Config(LAT_MIN))]
set $Config(LAT_SEC) [expr abs($Config(LAT_SEC))]
if {$Config(LAT_DEG) >= 0} {
set Config(NORTHERN_HEMISPHERE) 1
} else {
@@ -774,6 +783,7 @@ proc SetConfigFromRemind {} {
}
set $Config(LON_MIN) [expr abs($Config(LON_MIN))]
set $Config(LON_SEC) [expr abs($Config(LON_SEC))]
if {$Config(LON_DEG) >= 0} {
set Config(WESTERN_HEMISPHERE) 1
} else {

33
configure vendored
View File

@@ -3731,39 +3731,6 @@ fi
done
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned short" >&5
$as_echo_n "checking size of unsigned short... " >&6; }
if ${ac_cv_sizeof_unsigned_short+:} false; then :
$as_echo_n "(cached) " >&6
else
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned short))" "ac_cv_sizeof_unsigned_short" "$ac_includes_default"; then :
else
if test "$ac_cv_type_unsigned_short" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (unsigned short)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_unsigned_short=0
fi
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_short" >&5
$as_echo "$ac_cv_sizeof_unsigned_short" >&6; }
cat >>confdefs.h <<_ACEOF
#define SIZEOF_UNSIGNED_SHORT $ac_cv_sizeof_unsigned_short
_ACEOF
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.

View File

@@ -27,7 +27,6 @@ dnl Replace `main' with a function in -lm:
AC_CHECK_LIB(m, sqrt)
dnl Integer sizes
AC_CHECK_SIZEOF(unsigned short)
AC_CHECK_SIZEOF(unsigned int)
AC_CHECK_SIZEOF(unsigned long)

View File

@@ -11,7 +11,13 @@ CHANGES TO REMIND
type that lets you format the text in the PDF calendar (by changing the
font size, color, underlining, etc.)
rem2pdf requires the Pango and Cairo Perl modules.
rem2pdf requires the Pango and Cairo Perl modules. On Debian or
Debian-derived systems, these may be installed with:
apt install libpango-perl libcairo-perl
Unlike rem2ps, the default font in rem2pdf is "Sans" rather than
"Helvetica", as Sans seems to be typeset better by the Pango library.
- NEW FEATURE: remind: New system variables $Sunday through $Saturday
and $January through $December let you set weekday and month names
@@ -22,9 +28,31 @@ CHANGES TO REMIND
- NEW FEATURE: tkremind: If rem2pdf installed, TkRemind offers you the
choice of PDF or PostScript output in the Print dialog.
- CHANGE: remind: Increase the number of allowed "full OMITs" from 500
to 1000.
- CHANGE: Remove the annoying code that slowed compilation and running
on Windows and Mac OS X. I believe the point has been made and free
OSes have enough of a critical mass that the annoyances are
counter-productive.
- CLEANUP: remind: C source code: Replace the LAT_DEG, LAT_MIN,
LAT_SEC and LON_DEG, LON_MIN, LON_SEC macros with DEFAULT_LATITUDE
and DEFAULT_LONGITUDE.
- CLEANUP: remind: C source code: Remove various unused or obsolete macros.
- BUG FIX: Properly support formatting of double-wide characters in the
terminal mode "remind -c" calendar.
- BUG FIX: rem2html: Document how to highlight today with a red border
- BUG FIX: rem2html: Generate and install a man page for rem2html
- BUG FIX: remind: Get rid of LAT_DEG/LAT_MIN/LAT_SEC and
LON_DEG/LON_MIN/LON_SEC macros in favour of DEFAULT_LATITUDE and
DEFAULT_LONGITUDE.
- IMPROVEMENT: All localized languages now use UTF-8 exclusively.
Support for old character encodings like ISO-8859-1 and ISO-8859-2
has been dropped since modern UNIXes have pretty much standardized

View File

@@ -675,4 +675,5 @@ You should ensure that the values you supply for margin widths are sensible.
If they are too big for the media size, \fBRem2ps\fR will not complain,
but again, the PostScript output will probably not work.
.SH SEE ALSO
\fBremind\fR, \fBrem2pdf\fR
\fBremind\fR, \fBrem2pdf\fR, \fBrem2html\fR, \fBtkremind\fR.

View File

@@ -5050,4 +5050,5 @@ Catalog\fR, Jewish Publication Society of America.
.PP
.SH SEE ALSO
.PP
\fBrem\fR(1), \fBrem2ps\fR(1), \fBrem2pdf\fR(1), \fBtkremind\fR(1)
\fBrem\fR(1), \fBrem2ps\fR(1), \fBrem2pdf\fR(1), \fBtkremind\fR(1), \fBrem2html\fR(1)

View File

@@ -402,4 +402,5 @@ $HOME/.reminders -- default reminder file.
$HOME/.tkremindrc -- \fBTkRemind\fR saved options.
.SH SEE ALSO
remind, rem2ps
\fBremind\fR, \fBrem2ps\fR, \fBrem2pdf\fR, \fBrem2html\fR

View File

@@ -19,6 +19,7 @@ install:
$(PERL) -M$$m -e 1 > /dev/null 2>&1; \
if test $$? != 0 ; then echo "Not installing rem2html; missing $$m"; exit 0; fi; \
done; \
pod2man rem2html > rem2html.1 && mkdir -p $(DESTDIR)$(mandir)/man1 && cp rem2html.1 $(DESTDIR)$(mandir)/man1/rem2html.1 || true; \
echo "Installing rem2html in $(DESTDIR)$(bindir)"; \
mkdir -p $(DESTDIR)$(bindir) && sed -e 's|^#!perl|#!$(PERL)|' < rem2html > $(DESTDIR)$(bindir)/rem2html && chmod 755 $(DESTDIR)$(bindir)/rem2html && exit 0; \
exit 1;

View File

@@ -96,11 +96,43 @@ Insert I<html_text> right before the E<lt>/bodyE<gt> tag.
=back
=head1 SPECIALS SUPPORTED
The rem2html back-end supports the following SPECIAL reminders:
=over
=item HTML
Add an HTML reminder to the calendar. All HTML tags are available.
=item HTMLCLASS
Add a CSS class to the box representing the trigger date. See
"HIGHLIGHTING TODAY" for an example
=item WEEK, MOON, SHARE, COLOR
The standard SPECIALs supported by all back-ends
=back
=head1 HIGHLIGHTING TODAY
Older versions of rem2html used to highlight today's date with a red outline.
The current version does not do that by default. If you wish to highlight
today's date, add the following reminder to your reminders file:
REM [realtoday()] SPECIAL HTMLCLASS rem-today
=head1 AUTHOR
rem2html was written by Dianne Skoll with much inspiration from an
earlier version by Don Schwarz.
=head1 SEE ALSO
B<remind>, B<rem2ps>, B<rem2pdf>, B<tkremind>
=cut
sub usage
@@ -487,7 +519,7 @@ sub output_calendar
}
for (my $day=1; $day<=$Numdays; $day++) {
draw_day_cell($day, $number_of_rows);
draw_day_cell($day, $number_of_rows);
$col++;
if ($col == 7) {
$col = 0;

View File

@@ -36,8 +36,5 @@ install:
fi; \
exit 1;
Makefile: Makefile.PL
$(PERL) Makefile.PL || true

View File

@@ -40,14 +40,14 @@ my $settings = {
width => 0,
height => 0,
title_font => 'Helvetica',
header_font => 'Helvetica',
daynum_font => 'Helvetica Bold Oblique',
entry_font => 'Helvetica',
small_cal_font => 'Helvetica',
title_font => 'Sans',
header_font => 'Sans',
daynum_font => 'Sans Bold Oblique',
entry_font => 'Sans',
small_cal_font => 'Sans',
title_size => 14,
header_size => 14,
header_size => 12,
daynum_size => 14,
entry_size => 8,
@@ -186,10 +186,11 @@ my $errored_out = 0;
my $surface = Cairo::PdfSurface->create_for_stream(sub { print $_[1] unless $errored_out; }, undef,
$settings->{width}, $settings->{height});
$surface->set_metadata('title', 'Calendar');
$surface->set_metadata('author', 'Remind (https://dianne.skoll.ca/projects/remind/)');
$surface->set_metadata('creator', 'rem2pdf (https://dianne.skoll.ca/projects/remind/)');
$surface->set_metadata('subject', 'Calendar');
# set_metadata not available in older versions of Cairo
eval { $surface->set_metadata('title', 'Calendar'); };
eval { $surface->set_metadata('author', 'Remind (https://dianne.skoll.ca/projects/remind/)'); };
eval { $surface->set_metadata('creator', 'rem2pdf (https://dianne.skoll.ca/projects/remind/)'); };
eval { $surface->set_metadata('subject', 'Calendar'); };
my $cr = Cairo::Context->create($surface);
$cr->set_line_width($settings->{line_thickness});
@@ -355,27 +356,27 @@ width and height for the options to be respected.
=item --title-font=I<font>
Specify the font used for the calendar title. It can be any font that
the Pango library on your system can use. The default is Helvetica. If
the Pango library on your system can use. The default is Sans. If
you choose a font with spaces in its name, you may need to quote this
argument.
=item --header-font=I<font>
Specify the font used for the weekday names. The default is Helvetica.
Specify the font used for the weekday names. The default is Sans.
=item --daynum-font=I<font>
Specify the font used for the day numbers. The default is
Helvetica Bold Oblique.
Sans Bold Oblique.
=item --entry-font=I<font>
Specify the font used for calendar entries. The default is Helvetica.
Specify the font used for calendar entries. The default is Sans.
=item --small-cal-font=I<font>
Specify the font used for the small next- and previous-month
calendars. The default is Helvetica.
calendars. The default is Sans.
=item --title-size=I<n>
@@ -504,4 +505,5 @@ B<Rem2PDF> was written by Dianne Skoll <dianne@skoll.ca>
=head1 SEE ALSO
B<remind>, B<rem2ps>
B<remind>, B<rem2ps>, B<rem2html>, B<tkremind>

View File

@@ -231,6 +231,10 @@ sub parse_oldstyle_line
$hash->{r} = $1;
$hash->{g} = $2;
$hash->{b} = $3;
} elsif ($hash->{body} =~ /^\s*(\d+)/) {
$hash->{r} = $1;
$hash->{g} = $1;
$hash->{b} = $1;
}
}
}
@@ -701,7 +705,8 @@ sub draw_title
my ($self, $cr, $settings) = @_;
my $title = $self->{monthname} . ' ' . $self->{year};
$cr->get_target()->set_page_label($title);
# set_page_label not available in older versions of Cairo
eval { $cr->get_target()->set_page_label($title); };
my $layout = Pango::Cairo::create_layout($cr);
$layout->set_text(Encode::decode('UTF-8', $title));
my $desc = Pango::FontDescription->from_string($settings->{title_font} . ' ' . $settings->{title_size} . 'px');

View File

@@ -684,7 +684,7 @@ static void DoCalendarOneWeek(int nleft)
DRAW(tb);
goff();
}
PutChar('\n');
putchar('\n');
for (l=0; l<CalPad; l++) {
gon();
DRAW(tb);
@@ -695,7 +695,7 @@ static void DoCalendarOneWeek(int nleft)
DRAW(tb);
goff();
}
PutChar('\n');
putchar('\n');
}
/* Write the body lines */
@@ -716,7 +716,7 @@ static void DoCalendarOneWeek(int nleft)
DRAW(tb);
goff();
}
PutChar('\n');
putchar('\n');
}
/* Write the final line */
@@ -867,7 +867,7 @@ static int WriteCalendarRow(void)
sprintf(buf, "%d ", d+i-wd);
if (Julian(y, m, d+i-wd) == RealToday) {
PrintLeft(buf, ColSpaces-1, '*');
PutChar(' ');
putchar(' ');
} else {
PrintLeft(buf, ColSpaces, ' ');
}
@@ -876,7 +876,7 @@ static int WriteCalendarRow(void)
DRAW(tb);
goff();
}
PutChar('\n');
putchar('\n');
for (l=0; l<CalPad; l++) {
gon();
DRAW(tb);
@@ -887,7 +887,7 @@ static int WriteCalendarRow(void)
DRAW(tb);
goff();
}
PutChar('\n');
putchar('\n');
}
/* Write the body lines */
@@ -908,7 +908,7 @@ static int WriteCalendarRow(void)
DRAW(tb);
goff();
}
PutChar('\n');
putchar('\n');
}
moreleft = (d+7-wd <= DaysInMonth(m, y));
@@ -934,7 +934,7 @@ static void PrintLeft(char const *s, int width, char pad)
#ifndef REM_USE_WCHAR
int len = strlen(s);
printf("%s", s);
while (len++ < width) PutChar(pad);
while (len++ < width) putchar(pad);
#else
size_t len = mbstowcs(NULL, s, 0);
int i;
@@ -999,10 +999,10 @@ static void PrintCentered(char const *s, int width, char *pad)
for (i=0; i<width; i++) {
if (*s) {
if (isspace(*s)) {
PutChar(' ');
putchar(' ');
s++;
} else {
PutChar(*s++);
putchar(*s++);
}
} else {
break;
@@ -1084,7 +1084,7 @@ static int WriteOneCalLine(void)
DRAW(tb);
goff();
}
PutChar('\n');
putchar('\n');
return done;
}
@@ -1157,7 +1157,7 @@ static int WriteOneColLine(int col)
for (ws = e->wc_pos; ws - e->wc_pos < ColSpaces; ws++) {
if (!*ws) break;
if (iswspace(*ws)) {
PutChar(' ');
putchar(' ');
numwritten++;
} else {
if (wcwidth(*ws) > 0) {
@@ -1172,7 +1172,7 @@ static int WriteOneColLine(int col)
for (ws = e->wc_pos; ws<wspace; ws++) {
if (!*ws) break;
if (iswspace(*ws)) {
PutChar(' ');
putchar(' ');
numwritten++;
} else {
if (wcwidth(*ws) > 0) {
@@ -1189,7 +1189,7 @@ static int WriteOneColLine(int col)
}
/* Flesh out the rest of the column */
while(numwritten++ < ColSpaces) PutChar(' ');
while(numwritten++ < ColSpaces) putchar(' ');
/* Skip any spaces before next word */
while (iswspace(*ws)) ws++;
@@ -1244,9 +1244,9 @@ static int WriteOneColLine(int col)
if (!*s) break;
numwritten++;
if (isspace(*s)) {
PutChar(' ');
putchar(' ');
} else {
PutChar(*s);
putchar(*s);
}
}
e->pos = s;
@@ -1256,9 +1256,9 @@ static int WriteOneColLine(int col)
if (!*s) break;
numwritten++;
if (isspace(*s)) {
PutChar(' ');
putchar(' ');
} else {
PutChar(*s);
putchar(*s);
}
}
}
@@ -1269,7 +1269,7 @@ static int WriteOneColLine(int col)
}
/* Flesh out the rest of the column */
while(numwritten++ < ColSpaces) PutChar(' ');
while(numwritten++ < ColSpaces) putchar(' ');
/* Skip any spaces before next word */
while (isspace(*s)) s++;
@@ -1423,7 +1423,7 @@ static void WriteCalHeader(void)
gon();
DRAW(tb);
goff();
PutChar('\n');
putchar('\n');
WritePostHeaderLine();
WriteCalDays();
@@ -1437,7 +1437,7 @@ static void WriteCalHeader(void)
/***************************************************************/
static void WriteCalTrailer(void)
{
PutChar('\f');
putchar('\f');
}
/***************************************************************/
@@ -2051,7 +2051,7 @@ static void WriteTopCalLine(void)
PrintCentered("", CalWidth-2, linestruct->lr);
DRAW(bl);
goff();
PutChar('\n');
putchar('\n');
}
static void WriteBottomCalLine(void)
@@ -2068,7 +2068,7 @@ static void WriteBottomCalLine(void)
}
}
goff();
PutChar('\n');
putchar('\n');
}
static void WritePostHeaderLine(void)
@@ -2085,7 +2085,7 @@ static void WritePostHeaderLine(void)
}
}
goff();
PutChar('\n');
putchar('\n');
}
static void WriteWeekHeaderLine(void)
@@ -2102,7 +2102,7 @@ static void WriteWeekHeaderLine(void)
}
}
goff();
PutChar('\n');
putchar('\n');
}
static void WriteIntermediateCalLine(void)
@@ -2120,7 +2120,7 @@ static void WriteIntermediateCalLine(void)
}
}
goff();
PutChar('\n');
putchar('\n');
}
static void WriteCalDays(void)
@@ -2138,7 +2138,7 @@ static void WriteCalDays(void)
DRAW(tb);
goff();
}
PutChar('\n');
putchar('\n');
}
/***************************************************************/

View File

@@ -38,7 +38,4 @@
/* The number of bytes in a unsigned long. */
#undef SIZEOF_UNSIGNED_LONG
/* The number of bytes in a unsigned short. */
#undef SIZEOF_UNSIGNED_SHORT
#include "custom.h"

View File

@@ -11,22 +11,18 @@
/***************************************************************/
/*---------------------------------------------------------------------*/
/* LAT_DEG, LAT_MIN and LAT_SEC: Latitude of your location */
/* LON_DEG, LON_MIN and LON_SEC: Longitude of your location */
/* DEFAULT_LATITUDE: Latitude of your location */
/* DEFAULT_LONGITUDE: Longitude of your location */
/* LOCATION: A string identifying your location. */
/* All latitude and longitude numbers should be positive for the */
/* northern and western hemisphere. If you live in the southern */
/* hemisphere, ALL latitude values should be negative. If you live */
/* in the eastern hemisphere, ALL longitude values should be negative. */
/* Latitude and longitude should be positive for the */
/* northern and eastern hemisphere and negative for the southern and */
/* western hemisphere. */
/* */
/* The default values are initially set to Ottawa, Ontario, Canada. */
/* The default values are initially set to the city hall in Ottawa, */
/* Ontario, Canada. */
/*---------------------------------------------------------------------*/
#define LAT_DEG 45
#define LAT_MIN 25
#define LAT_SEC 30
#define LON_DEG 75
#define LON_MIN 41
#define LON_SEC 59
#define DEFAULT_LATITUDE 45.42055555555555
#define DEFAULT_LONGITUDE -75.68972222222223
#define LOCATION "Ottawa"
/*---------------------------------------------------------------------*/
@@ -58,12 +54,6 @@
#define DATETIMESEP '@'
/* #define DATETIMESEP '/' */
/*---------------------------------------------------------------------*/
/* WANT_U_OPTION: Comment out the next define to permanently disable */
/* the -u option. */
/*---------------------------------------------------------------------*/
#define WANT_U_OPTION 1
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
@@ -81,16 +71,7 @@
/* WANT_SHELL_ESCAPING: Define this if you want special shell */
/* characters to be escaped with a backslash for the -k option. */
/*---------------------------------------------------------------------*/
#if defined(UNIX)
#define WANT_SHELL_ESCAPING 1
#endif
/*---------------------------------------------------------------------*/
/* Some implementations have a broken 'putc' and 'putchar'. */
/*---------------------------------------------------------------------*/
#ifdef __SASC_60
#define BROKEN_PUTC
#endif
/*---------------------------------------------------------------------*/
/* BASE: The base year for date calculation. NOTE! January 1 of the */
@@ -156,7 +137,7 @@
/*---------------------------------------------------------------------*/
/* How many global omits of the form YYYY MM DD do we handle? */
/*---------------------------------------------------------------------*/
#define MAX_FULL_OMITS 500
#define MAX_FULL_OMITS 1000
/*---------------------------------------------------------------------*/
/* How many global omits of the form MM DD do we handle? */
@@ -190,14 +171,6 @@
#define PSBEGIN2 "# rem2ps2 begin"
#define PSEND2 "# rem2ps2 end"
#ifdef BROKEN_PUTC
#define Putc SafePutc
#define PutChar SafePutChar
#else
#define Putc putc
#define PutChar putchar
#endif
#if defined(HAVE_MBSTOWCS) && defined(HAVE_WCTYPE_H)
#define REM_USE_WCHAR 1
#else

View File

@@ -11,22 +11,18 @@
/***************************************************************/
/*---------------------------------------------------------------------*/
/* LAT_DEG, LAT_MIN and LAT_SEC: Latitude of your location */
/* LON_DEG, LON_MIN and LON_SEC: Longitude of your location */
/* DEFAULT_LATITUDE: Latitude of your location */
/* DEFAULT_LONGITUDE: Longitude of your location */
/* LOCATION: A string identifying your location. */
/* All latitude and longitude numbers should be positive for the */
/* northern and western hemisphere. If you live in the southern */
/* hemisphere, ALL latitude values should be negative. If you live */
/* in the eastern hemisphere, ALL longitude values should be negative. */
/* Latitude and longitude should be positive for the */
/* northern and eastern hemisphere and negative for the southern and */
/* western hemisphere. */
/* */
/* The default values are initially set to Ottawa, Ontario, Canada. */
/* The default values are initially set to the city hall in Ottawa, */
/* Ontario, Canada. */
/*---------------------------------------------------------------------*/
#define LAT_DEG 45
#define LAT_MIN 25
#define LAT_SEC 30
#define LON_DEG 75
#define LON_MIN 41
#define LON_SEC 59
#define DEFAULT_LATITUDE 45.42055555555555
#define DEFAULT_LONGITUDE -75.68972222222223
#define LOCATION "Ottawa"
/*---------------------------------------------------------------------*/
@@ -58,12 +54,6 @@
#define DATETIMESEP '@'
/* #define DATETIMESEP '/' */
/*---------------------------------------------------------------------*/
/* WANT_U_OPTION: Comment out the next define to permanently disable */
/* the -u option. */
/*---------------------------------------------------------------------*/
#define WANT_U_OPTION 1
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
@@ -81,16 +71,7 @@
/* WANT_SHELL_ESCAPING: Define this if you want special shell */
/* characters to be escaped with a backslash for the -k option. */
/*---------------------------------------------------------------------*/
#if defined(UNIX)
#define WANT_SHELL_ESCAPING 1
#endif
/*---------------------------------------------------------------------*/
/* Some implementations have a broken 'putc' and 'putchar'. */
/*---------------------------------------------------------------------*/
#ifdef __SASC_60
#define BROKEN_PUTC
#endif
/*---------------------------------------------------------------------*/
/* BASE: The base year for date calculation. NOTE! January 1 of the */
@@ -156,7 +137,7 @@
/*---------------------------------------------------------------------*/
/* How many global omits of the form YYYY MM DD do we handle? */
/*---------------------------------------------------------------------*/
#define MAX_FULL_OMITS 500
#define MAX_FULL_OMITS 1000
/*---------------------------------------------------------------------*/
/* How many global omits of the form MM DD do we handle? */
@@ -190,14 +171,6 @@
#define PSBEGIN2 "# rem2ps2 begin"
#define PSEND2 "# rem2ps2 end"
#ifdef BROKEN_PUTC
#define Putc SafePutc
#define PutChar SafePutChar
#else
#define Putc putc
#define PutChar putchar
#endif
#if defined(HAVE_MBSTOWCS) && defined(HAVE_WCTYPE_H)
#define REM_USE_WCHAR 1
#else

View File

@@ -101,7 +101,7 @@ static int DebugPerform(Operator *op)
fprintf(ErrFp, " => ");
if (!r) {
PrintValue(&ValStack[ValStackPtr-1], ErrFp);
Putc('\n', ErrFp);
putc('\n', ErrFp);
} else {
fprintf(ErrFp, "%s\n", ErrMsg[r]);
}
@@ -580,7 +580,7 @@ static int MakeValue(char const *s, Value *v, Var *locals, ParsePtr p)
if (! (DebugFlag & DB_PRTEXPR)) return r;
if (r == OK) {
PrintValue(v, ErrFp);
Putc('\n', ErrFp);
putc('\n', ErrFp);
}
return r;
} else { /* Must be a symbol */
@@ -591,7 +591,7 @@ static int MakeValue(char const *s, Value *v, Var *locals, ParsePtr p)
if (! (DebugFlag & DB_PRTEXPR)) return r;
if (r == OK) {
PrintValue(v, ErrFp);
Putc('\n', ErrFp);
putc('\n', ErrFp);
}
return r;
}
@@ -1232,9 +1232,9 @@ void PrintValue (Value *v, FILE *fp)
if (v->type == STR_TYPE) {
s=v->v.str;
Putc('"', fp);
for (y=0; y<MAX_PRT_LEN && *s; y++) Putc(*s++, fp);
Putc('"',fp);
putc('"', fp);
for (y=0; y<MAX_PRT_LEN && *s; y++) putc(*s++, fp);
putc('"',fp);
if (*s) fprintf(fp, "...");
}
else if (v->type == INT_TYPE) fprintf(fp, "%d", v->v.val);

View File

@@ -118,14 +118,14 @@ EXTERN INIT( int UseTrueColors, 0);
EXTERN INIT( int TerminalBackground, TERMINAL_BACKGROUND_UNKNOWN);
/* Latitude and longitude */
EXTERN INIT( int LatDeg, LAT_DEG);
EXTERN INIT( int LatMin, LAT_MIN);
EXTERN INIT( int LatSec, LAT_SEC);
EXTERN INIT( int LongDeg, LON_DEG);
EXTERN INIT( int LongMin, LON_MIN);
EXTERN INIT( int LongSec, LON_SEC);
EXTERN INIT( double Longitude, -999.0);
EXTERN INIT( double Latitude, -999.0);
EXTERN INIT( int LatDeg, 0);
EXTERN INIT( int LatMin, 0);
EXTERN INIT( int LatSec, 0);
EXTERN INIT( int LongDeg, 0);
EXTERN INIT( int LongMin, 0);
EXTERN INIT( int LongSec, 0);
EXTERN INIT( double Longitude, DEFAULT_LONGITUDE);
EXTERN INIT( double Latitude, DEFAULT_LATITUDE);
EXTERN INIT( char *Location, LOCATION);

View File

@@ -185,7 +185,7 @@ void InitRemind(int argc, char const *argv[])
FromJulian(JulianToday, &CurYear, &CurMon, &CurDay);
/* Initialize Latitude and Longitude */
set_lat_and_long_from_components();
set_components_from_lat_and_long();
/* See if we were invoked as "rem" rather than "remind" */
if (argv[0]) {

View File

@@ -44,10 +44,6 @@
static void DoReminders(void);
/* Whooo... the putchar/Putchar/PutChar macros are a mess...
my apologies... */
#define Putchar(c) PutChar(c)
/***************************************************************/
/***************************************************************/
/** **/
@@ -616,11 +612,11 @@ void OutputLine(FILE *fp)
char c = 0;
while (*s) {
if (*s == '\n') Putc('\\', fp);
Putc(*s, fp);
if (*s == '\n') putc('\\', fp);
putc(*s, fp);
c = *s++;
}
if (c != '\n') Putc('\n', fp);
if (c != '\n') putc('\n', fp);
}
/***************************************************************/
@@ -1212,7 +1208,7 @@ void FillParagraph(char const *s)
/* If it's a carriage return, output it and start new paragraph */
if (*s == '\n') {
Putchar('\n');
putchar('\n');
s++;
line = 0;
while(ISBLANK(*s)) s++;
@@ -1225,7 +1221,7 @@ void FillParagraph(char const *s)
number of spaces */
j = line ? SubsIndent : FirstIndent;
for (i=0; i<j; i++) {
Putchar(' ');
putchar(' ');
}
/* Calculate the amount of room left on this line */
@@ -1244,17 +1240,17 @@ void FillParagraph(char const *s)
}
if (!pendspace || len+pendspace <= roomleft) {
for (i=0; i<pendspace; i++) {
Putchar(' ');
putchar(' ');
}
while(t < s) {
Putchar(*t);
putchar(*t);
if (strchr(EndSent, *t)) doublespace = 2;
else if (!strchr(EndSentIg, *t)) doublespace = 1;
t++;
}
} else {
s = t;
Putchar('\n');
putchar('\n');
line++;
break;
}

View File

@@ -146,9 +146,9 @@ put_escaped_string(char const *s)
{
while(*s) {
if (*s == '\\' || *s == '(' || *s == ')') {
PutChar('\\');
putchar('\\');
}
PutChar(*s);
putchar(*s);
s++;
}
}
@@ -625,7 +625,7 @@ void WriteProlog(void)
strcmp(SmallFont, DayFont) &&
strcmp(TitleFont, SmallFont) &&
strcmp(SmallFont, EntryFont)) printf(" %s", SmallFont);
PutChar('\n');
putchar('\n');
printf("%%%%Creator: Rem2PS\n");
printf("%%%%Pages: (atend)\n");
printf("%%%%Orientation: %s\n", PortraitMode ? "Portrait" : "Landscape");
@@ -805,20 +805,20 @@ void WriteOneEntry(CalEntry *c)
}
}
PutChar('(');
putchar('(');
while(*s) {
/* Use the "unsigned char" cast to fix problem on Solaris 2.5 */
/* which treated some latin1 characters as white space. */
ch = (unsigned char) *s++;
if (ch == '\\' || ch == '(' || ch == ')') PutChar('\\');
if (!isspace(ch)) PutChar(ch);
if (ch == '\\' || ch == '(' || ch == ')') putchar('\\');
if (!isspace(ch)) putchar(ch);
else {
PutChar(')');
putchar(')');
while(isspace((unsigned char)*s)) s++;
if (!*s) {
goto finish;
}
PutChar('(');
putchar('(');
}
}
printf(")\n");

View File

@@ -743,8 +743,8 @@ static SysVar SysVarArr[] = {
/* name mod type value min/mal max validate*/
{"April", 1, STR_TYPE, &DynamicMonthName[3], 0, 0, NULL },
{"August", 1, STR_TYPE, &DynamicMonthName[7], 0, 0, NULL },
{"CalMode", 0, INT_TYPE, &DoCalendar, 0, 0, NULL },
{"CalcUTC", 1, INT_TYPE, &CalculateUTC, 0, 1, NULL },
{"CalMode", 0, INT_TYPE, &DoCalendar, 0, 0, NULL },
{"Daemon", 0, INT_TYPE, &Daemon, 0, 0, NULL },
{"DateSep", 1, SPECIAL_TYPE, date_sep_func, 0, 0, NULL },
{"DateTimeSep", 1, SPECIAL_TYPE, datetime_sep_func, 0, 0, NULL },
@@ -989,29 +989,29 @@ static void DumpSysVar(char const *name, const SysVar *v)
SysVarFunc f = (SysVarFunc) v->value;
f(0, &val);
PrintValue(&val, ErrFp);
Putc('\n', ErrFp);
putc('\n', ErrFp);
DestroyValue(val);
} else if (v->type == STR_TYPE) {
char const *s = *((char **)v->value);
int y;
Putc('"', ErrFp);
putc('"', ErrFp);
for (y=0; y<MAX_PRT_LEN && *s; y++) {
if (*s == '"') {
fprintf(ErrFp, "\" + char(34) + \"");
s++;
} else {
Putc(*s++, ErrFp);
putc(*s++, ErrFp);
}
}
Putc('"', ErrFp);
putc('"', ErrFp);
if (*s) fprintf(ErrFp, "...");
Putc('\n', ErrFp);
putc('\n', ErrFp);
} else if (v->type == DATE_TYPE) {
Value val;
val.type = DATE_TYPE;
val.v.val = * (int *) v->value;
PrintValue(&val, ErrFp);
Putc('\n', ErrFp);
putc('\n', ErrFp);
} else {
if (!v->modifiable) fprintf(ErrFp, "%d\n", *((int *)v->value));
else {

View File

@@ -837,7 +837,7 @@ REM Mon 15 Feb ADDOMIT MSG Family Day
REM Feb 18 AFTER MSG Should trigger on Feb 19
../tests/test.rem(233): Trig = Tuesday, 19 February, 1991
OMIT DUMP
Global Full OMITs (1 of maximum allowed 500):
Global Full OMITs (1 of maximum allowed 1000):
1991-02-18
Global Partial OMITs (0 of maximum allowed 366):
None.
@@ -2688,8 +2688,8 @@ Variable Value
$April "April"
$August "August"
$CalMode 0
$CalcUTC 0 [0, 1]
$CalMode 0
$Daemon 0
$DateSep "-"
$DateTimeSep "@"
@@ -2762,18 +2762,323 @@ Variable Value
$Uw 6
$Uy 1991
$Wednesday "Wednesday"
msg [$April]%
../tests/test.rem(450): Trig = Saturday, 16 February, 1991
$April => "April"
April
msg [$August]%
../tests/test.rem(451): Trig = Saturday, 16 February, 1991
$August => "August"
August
msg [$CalcUTC]%
../tests/test.rem(452): Trig = Saturday, 16 February, 1991
$CalcUTC => 0
0
msg [$CalMode]%
../tests/test.rem(453): Trig = Saturday, 16 February, 1991
$CalMode => 0
0
msg [$Daemon]%
../tests/test.rem(454): Trig = Saturday, 16 February, 1991
$Daemon => 0
0
msg [$DateSep]%
../tests/test.rem(455): Trig = Saturday, 16 February, 1991
$DateSep => "-"
-
msg [$DateTimeSep]%
../tests/test.rem(456): Trig = Saturday, 16 February, 1991
$DateTimeSep => "@"
@
msg [$December]%
../tests/test.rem(457): Trig = Saturday, 16 February, 1991
$December => "December"
December
msg [$DefaultColor]%
../tests/test.rem(458): Trig = Saturday, 16 February, 1991
$DefaultColor => "-1 -1 -1"
-1 -1 -1
msg [$DefaultPrio]%
../tests/test.rem(459): Trig = Saturday, 16 February, 1991
$DefaultPrio => 5000
5000
msg [$DefaultTDelta]%
../tests/test.rem(460): Trig = Saturday, 16 February, 1991
$DefaultTDelta => 0
0
msg [$DeltaOffset]%
../tests/test.rem(461): Trig = Saturday, 16 February, 1991
$DeltaOffset => 0
0
msg [$DontFork]%
../tests/test.rem(462): Trig = Saturday, 16 February, 1991
$DontFork => 0
0
msg [$DontQueue]%
../tests/test.rem(463): Trig = Saturday, 16 February, 1991
$DontQueue => 0
0
msg [$DontTrigAts]%
../tests/test.rem(464): Trig = Saturday, 16 February, 1991
$DontTrigAts => 0
0
msg [$EndSent]%
../tests/test.rem(465): Trig = Saturday, 16 February, 1991
$EndSent => ".?!"
.?!
msg [$EndSentIg]%
../tests/test.rem(466): Trig = Saturday, 16 February, 1991
$EndSentIg => ""')]}>"
"')]}>
msg [$February]%
../tests/test.rem(467): Trig = Saturday, 16 February, 1991
$February => "February"
February
msg [$FirstIndent]%
../tests/test.rem(468): Trig = Saturday, 16 February, 1991
$FirstIndent => 0
0
msg [$FoldYear]%
../tests/test.rem(469): Trig = Saturday, 16 February, 1991
$FoldYear => 0
0
msg [$FormWidth]%
../tests/test.rem(470): Trig = Saturday, 16 February, 1991
$FormWidth => 72
72
msg [$Friday]%
../tests/test.rem(471): Trig = Saturday, 16 February, 1991
$Friday => "Friday"
Friday
msg [$HushMode]%
../tests/test.rem(472): Trig = Saturday, 16 February, 1991
$HushMode => 0
0
msg [$IgnoreOnce]%
../tests/test.rem(473): Trig = Saturday, 16 February, 1991
$IgnoreOnce => 1
1
msg [$InfDelta]%
../tests/test.rem(474): Trig = Saturday, 16 February, 1991
$InfDelta => 0
0
msg [$IntMax]%
../tests/test.rem(475): Trig = Saturday, 16 February, 1991
$IntMax => 2147483647
2147483647
msg [$IntMin]%
../tests/test.rem(476): Trig = Saturday, 16 February, 1991
$IntMin => -2147483648
-2147483648
msg [$January]%
../tests/test.rem(477): Trig = Saturday, 16 February, 1991
$January => "January"
January
msg [$July]%
../tests/test.rem(478): Trig = Saturday, 16 February, 1991
$July => "July"
July
msg [$June]%
../tests/test.rem(479): Trig = Saturday, 16 February, 1991
$June => "June"
June
msg [$LatDeg]%
../tests/test.rem(480): Trig = Saturday, 16 February, 1991
$LatDeg => 30
30
msg [$Latitude]%
../tests/test.rem(481): Trig = Saturday, 16 February, 1991
$Latitude => "30.500000"
30.500000
msg [$LatMin]%
../tests/test.rem(482): Trig = Saturday, 16 February, 1991
$LatMin => 30
30
msg [$LatSec]%
../tests/test.rem(483): Trig = Saturday, 16 February, 1991
$LatSec => 0
0
msg [$Location]%
../tests/test.rem(484): Trig = Saturday, 16 February, 1991
$Location => "Ottawa"
Ottawa
msg [$LongDeg]%
../tests/test.rem(485): Trig = Saturday, 16 February, 1991
$LongDeg => -25
-25
msg [$Longitude]%
../tests/test.rem(486): Trig = Saturday, 16 February, 1991
$Longitude => "24.750000"
24.750000
msg [$LongMin]%
../tests/test.rem(487): Trig = Saturday, 16 February, 1991
$LongMin => 15
15
msg [$LongSec]%
../tests/test.rem(488): Trig = Saturday, 16 February, 1991
$LongSec => 0
0
msg [$March]%
../tests/test.rem(489): Trig = Saturday, 16 February, 1991
$March => "March"
March
msg [$MaxSatIter]%
../tests/test.rem(490): Trig = Saturday, 16 February, 1991
$MaxSatIter => 150
150
msg [$MaxStringLen]%
../tests/test.rem(491): Trig = Saturday, 16 February, 1991
$MaxStringLen => 65535
65535
msg [$May]%
../tests/test.rem(492): Trig = Saturday, 16 February, 1991
$May => "May"
May
msg [$MinsFromUTC]%
../tests/test.rem(493): Trig = Saturday, 16 February, 1991
$MinsFromUTC => -300
-300
msg [$Monday]%
../tests/test.rem(494): Trig = Saturday, 16 February, 1991
$Monday => "Monday"
Monday
msg [$NextMode]%
../tests/test.rem(495): Trig = Saturday, 16 February, 1991
$NextMode => 0
0
msg [$November]%
../tests/test.rem(496): Trig = Saturday, 16 February, 1991
$November => "November"
November
msg [$NumQueued]%
../tests/test.rem(497): Trig = Saturday, 16 February, 1991
$NumQueued => 0
0
msg [$NumTrig]%
../tests/test.rem(498): Trig = Saturday, 16 February, 1991
$NumTrig => 85
85
msg [$October]%
../tests/test.rem(499): Trig = Saturday, 16 February, 1991
$October => "October"
October
msg [$PrefixLineNo]%
../tests/test.rem(500): Trig = Saturday, 16 February, 1991
$PrefixLineNo => 0
0
msg [$PSCal]%
../tests/test.rem(501): Trig = Saturday, 16 February, 1991
$PSCal => 0
0
msg [$RunOff]%
../tests/test.rem(502): Trig = Saturday, 16 February, 1991
$RunOff => 0
0
msg [$Saturday]%
../tests/test.rem(503): Trig = Saturday, 16 February, 1991
$Saturday => "Saturday"
Saturday
msg [$September]%
../tests/test.rem(504): Trig = Saturday, 16 February, 1991
$September => "September"
September
msg [$SimpleCal]%
../tests/test.rem(505): Trig = Saturday, 16 February, 1991
$SimpleCal => 0
0
msg [$SortByDate]%
../tests/test.rem(506): Trig = Saturday, 16 February, 1991
$SortByDate => 0
0
msg [$SortByPrio]%
../tests/test.rem(507): Trig = Saturday, 16 February, 1991
$SortByPrio => 0
0
msg [$SortByTime]%
../tests/test.rem(508): Trig = Saturday, 16 February, 1991
$SortByTime => 0
0
msg [$SubsIndent]%
../tests/test.rem(509): Trig = Saturday, 16 February, 1991
$SubsIndent => 0
0
msg [$Sunday]%
../tests/test.rem(510): Trig = Saturday, 16 February, 1991
$Sunday => "Sunday"
Sunday
msg [$T]%
../tests/test.rem(511): Trig = Saturday, 16 February, 1991
$T => 1991-02-16
1991-02-16
msg [$Td]%
../tests/test.rem(512): Trig = Saturday, 16 February, 1991
$Td => 16
16
msg [$Thursday]%
../tests/test.rem(513): Trig = Saturday, 16 February, 1991
$Thursday => "Thursday"
Thursday
msg [$TimeSep]%
../tests/test.rem(514): Trig = Saturday, 16 February, 1991
$TimeSep => ":"
:
msg [$Tm]%
../tests/test.rem(515): Trig = Saturday, 16 February, 1991
$Tm => 2
2
msg [$Tuesday]%
../tests/test.rem(516): Trig = Saturday, 16 February, 1991
$Tuesday => "Tuesday"
Tuesday
msg [$Tw]%
../tests/test.rem(517): Trig = Saturday, 16 February, 1991
$Tw => 6
6
msg [$Ty]%
../tests/test.rem(518): Trig = Saturday, 16 February, 1991
$Ty => 1991
1991
msg [$U]%
../tests/test.rem(519): Trig = Saturday, 16 February, 1991
$U => 1991-02-16
1991-02-16
msg [$Ud]%
../tests/test.rem(520): Trig = Saturday, 16 February, 1991
$Ud => 16
16
msg [$Um]%
../tests/test.rem(521): Trig = Saturday, 16 February, 1991
$Um => 2
2
msg [$UntimedFirst]%
../tests/test.rem(522): Trig = Saturday, 16 February, 1991
$UntimedFirst => 0
0
msg [$Uw]%
../tests/test.rem(523): Trig = Saturday, 16 February, 1991
$Uw => 6
6
msg [$Uy]%
../tests/test.rem(524): Trig = Saturday, 16 February, 1991
$Uy => 1991
1991
msg [$Wednesday]%
../tests/test.rem(525): Trig = Saturday, 16 February, 1991
$Wednesday => "Wednesday"
Wednesday
dump $aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Variable Value
$aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: Name too long
OMIT 2010-09-03 THROUGH 2010-09-15
OMIT December 25 MSG X
../tests/test.rem(452): Trig = Wednesday, 25 December, 1991
../tests/test.rem(529): Trig = Wednesday, 25 December, 1991
# Next should give a parse error
OMIT 26 Dec 2010 THROUGH 27 Dec 2010 MSG This is not legal
../tests/test.rem(454): Trig = Sunday, 26 December, 2010
../tests/test.rem(531): Trig = Sunday, 26 December, 2010
OMIT DUMP
Global Full OMITs (16 of maximum allowed 500):
Global Full OMITs (16 of maximum allowed 1000):
1991-03-11
2010-09-03
2010-09-04
@@ -2803,287 +3108,287 @@ a => 5761
hebdate(14, "Adar", 1991-02-16, 5761) => 1991-02-28
trigger(1991-02-28) => "28 February 1991"
Leaving UserFN _i() => "28 February 1991"
../tests/test.rem(457): Trig = Thursday, 28 February, 1991
../tests/test.rem(534): Trig = Thursday, 28 February, 1991
# Regression test for bug found by Larry Hynes
REM SATISFY [day(trigdate()-25) == 14] MSG Foo
../tests/test.rem(460): Trig = Saturday, 16 February, 1991
../tests/test.rem(537): Trig = Saturday, 16 February, 1991
trigdate() => 1991-02-16
1991-02-16 - 25 => 1991-01-22
day(1991-01-22) => 22
22 == 14 => 0
../tests/test.rem(460): Trig = Sunday, 17 February, 1991
../tests/test.rem(537): Trig = Sunday, 17 February, 1991
trigdate() => 1991-02-17
1991-02-17 - 25 => 1991-01-23
day(1991-01-23) => 23
23 == 14 => 0
../tests/test.rem(460): Trig = Monday, 18 February, 1991
../tests/test.rem(537): Trig = Monday, 18 February, 1991
trigdate() => 1991-02-18
1991-02-18 - 25 => 1991-01-24
day(1991-01-24) => 24
24 == 14 => 0
../tests/test.rem(460): Trig = Tuesday, 19 February, 1991
../tests/test.rem(537): Trig = Tuesday, 19 February, 1991
trigdate() => 1991-02-19
1991-02-19 - 25 => 1991-01-25
day(1991-01-25) => 25
25 == 14 => 0
../tests/test.rem(460): Trig = Wednesday, 20 February, 1991
../tests/test.rem(537): Trig = Wednesday, 20 February, 1991
trigdate() => 1991-02-20
1991-02-20 - 25 => 1991-01-26
day(1991-01-26) => 26
26 == 14 => 0
../tests/test.rem(460): Trig = Thursday, 21 February, 1991
../tests/test.rem(537): Trig = Thursday, 21 February, 1991
trigdate() => 1991-02-21
1991-02-21 - 25 => 1991-01-27
day(1991-01-27) => 27
27 == 14 => 0
../tests/test.rem(460): Trig = Friday, 22 February, 1991
../tests/test.rem(537): Trig = Friday, 22 February, 1991
trigdate() => 1991-02-22
1991-02-22 - 25 => 1991-01-28
day(1991-01-28) => 28
28 == 14 => 0
../tests/test.rem(460): Trig = Saturday, 23 February, 1991
../tests/test.rem(537): Trig = Saturday, 23 February, 1991
trigdate() => 1991-02-23
1991-02-23 - 25 => 1991-01-29
day(1991-01-29) => 29
29 == 14 => 0
../tests/test.rem(460): Trig = Sunday, 24 February, 1991
../tests/test.rem(537): Trig = Sunday, 24 February, 1991
trigdate() => 1991-02-24
1991-02-24 - 25 => 1991-01-30
day(1991-01-30) => 30
30 == 14 => 0
../tests/test.rem(460): Trig = Monday, 25 February, 1991
../tests/test.rem(537): Trig = Monday, 25 February, 1991
trigdate() => 1991-02-25
1991-02-25 - 25 => 1991-01-31
day(1991-01-31) => 31
31 == 14 => 0
../tests/test.rem(460): Trig = Tuesday, 26 February, 1991
../tests/test.rem(537): Trig = Tuesday, 26 February, 1991
trigdate() => 1991-02-26
1991-02-26 - 25 => 1991-02-01
day(1991-02-01) => 1
1 == 14 => 0
../tests/test.rem(460): Trig = Wednesday, 27 February, 1991
../tests/test.rem(537): Trig = Wednesday, 27 February, 1991
trigdate() => 1991-02-27
1991-02-27 - 25 => 1991-02-02
day(1991-02-02) => 2
2 == 14 => 0
../tests/test.rem(460): Trig = Thursday, 28 February, 1991
../tests/test.rem(537): Trig = Thursday, 28 February, 1991
trigdate() => 1991-02-28
1991-02-28 - 25 => 1991-02-03
day(1991-02-03) => 3
3 == 14 => 0
../tests/test.rem(460): Trig = Friday, 1 March, 1991
../tests/test.rem(537): Trig = Friday, 1 March, 1991
trigdate() => 1991-03-01
1991-03-01 - 25 => 1991-02-04
day(1991-02-04) => 4
4 == 14 => 0
../tests/test.rem(460): Trig = Saturday, 2 March, 1991
../tests/test.rem(537): Trig = Saturday, 2 March, 1991
trigdate() => 1991-03-02
1991-03-02 - 25 => 1991-02-05
day(1991-02-05) => 5
5 == 14 => 0
../tests/test.rem(460): Trig = Sunday, 3 March, 1991
../tests/test.rem(537): Trig = Sunday, 3 March, 1991
trigdate() => 1991-03-03
1991-03-03 - 25 => 1991-02-06
day(1991-02-06) => 6
6 == 14 => 0
../tests/test.rem(460): Trig = Monday, 4 March, 1991
../tests/test.rem(537): Trig = Monday, 4 March, 1991
trigdate() => 1991-03-04
1991-03-04 - 25 => 1991-02-07
day(1991-02-07) => 7
7 == 14 => 0
../tests/test.rem(460): Trig = Tuesday, 5 March, 1991
../tests/test.rem(537): Trig = Tuesday, 5 March, 1991
trigdate() => 1991-03-05
1991-03-05 - 25 => 1991-02-08
day(1991-02-08) => 8
8 == 14 => 0
../tests/test.rem(460): Trig = Wednesday, 6 March, 1991
../tests/test.rem(537): Trig = Wednesday, 6 March, 1991
trigdate() => 1991-03-06
1991-03-06 - 25 => 1991-02-09
day(1991-02-09) => 9
9 == 14 => 0
../tests/test.rem(460): Trig = Thursday, 7 March, 1991
../tests/test.rem(537): Trig = Thursday, 7 March, 1991
trigdate() => 1991-03-07
1991-03-07 - 25 => 1991-02-10
day(1991-02-10) => 10
10 == 14 => 0
../tests/test.rem(460): Trig = Friday, 8 March, 1991
../tests/test.rem(537): Trig = Friday, 8 March, 1991
trigdate() => 1991-03-08
1991-03-08 - 25 => 1991-02-11
day(1991-02-11) => 11
11 == 14 => 0
../tests/test.rem(460): Trig = Saturday, 9 March, 1991
../tests/test.rem(537): Trig = Saturday, 9 March, 1991
trigdate() => 1991-03-09
1991-03-09 - 25 => 1991-02-12
day(1991-02-12) => 12
12 == 14 => 0
../tests/test.rem(460): Trig = Sunday, 10 March, 1991
../tests/test.rem(537): Trig = Sunday, 10 March, 1991
trigdate() => 1991-03-10
1991-03-10 - 25 => 1991-02-13
day(1991-02-13) => 13
13 == 14 => 0
../tests/test.rem(460): Trig = Monday, 11 March, 1991
../tests/test.rem(537): Trig = Monday, 11 March, 1991
trigdate() => 1991-03-11
1991-03-11 - 25 => 1991-02-14
day(1991-02-14) => 14
14 == 14 => 1
../tests/test.rem(460): Trig(satisfied) = Monday, 11 March, 1991
../tests/test.rem(537): Trig(satisfied) = Monday, 11 March, 1991
# Check combo of SATISFY and long-duration events
REM 14 SATISFY [$Tw == 4] MSG Thursday, the 14th
../tests/test.rem(463): Trig = Thursday, 14 March, 1991
../tests/test.rem(540): Trig = Thursday, 14 March, 1991
$Tw => 4
4 == 4 => 1
../tests/test.rem(463): Trig(satisfied) = Thursday, 14 March, 1991
../tests/test.rem(540): Trig(satisfied) = Thursday, 14 March, 1991
REM 14 AT 16:00 DURATION 8:00 SATISFY [$Tw == 4] MSG Thursday, the 14th
../tests/test.rem(464): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 08:00
../tests/test.rem(541): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 08:00
$Tw => 4
4 == 4 => 1
../tests/test.rem(464): Trig(satisfied) = Thursday, 14 March, 1991 AT 16:00 DURATION 08:00
../tests/test.rem(541): Trig(satisfied) = Thursday, 14 March, 1991 AT 16:00 DURATION 08:00
REM 14 AT 16:00 DURATION 8:01 SATISFY [$Tw == 4] MSG Thursday, the 14th
../tests/test.rem(465): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 08:01
../tests/test.rem(465): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 08:01
../tests/test.rem(542): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 08:01
../tests/test.rem(542): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 08:01
$Tw => 4
4 == 4 => 1
../tests/test.rem(465): Trig(satisfied) = Thursday, 14 March, 1991 AT 16:00 DURATION 08:01
../tests/test.rem(542): Trig(satisfied) = Thursday, 14 March, 1991 AT 16:00 DURATION 08:01
REM 14 AT 16:00 DURATION 32:00 SATISFY [$Tw == 4] MSG Thursday, the 14th
../tests/test.rem(466): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 32:00
../tests/test.rem(466): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 32:00
../tests/test.rem(543): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 32:00
../tests/test.rem(543): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 32:00
$Tw => 4
4 == 4 => 1
../tests/test.rem(466): Trig(satisfied) = Thursday, 14 March, 1991 AT 16:00 DURATION 32:00
../tests/test.rem(543): Trig(satisfied) = Thursday, 14 March, 1991 AT 16:00 DURATION 32:00
REM 14 AT 16:00 DURATION 32:01 SATISFY [$Tw == 4] MSG Thursday, the 14th
../tests/test.rem(467): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 32:01
../tests/test.rem(467): Trig = Thursday, 14 February, 1991 AT 16:00 DURATION 32:01
../tests/test.rem(544): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 32:01
../tests/test.rem(544): Trig = Thursday, 14 February, 1991 AT 16:00 DURATION 32:01
$Tw => 4
4 == 4 => 1
../tests/test.rem(467): Trig(adj) = Saturday, 16 February, 1991 AT 00:00 DURATION 00:01
../tests/test.rem(467): Trig(satisfied) = Saturday, 16 February, 1991 AT 00:00 DURATION 00:01
../tests/test.rem(544): Trig(adj) = Saturday, 16 February, 1991 AT 00:00 DURATION 00:01
../tests/test.rem(544): Trig(satisfied) = Saturday, 16 February, 1991 AT 00:00 DURATION 00:01
Thursday, the 14th
REM 14 AT 16:00 DURATION 40:00 SATISFY [$Tw == 4] MSG Thursday, the 14th
../tests/test.rem(468): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 40:00
../tests/test.rem(468): Trig = Thursday, 14 February, 1991 AT 16:00 DURATION 40:00
../tests/test.rem(545): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 40:00
../tests/test.rem(545): Trig = Thursday, 14 February, 1991 AT 16:00 DURATION 40:00
$Tw => 4
4 == 4 => 1
../tests/test.rem(468): Trig(adj) = Saturday, 16 February, 1991 AT 00:00 DURATION 08:00
../tests/test.rem(468): Trig(satisfied) = Saturday, 16 February, 1991 AT 00:00 DURATION 08:00
../tests/test.rem(545): Trig(adj) = Saturday, 16 February, 1991 AT 00:00 DURATION 08:00
../tests/test.rem(545): Trig(satisfied) = Saturday, 16 February, 1991 AT 00:00 DURATION 08:00
Thursday, the 14th
# This is now an error
REM DURATION 15:00 MSG Should fail... need AT if you have DURATION.
../tests/test.rem(471): Cannot specify DURATION without specifying AT
../tests/test.rem(548): Cannot specify DURATION without specifying AT
# Parsing of AM/PM times
REM AT 0:00am MSG foo 0a
../tests/test.rem(474): Expecting time after AT
../tests/test.rem(551): Expecting time after AT
REM AT 1:00AM MSG foo 1a
../tests/test.rem(475): Trig = Saturday, 16 February, 1991 AT 01:00
../tests/test.rem(552): Trig = Saturday, 16 February, 1991 AT 01:00
foo 1a
REM AT 2:00am MSG foo 2a
../tests/test.rem(476): Trig = Saturday, 16 February, 1991 AT 02:00
../tests/test.rem(553): Trig = Saturday, 16 February, 1991 AT 02:00
foo 2a
REM AT 3:00AM MSG foo 3a
../tests/test.rem(477): Trig = Saturday, 16 February, 1991 AT 03:00
../tests/test.rem(554): Trig = Saturday, 16 February, 1991 AT 03:00
foo 3a
REM AT 4:00am MSG foo 4a
../tests/test.rem(478): Trig = Saturday, 16 February, 1991 AT 04:00
../tests/test.rem(555): Trig = Saturday, 16 February, 1991 AT 04:00
foo 4a
REM AT 5:00AM MSG foo 5a
../tests/test.rem(479): Trig = Saturday, 16 February, 1991 AT 05:00
../tests/test.rem(556): Trig = Saturday, 16 February, 1991 AT 05:00
foo 5a
REM AT 6:00am MSG foo 6a
../tests/test.rem(480): Trig = Saturday, 16 February, 1991 AT 06:00
../tests/test.rem(557): Trig = Saturday, 16 February, 1991 AT 06:00
foo 6a
REM AT 7:00AM MSG foo 7a
../tests/test.rem(481): Trig = Saturday, 16 February, 1991 AT 07:00
../tests/test.rem(558): Trig = Saturday, 16 February, 1991 AT 07:00
foo 7a
REM AT 8:00am MSG foo 8a
../tests/test.rem(482): Trig = Saturday, 16 February, 1991 AT 08:00
../tests/test.rem(559): Trig = Saturday, 16 February, 1991 AT 08:00
foo 8a
REM AT 9:00AM MSG foo 9a
../tests/test.rem(483): Trig = Saturday, 16 February, 1991 AT 09:00
../tests/test.rem(560): Trig = Saturday, 16 February, 1991 AT 09:00
foo 9a
REM AT 10:00am MSG foo 10a
../tests/test.rem(484): Trig = Saturday, 16 February, 1991 AT 10:00
../tests/test.rem(561): Trig = Saturday, 16 February, 1991 AT 10:00
foo 10a
REM AT 11:00AM MSG foo 11a
../tests/test.rem(485): Trig = Saturday, 16 February, 1991 AT 11:00
../tests/test.rem(562): Trig = Saturday, 16 February, 1991 AT 11:00
foo 11a
REM AT 12:00am MSG foo 12a
../tests/test.rem(486): Trig = Saturday, 16 February, 1991 AT 00:00
../tests/test.rem(563): Trig = Saturday, 16 February, 1991 AT 00:00
foo 12a
REM AT 13:00AM MSG foo 13a
../tests/test.rem(487): Expecting time after AT
../tests/test.rem(564): Expecting time after AT
REM AT 0:00pm MSG foo 0p
../tests/test.rem(488): Expecting time after AT
../tests/test.rem(565): Expecting time after AT
REM AT 1:00PM MSG foo 1p
../tests/test.rem(489): Trig = Saturday, 16 February, 1991 AT 13:00
../tests/test.rem(566): Trig = Saturday, 16 February, 1991 AT 13:00
foo 1p
REM AT 2:00pm MSG foo 2p
../tests/test.rem(490): Trig = Saturday, 16 February, 1991 AT 14:00
../tests/test.rem(567): Trig = Saturday, 16 February, 1991 AT 14:00
foo 2p
REM AT 3:00PM MSG foo 3p
../tests/test.rem(491): Trig = Saturday, 16 February, 1991 AT 15:00
../tests/test.rem(568): Trig = Saturday, 16 February, 1991 AT 15:00
foo 3p
REM AT 4:00pm MSG foo 4p
../tests/test.rem(492): Trig = Saturday, 16 February, 1991 AT 16:00
../tests/test.rem(569): Trig = Saturday, 16 February, 1991 AT 16:00
foo 4p
REM AT 5:00PM MSG foo 5p
../tests/test.rem(493): Trig = Saturday, 16 February, 1991 AT 17:00
../tests/test.rem(570): Trig = Saturday, 16 February, 1991 AT 17:00
foo 5p
REM AT 6:00pm MSG foo 6p
../tests/test.rem(494): Trig = Saturday, 16 February, 1991 AT 18:00
../tests/test.rem(571): Trig = Saturday, 16 February, 1991 AT 18:00
foo 6p
REM AT 7:00PM MSG foo 7p
../tests/test.rem(495): Trig = Saturday, 16 February, 1991 AT 19:00
../tests/test.rem(572): Trig = Saturday, 16 February, 1991 AT 19:00
foo 7p
REM AT 8:00pm MSG foo 8p
../tests/test.rem(496): Trig = Saturday, 16 February, 1991 AT 20:00
../tests/test.rem(573): Trig = Saturday, 16 February, 1991 AT 20:00
foo 8p
REM AT 9:00PM MSG foo 9p
../tests/test.rem(497): Trig = Saturday, 16 February, 1991 AT 21:00
../tests/test.rem(574): Trig = Saturday, 16 February, 1991 AT 21:00
foo 9p
REM AT 10:00pm MSG foo 10p
../tests/test.rem(498): Trig = Saturday, 16 February, 1991 AT 22:00
../tests/test.rem(575): Trig = Saturday, 16 February, 1991 AT 22:00
foo 10p
REM AT 11:00PM MSG foo 11p
../tests/test.rem(499): Trig = Saturday, 16 February, 1991 AT 23:00
../tests/test.rem(576): Trig = Saturday, 16 February, 1991 AT 23:00
foo 11p
REM AT 12:00pm MSG foo 12p
../tests/test.rem(500): Trig = Saturday, 16 February, 1991 AT 12:00
../tests/test.rem(577): Trig = Saturday, 16 February, 1991 AT 12:00
foo 12p
REM AT 13:00PM MSG foo 13p
../tests/test.rem(501): Expecting time after AT
../tests/test.rem(578): Expecting time after AT
DEBUG +x
SET x 0:00am + 0
../tests/test.rem(504): Ill-formed time
../tests/test.rem(581): Ill-formed time
SET x 1:00AM + 0
01:00 + 0 => 01:00
SET x 2:00am + 0
@@ -3109,10 +3414,10 @@ SET x 11:00AM + 0
SET x 12:00am + 0
00:00 + 0 => 00:00
SET x 13:00AM + 0
../tests/test.rem(517): Ill-formed time
../tests/test.rem(594): Ill-formed time
SET x 0:00pm + 0
../tests/test.rem(519): Ill-formed time
../tests/test.rem(596): Ill-formed time
SET x 1:00PM + 0
13:00 + 0 => 13:00
SET x 2:00pm + 0
@@ -3138,10 +3443,10 @@ SET x 11:00PM + 0
SET x 12:00pm + 0
12:00 + 0 => 12:00
SET x 13:00PM + 0
../tests/test.rem(532): Ill-formed time
../tests/test.rem(609): Ill-formed time
SET x '2015-02-03@0:00am' + 0
../tests/test.rem(534): Ill-formed time
../tests/test.rem(611): Ill-formed time
SET x '2015-02-03@1:00AM' + 0
2015-02-03@01:00 + 0 => 2015-02-03@01:00
SET x '2015-02-03@2:00am' + 0
@@ -3167,10 +3472,10 @@ SET x '2015-02-03@11:00AM' + 0
SET x '2015-02-03@12:00am' + 0
2015-02-03@00:00 + 0 => 2015-02-03@00:00
SET x '2015-02-03@13:00AM' + 0
../tests/test.rem(547): Ill-formed time
../tests/test.rem(624): Ill-formed time
SET x '2015-02-03@0:00pm' + 0
../tests/test.rem(549): Ill-formed time
../tests/test.rem(626): Ill-formed time
SET x '2015-02-03@1:00PM' + 0
2015-02-03@13:00 + 0 => 2015-02-03@13:00
SET x '2015-02-03@2:00pm' + 0
@@ -3196,7 +3501,7 @@ SET x '2015-02-03@11:00PM' + 0
SET x '2015-02-03@12:00pm' + 0
2015-02-03@12:00 + 0 => 2015-02-03@12:00
SET x '2015-02-03@13:00PM' + 0
../tests/test.rem(562): Ill-formed time
../tests/test.rem(639): Ill-formed time
# Test the ampm function
set x ampm(0:12) + ""
@@ -3292,88 +3597,88 @@ coerce("DATETIME", "2020-05-05@1:45pm") => 2020-05-05@13:45
set a $IntMin - 1
$IntMin => -2147483648
-2147483648 - 1 => Number too high
../tests/test.rem(601): `-': Number too high
../tests/test.rem(678): `-': Number too high
set a $IntMin - $IntMax
$IntMin => -2147483648
$IntMax => 2147483647
-2147483648 - 2147483647 => Number too high
../tests/test.rem(602): `-': Number too high
../tests/test.rem(679): `-': Number too high
set a $IntMax - $IntMin
$IntMax => 2147483647
$IntMin => -2147483648
2147483647 - -2147483648 => Number too high
../tests/test.rem(603): `-': Number too high
../tests/test.rem(680): `-': Number too high
set a $IntMax - (-1)
$IntMax => 2147483647
- 1 => -1
2147483647 - -1 => Number too high
../tests/test.rem(604): `-': Number too high
../tests/test.rem(681): `-': Number too high
set a $IntMax + 1
$IntMax => 2147483647
2147483647 + 1 => Number too high
../tests/test.rem(605): `+': Number too high
../tests/test.rem(682): `+': Number too high
set a $IntMax + $IntMax
$IntMax => 2147483647
$IntMax => 2147483647
2147483647 + 2147483647 => Number too high
../tests/test.rem(606): `+': Number too high
../tests/test.rem(683): `+': Number too high
set a $IntMin + (-1)
$IntMin => -2147483648
- 1 => -1
-2147483648 + -1 => Number too high
../tests/test.rem(607): `+': Number too high
../tests/test.rem(684): `+': Number too high
set a $IntMin + $IntMin
$IntMin => -2147483648
$IntMin => -2147483648
-2147483648 + -2147483648 => Number too high
../tests/test.rem(608): `+': Number too high
../tests/test.rem(685): `+': Number too high
set a $IntMax * 2
$IntMax => 2147483647
2147483647 * 2 => Number too high
../tests/test.rem(609): `*': Number too high
../tests/test.rem(686): `*': Number too high
set a $IntMax * $IntMax
$IntMax => 2147483647
$IntMax => 2147483647
2147483647 * 2147483647 => Number too high
../tests/test.rem(610): `*': Number too high
../tests/test.rem(687): `*': Number too high
set a $IntMax * $IntMin
$IntMax => 2147483647
$IntMin => -2147483648
2147483647 * -2147483648 => Number too high
../tests/test.rem(611): `*': Number too high
../tests/test.rem(688): `*': Number too high
set a $IntMin * 2
$IntMin => -2147483648
-2147483648 * 2 => Number too high
../tests/test.rem(612): `*': Number too high
../tests/test.rem(689): `*': Number too high
set a $IntMin * $IntMin
$IntMin => -2147483648
$IntMin => -2147483648
-2147483648 * -2147483648 => Number too high
../tests/test.rem(613): `*': Number too high
../tests/test.rem(690): `*': Number too high
set a $IntMin * $IntMax
$IntMin => -2147483648
$IntMax => 2147483647
-2147483648 * 2147483647 => Number too high
../tests/test.rem(614): `*': Number too high
../tests/test.rem(691): `*': Number too high
set a $IntMin / (-1)
$IntMin => -2147483648
- 1 => -1
-2147483648 / -1 => Number too high
../tests/test.rem(615): `/': Number too high
../tests/test.rem(692): `/': Number too high
set a $IntMin * (-1)
$IntMin => -2147483648
- 1 => -1
-2147483648 * -1 => Number too high
../tests/test.rem(616): `*': Number too high
../tests/test.rem(693): `*': Number too high
set a (-1) * $IntMin
- 1 => -1
$IntMin => -2147483648
-1 * -2147483648 => Number too high
../tests/test.rem(617): `*': Number too high
../tests/test.rem(694): `*': Number too high
set a abs($IntMin)
$IntMin => -2147483648
abs(-2147483648) => Number too high
../tests/test.rem(618): Number too high
../tests/test.rem(695): Number too high
# The "isany" function
set a isany(1)
@@ -3400,17 +3705,17 @@ set a shellescape(" !\"#$%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ
shellescape(" !"#$%%&'()*+,-./0123456789:;<=>?@ABCDEF"...) => "\ \!\"\#\$\%\%\&\'\(\)\*+,-./0123456789\"...
msg [a]
../tests/test.rem(634): Trig = Saturday, 16 February, 1991
../tests/test.rem(711): Trig = Saturday, 16 February, 1991
a => "\ \!\"\#\$\%\%\&\'\(\)\*+,-./0123456789\"...
\ \!\"\#\$\\\&\'\(\)\*+,-./0123456789\:\;\<=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~
# Deprecated functions
set x psshade(50)
psshade(50) => ../tests/test.rem(637): psshade() is deprecated; use SPECIAL SHADE instead.
psshade(50) => ../tests/test.rem(714): psshade() is deprecated; use SPECIAL SHADE instead.
"/_A LineWidth 2 div def _A _A moveto Box"...
set x psmoon(0)
psmoon(0) => ../tests/test.rem(638): psmoon() is deprecated; use SPECIAL MOON instead.
psmoon(0) => ../tests/test.rem(715): psmoon() is deprecated; use SPECIAL MOON instead.
"gsave 0 setgray newpath Border DaySize 2"...
# Don't want Remind to queue reminders

View File

@@ -447,6 +447,83 @@ REM MAYBE-UNCOMPUTABLE Mon SATISFY [wkdaynum($T) == 3] MSG Nope nope...
dump
dump $
msg [$April]%
msg [$August]%
msg [$CalcUTC]%
msg [$CalMode]%
msg [$Daemon]%
msg [$DateSep]%
msg [$DateTimeSep]%
msg [$December]%
msg [$DefaultColor]%
msg [$DefaultPrio]%
msg [$DefaultTDelta]%
msg [$DeltaOffset]%
msg [$DontFork]%
msg [$DontQueue]%
msg [$DontTrigAts]%
msg [$EndSent]%
msg [$EndSentIg]%
msg [$February]%
msg [$FirstIndent]%
msg [$FoldYear]%
msg [$FormWidth]%
msg [$Friday]%
msg [$HushMode]%
msg [$IgnoreOnce]%
msg [$InfDelta]%
msg [$IntMax]%
msg [$IntMin]%
msg [$January]%
msg [$July]%
msg [$June]%
msg [$LatDeg]%
msg [$Latitude]%
msg [$LatMin]%
msg [$LatSec]%
msg [$Location]%
msg [$LongDeg]%
msg [$Longitude]%
msg [$LongMin]%
msg [$LongSec]%
msg [$March]%
msg [$MaxSatIter]%
msg [$MaxStringLen]%
msg [$May]%
msg [$MinsFromUTC]%
msg [$Monday]%
msg [$NextMode]%
msg [$November]%
msg [$NumQueued]%
msg [$NumTrig]%
msg [$October]%
msg [$PrefixLineNo]%
msg [$PSCal]%
msg [$RunOff]%
msg [$Saturday]%
msg [$September]%
msg [$SimpleCal]%
msg [$SortByDate]%
msg [$SortByPrio]%
msg [$SortByTime]%
msg [$SubsIndent]%
msg [$Sunday]%
msg [$T]%
msg [$Td]%
msg [$Thursday]%
msg [$TimeSep]%
msg [$Tm]%
msg [$Tuesday]%
msg [$Tw]%
msg [$Ty]%
msg [$U]%
msg [$Ud]%
msg [$Um]%
msg [$UntimedFirst]%
msg [$Uw]%
msg [$Uy]%
msg [$Wednesday]%
dump $aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
OMIT 2010-09-03 THROUGH 2010-09-15
OMIT December 25 MSG X