Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package remind for openSUSE:Factory checked 
in at 2022-02-02 22:40:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/remind (Old)
 and      /work/SRC/openSUSE:Factory/.remind.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "remind"

Wed Feb  2 22:40:38 2022 rev:23 rq:950530 version:3.3.12

Changes:
--------
--- /work/SRC/openSUSE:Factory/remind/remind.changes    2022-01-07 
12:47:28.727891185 +0100
+++ /work/SRC/openSUSE:Factory/.remind.new.1898/remind.changes  2022-02-02 
22:41:47.903375406 +0100
@@ -1,0 +2,36 @@
+Tue Jan 25 18:18:20 UTC 2022 - Detlef Steuer <[email protected]>
+
+* VERSION 3.3 Patch 12 - 2022-01-24
+
+- UPDATE: rem2html: Use JSON::MaybeXS instead of JSON::Any, since JSON::Any
+  is deprecated.  NOTE INCOMPATIBILITY: If you don't have JSON::MaybeXS
+  installed, you'll need to install it before trying to install or update
+  rem2html
+
+- NEW FEATURE: Add a DO command.  This is just like INCLUDE, but relative
+  paths are interpreted relative to the directory containing the current
+  file.  That is:
+
+      DO somefile.rem
+
+  is equivalent to:
+
+      INCLUDE [filedir()]/somefile.rem
+
+- NEW FEATURE: Add the $DefaultTDelta system variable and associated
+  -tt[N] command-line option to set a default time delta for timed
+  reminder without an explicit +N delta.
+
+- IMPROVEMENT: TkRemind: Store .tkremindrc in $XDG_CONFIG_HOME/tkremindrc
+  or $HOME/.config/tkremindrc as per the XDG Base Directory Specification.
+
+- BUG FIX: remind: Make the shell() built-in function respect
+  $MaxStringLen
+
+- BUG FIX: Use size_t to track the size of dynamic buffers rather than int.
+  This permits Remind to read in files with lines longer than 1GB and to
+  consume more than 1GB of output from the shell() command, both of which
+  will surely be massively useful.  (The old limit was 1GB rather than 2GB
+  because of details of the dynamic buffer resizing algorithm.)
+
+-------------------------------------------------------------------

Old:
----
  remind-03.03.11.tar.gz

New:
----
  remind-03.03.12.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ remind.spec ++++++
--- /var/tmp/diff_new_pack.mI6Pgv/_old  2022-02-02 22:41:48.443371746 +0100
+++ /var/tmp/diff_new_pack.mI6Pgv/_new  2022-02-02 22:41:48.447371719 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package remind
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
 
 
 Name:           remind
-Version:        3.3.11
+Version:        3.3.12
 Release:        0
-%define tar_version 03.03.11
+%define tar_version 03.03.12
 Summary:        A sophisticated calendar and alarm program
 License:        GPL-2.0-only
 Group:          Productivity/Office/Organizers
@@ -29,7 +29,7 @@
 Patch0:         remind-nostrip.patch
 BuildRequires:  perl
 BuildRequires:  perl-Getopt-Long-Descriptive
-BuildRequires:  perl-JSON-Any
+BuildRequires:  perl-JSON-MaybeXS
 Requires:       perl
 Requires:       perl-Getopt-Long-Descriptive
 Requires:       perl-JSON-Any

++++++ remind-03.03.11.tar.gz -> remind-03.03.12.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/configure 
new/remind-03.03.12/configure
--- old/remind-03.03.11/configure       2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/configure       2022-01-24 23:49:00.000000000 +0100
@@ -2292,36 +2292,6 @@
 ac_config_headers="$ac_config_headers src/config.h"
 
 
-if test "`uname -s`" = "Darwin" ; then
-   trap 'echo Be patient...' INT TERM
-   cat <<'EOF'
-
-Please don't use Apple products.  This script will continue in 30 seconds
-if you insist on compiling Remind on Mac OS X.
-
-EOF
-    for i in 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 ; do
-        sleep 1
-    done
-    trap - INT
-    trap - TERM
-fi
-
-if uname -s | grep -i -q 'cygwin' ; then
-   trap 'echo Be patient...' INT TERM
-   cat <<'EOF'
-
-Please don't use Microsoft products.  This script will continue in 30
-seconds if you insist on compiling Remind on Cygwin.
-
-EOF
-    for i in 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 ; do
-        sleep 1
-    done
-    trap - INT
-    trap - TERM
-fi
-
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -4032,7 +4002,7 @@
 fi
 done
 
-VERSION=03.03.11
+VERSION=03.03.12
 
 
 ac_config_files="$ac_config_files src/Makefile www/Makefile src/version.h 
rem2html/Makefile"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/configure.in 
new/remind-03.03.12/configure.in
--- old/remind-03.03.11/configure.in    2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/configure.in    2022-01-24 23:49:00.000000000 +0100
@@ -14,36 +14,6 @@
 
 AC_CONFIG_HEADER(src/config.h)
 
-if test "`uname -s`" = "Darwin" ; then
-   trap 'echo Be patient...' INT TERM
-   cat <<'EOF'
-
-Please don't use Apple products.  This script will continue in 30 seconds
-if you insist on compiling Remind on Mac OS X.
-
-EOF
-    for i in 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 ; do
-        sleep 1
-    done
-    trap - INT
-    trap - TERM
-fi
-
-if uname -s | grep -i -q 'cygwin' ; then
-   trap 'echo Be patient...' INT TERM
-   cat <<'EOF'
-
-Please don't use Microsoft products.  This script will continue in 30
-seconds if you insist on compiling Remind on Cygwin.
-
-EOF
-    for i in 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 ; do
-        sleep 1
-    done
-    trap - INT
-    trap - TERM
-fi
-
 dnl Checks for programs.
 AC_PROG_CC
 AC_PROG_INSTALL
@@ -76,7 +46,7 @@
 fi
 
 AC_CHECK_FUNCS(setenv unsetenv glob mbstowcs setlocale initgroups)
-VERSION=03.03.11
+VERSION=03.03.12
 AC_SUBST(VERSION)
 AC_SUBST(PERL)
 AC_OUTPUT(src/Makefile www/Makefile src/version.h rem2html/Makefile)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/docs/WHATSNEW 
new/remind-03.03.12/docs/WHATSNEW
--- old/remind-03.03.11/docs/WHATSNEW   2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/docs/WHATSNEW   2022-01-24 23:49:00.000000000 +0100
@@ -1,5 +1,38 @@
 CHANGES TO REMIND
 
+* VERSION 3.3 Patch 12 - 2022-01-24
+
+- UPDATE: rem2html: Use JSON::MaybeXS instead of JSON::Any, since JSON::Any
+  is deprecated.  NOTE INCOMPATIBILITY: If you don't have JSON::MaybeXS
+  installed, you'll need to install it before trying to install or update
+  rem2html
+
+- NEW FEATURE: Add a DO command.  This is just like INCLUDE, but relative
+  paths are interpreted relative to the directory containing the current
+  file.  That is:
+
+      DO somefile.rem
+
+  is equivalent to:
+
+      INCLUDE [filedir()]/somefile.rem
+
+- NEW FEATURE: Add the $DefaultTDelta system variable and associated
+  -tt[N] command-line option to set a default time delta for timed
+  reminder without an explicit +N delta.
+
+- IMPROVEMENT: TkRemind: Store .tkremindrc in $XDG_CONFIG_HOME/tkremindrc
+  or $HOME/.config/tkremindrc as per the XDG Base Directory Specification.
+
+- BUG FIX: remind: Make the shell() built-in function respect
+  $MaxStringLen
+
+- BUG FIX: Use size_t to track the size of dynamic buffers rather than int.
+  This permits Remind to read in files with lines longer than 1GB and to
+  consume more than 1GB of output from the shell() command, both of which
+  will surely be massively useful.  (The old limit was 1GB rather than 2GB
+  because of details of the dynamic buffer resizing algorithm.)
+
 * VERSION 3.3 Patch 11 - 2021-12-30
 
 - IMPROVEMENT: TkRemind: Save the print dialog settings so they persist.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/man/remind.1 
new/remind-03.03.12/man/remind.1
--- old/remind-03.03.11/man/remind.1    2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/man/remind.1    2022-01-24 23:49:00.000000000 +0100
@@ -190,6 +190,11 @@
 \fBRemind\fR pretends that each non-expired reminder has a \fIdelta\fR
 of \fIn\fR days and triggers reminders accordingly.
 .TP
+.B \-tt\fR[\fIn\fR]
+The \fB-tt\fR option causes \fBRemind\fR to assume a default delta of
+\fIn\fR minutes for all timed reminders.  If \fB\-tt\fR is given with
+no \fIn\fR, a default delta of 5 minutes is used.
+.TP
 .B \-h
 The \fB\-h\fR option ("hush...") suppresses certain warning and information
 messages.  In particular, if no reminders are triggered, this mode
@@ -1546,7 +1551,7 @@
 Finally, the \fBAFTER\fR keyword will keep moving the reminder forward
 until it has passed any holidays specified with global \fBOMIT\fR
 commands.
-.SH THE INCLUDE COMMAND
+.SH THE DO AND INCLUDE COMMANDS
 .PP
 \fBRemind\fR allows you to include other files in your reminder script,
 similar to the C preprocessor #include directive.  For example, your
@@ -1570,7 +1575,32 @@
 \fBRemind\fR will process all files in that directory that match the shell
 patterm "*.rem".  The files are processed in sorted order; the sort order
 matches that used by the shell when it expands "*.rem".
+.PP
+Note that the file specified by an \fBINCLUDE\fR command is interpreted
+relative to the \fIcurrent working directory of the Remind process\fR.
+If you want to include a file relative to the directory containing the
+currently-processing file, use \fBDO\fR instead.  For example,
+if the current file is \fB/home/user/.reminders/foo.rem\fR and Remind's
+working directory is \fB/home/user\fR, then:
+.PP
+.nf
+    # Read /home/user/.reminders/bar.rem
+    DO bar.rem
+
+    # Read /usr/share/bar.rem - absolute path
+    DO /usr/share/bar.rem
 
+    # Read /home/user/bar.rem
+    INCLUDE bar.rem
+
+    # Read /usr/share/bar.rem - absolute path
+    INCLUDE /usr/share/bar.rem
+.fi
+.PP
+Arguably, the \fBINCLUDE\fR command should have worked the way \fBDO\fR
+does right from the start, but changing it would have broken
+backward-compatibility, hence the introduction of \fBDO\fR.
+.PP
 .SH THE RUN COMMAND
 .PP
 If you include other files in your reminder script, you may not always
@@ -2080,6 +2110,12 @@
 reminders.  At startup, \fB$DefaultPrio\fR is set to 5000; it can range
 from 0 to 9999.
 .TP
+.B $DefaultTDelta
+The default time delta used if no +N is given in an AT clause.  This
+is normally 0, but can be set with the \fB\-tt\fR option or explicitly
+set in your script.  If \fB$DefaultDelta\fR is non-zero, you can use an
+explicit delta of +0 in an AT clause to countermand the default delta.
+.TP
 .B $DontFork (read-only)
 If non-zero, then the \fB\-c\fR option was supplied on the command line.
 .TP
@@ -2224,7 +2260,9 @@
 .TP
 .B $MaxStringLen
 A limit on the longest string that \fBRemind\fR will allow you
-to create.  The default is 65535.
+to create.  The default is 65535.  If you set \fB$MaxStringLen\fR to 0
+or to -1, then \fBremind\fR will allow you to create arbitrarily-long
+strings, at least until it runs out of memory.
 .TP
 .B $MinsFromUTC
 The number of minutes between Universal Time Coordinated and local time.  If
@@ -2619,7 +2657,9 @@
 .PP
 .RS
 This includes the file "stuff" in the same directory as the
-current file being processed.
+current file being processed.  Note that this workaround is
+no longer necessary because \fBDO stuff\fR will achieve the
+same goal.
 .RE
 .TP
 .B filename()
@@ -2977,8 +3017,8 @@
 .PP
 If \fImaxlen\fR is specified, then \fBshell()\fR returns the first
 \fImaxlen\fR characters of output (rather than the first 511).  If
-\fImaxlen\fR is specified as a negative number, then \fIall\fR the
-output from \fIcmd\fR is returned.
+\fImaxlen\fR is specified as a negative number, then it defaults to
+the value of the system variable \fB$MaxStringLen\fR.
 .RE
 .TP
 .B shellescape(s_str)
@@ -3024,7 +3064,8 @@
 .RE
 .TP
 .B strlen(s_str)
-Returns the length of \fIstr\fR.
+Returns the length of \fIstr\fR.  If the length of \fIstr\fR is too large
+to represent as an integers, emits a "Number too high" error.
 .TP
 .B substr(s_str, i_start [,i_end])
 Returns a \fBSTRING\fR consisting of all characters in \fIstr\fR from
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/rem2html/Makefile.in 
new/remind-03.03.12/rem2html/Makefile.in
--- old/remind-03.03.11/rem2html/Makefile.in    2021-12-30 02:51:01.000000000 
+0100
+++ new/remind-03.03.12/rem2html/Makefile.in    2022-01-24 23:49:00.000000000 
+0100
@@ -7,7 +7,7 @@
 datadir=@datadir@
 datarootdir=@datarootdir@
 PERL=@PERL@
-PERLMODS_NEEDED=JSON::Any Getopt::Long
+PERLMODS_NEEDED=JSON::MaybeXS Getopt::Long
 all:
        true
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/rem2html/rem2html 
new/remind-03.03.12/rem2html/rem2html
--- old/remind-03.03.11/rem2html/rem2html       2021-12-30 02:51:01.000000000 
+0100
+++ new/remind-03.03.12/rem2html/rem2html       2022-01-24 23:49:00.000000000 
+0100
@@ -4,7 +4,7 @@
 use warnings;
 
 use Getopt::Long;
-use JSON::Any;
+use JSON::MaybeXS;
 
 my %Options;
 
@@ -266,7 +266,7 @@
                ($y, $m, $d, $special, $tag, $duration, $time, $body) =
                    ($1, $2, $3, $4, $5, $6, $7, $8);
        } elsif (/\{/) {
-               my $obj = JSON::Any->jsonToObj($_);
+               my $obj = decode_json($_);
                next unless ($obj->{date} =~ /^(\d+)-(\d+)-(\d+)$/);
                $y = $1;
                $m = $2;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/scripts/tkremind 
new/remind-03.03.12/scripts/tkremind
--- old/remind-03.03.11/scripts/tkremind        2021-12-30 02:51:01.000000000 
+0100
+++ new/remind-03.03.12/scripts/tkremind        2022-01-24 23:49:00.000000000 
+0100
@@ -146,7 +146,7 @@
 set ReminderFile [file nativename "~/.reminders"]
 
 # Default options file
-set ConfigFile ~/.tkremindrc
+set ConfigFile ""
 
 set EditorPid -1
 
@@ -2731,6 +2731,7 @@
            close $f
        }
     }
+    FindConfigFile
     LoadOptions
     ShowTodaysReminders
     ScanForTags $AppendFile
@@ -3913,4 +3914,47 @@
     raise .opt
 }
 
+proc FindConfigFile {} {
+    global ConfigFile
+
+    # If it was set on the command line, use that
+    if {"$ConfigFile" != ""} {
+        return
+    }
+
+    set confighome ""
+    if {[info exists env(XDG_CONFIG_HOME)]} {
+        set confighome $env(XDG_CONFIG_HOME)
+    }
+    if {"$confighome" == ""} {
+        set confighome "~/.config"
+    }
+
+    # If $confighome does not exist, attempt to
+    # create it
+    if {![file exists $confighome]} {
+        catch { file mkdir $confighome }
+    }
+
+    if {[file isdirectory $confighome]} {
+        # Migrate .tkremindrc to $confighome/tkremindrc
+        if {[file exists "~/.tkremindrc"]} {
+            if {![file exists "$confighome/tkreminderc"]} {
+                puts "Migrating ~/.tkremindrc to $confighome/tkremindrc"
+                if {[catch { file copy "~/.tkremindrc" 
"$confighome/tkremindrc"}]} {
+                    puts "FAILED!\n"
+                    set ConfigFile "~/.tkremindrc"
+                    return
+                }
+                catch { file delete "~/.tkremindrc" }
+            }
+            set ConfigFile "$confighome/tkremindrc"
+            return
+        }
+        set ConfigFile "$confighome/tkremindrc"
+        return
+    }
+    set ConfigFile "~/.tkremindrc"
+}
+
 main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/src/calendar.c 
new/remind-03.03.12/src/calendar.c
--- old/remind-03.03.11/src/calendar.c  2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/src/calendar.c  2022-01-24 23:49:00.000000000 +0100
@@ -1238,7 +1238,10 @@
            case T_IfTrig:  r=DoIfTrig(&p);  break;
            case T_Else:    r=DoElse(&p);    break;
            case T_EndIf:   r=DoEndif(&p);   break;
-           case T_Include: r=DoInclude(&p); break;
+
+           case T_Include:
+           case T_IncludeR: r=DoInclude(&p, tok.type); break;
+
            case T_IncludeCmd: r=DoIncludeCmd(&p); break;
            case T_Exit:    DoExit(&p);      break;
            case T_Set:     r=DoSet(&p);     break;
@@ -1333,7 +1336,7 @@
 /***************************************************************/
 static int DoCalRem(ParsePtr p, int col)
 {
-    int oldLen;
+    size_t oldLen;
     Trigger trig;
     TimeTrig tim;
     Value v;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/src/dorem.c 
new/remind-03.03.12/src/dorem.c
--- old/remind-03.03.11/src/dorem.c     2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/src/dorem.c     2022-01-24 23:49:00.000000000 +0100
@@ -234,7 +234,7 @@
     DBufInit(&(trig->tags));
     trig->passthru[0] = 0;
     tim->ttime = NO_TIME;
-    tim->delta = NO_DELTA;
+    tim->delta = DefaultTDelta;
     tim->rep   = NO_REP;
     tim->duration = NO_TIME;
     if (save_in_globals) {
@@ -489,7 +489,7 @@
 {
     Token tok;
     int r;
-
+    int seen_delta = 0;
     DynamicBuffer buf;
     DBufInit(&buf);
 
@@ -506,8 +506,9 @@
 
        case T_Delta:
            DBufFree(&buf);
-           if (tim->delta != NO_DELTA) return E_DELTA_TWICE;
-           tim->delta = (tok.val > 0) ? tok.val : -tok.val;
+            if (seen_delta) return E_DELTA_TWICE;
+            seen_delta = 1;
+           tim->delta = (tok.val >= 0) ? tok.val : -tok.val;
            break;
 
        case T_Rep:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/src/dynbuf.c 
new/remind-03.03.12/src/dynbuf.c
--- old/remind-03.03.11/src/dynbuf.c    2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/src/dynbuf.c    2022-01-24 23:49:00.000000000 +0100
@@ -27,11 +27,11 @@
  Doubles the size of dynamic buffer until it has room for at least
  'n' characters, not including trailing '\0'
 **********************************************************************/
-static int DBufMakeRoom(DynamicBuffer *dbuf, int n)
+static int DBufMakeRoom(DynamicBuffer *dbuf, size_t n)
 {
     /* Double size until it's greater than n (strictly > to leave room
        for trailing '\0' */
-    int size = dbuf->allocatedLen;
+    size_t size = dbuf->allocatedLen;
     char *buf;
 
     if (size > n) return OK;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/src/dynbuf.h 
new/remind-03.03.12/src/dynbuf.h
--- old/remind-03.03.11/src/dynbuf.h    2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/src/dynbuf.h    2022-01-24 23:49:00.000000000 +0100
@@ -17,8 +17,8 @@
 #define DBUF_STATIC_SIZE 128
 typedef struct {
     char *buffer;
-    int len;
-    int allocatedLen;
+    size_t len;
+    size_t allocatedLen;
     char staticBuf[DBUF_STATIC_SIZE];
 } DynamicBuffer;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/src/expr.c 
new/remind-03.03.12/src/expr.c
--- old/remind-03.03.11/src/expr.c      2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/src/expr.c      2022-01-24 23:49:00.000000000 +0100
@@ -828,7 +828,7 @@
        v3.type = STR_TYPE;
        l1 = strlen(v1.v.str);
        l2 = strlen(v2.v.str);
-       if (MaxStringLen && (l1 + l2 > (size_t) MaxStringLen)) {
+       if (MaxStringLen > 0 && (l1 + l2 > (size_t) MaxStringLen)) {
            DestroyValue(v1); DestroyValue(v2);
            return E_STRING_TOO_LONG;
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/src/files.c 
new/remind-03.03.12/src/files.c
--- old/remind-03.03.11/src/files.c     2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/src/files.c     2022-01-24 23:49:00.000000000 +0100
@@ -557,23 +557,68 @@
 /*  The INCLUDE command.                                       */
 /*                                                             */
 /***************************************************************/
-int DoInclude(ParsePtr p)
+int DoInclude(ParsePtr p, enum TokTypes tok)
 {
     DynamicBuffer buf;
+    DynamicBuffer fullname;
+    DynamicBuffer path;
     int r, e;
 
+    r = OK;
+    char const *s;
     DBufInit(&buf);
+    DBufInit(&fullname);
+    DBufInit(&path);
     if ( (r=ParseToken(p, &buf)) ) return r;
     e = VerifyEoln(p);
     if (e) Eprint("%s", ErrMsg[e]);
-    if ( (r=IncludeFile(DBufValue(&buf))) ) {
-       DBufFree(&buf);
-       return r;
+
+    if (tok == T_IncludeR && *(DBufValue(&buf)) != '/') {
+        /* Relative include: Include relative to dir
+           containing current file */
+        if (DBufPuts(&path, FileName) != OK) {
+            r = E_NO_MEM;
+            goto bailout;
+        }
+        if (DBufLen(&path) == 0) {
+            s = DBufValue(&buf);
+        } else {
+            char *t = DBufValue(&path) + DBufLen(&path) - 1;
+            while (t > DBufValue(&path) && *t != '/') t--;
+            if (*t == '/') {
+                *t = 0;
+                if (DBufPuts(&fullname, DBufValue(&path)) != OK) {
+                    r = E_NO_MEM;
+                    goto bailout;
+                }
+                if (DBufPuts(&fullname, "/") != OK) {
+                    r = E_NO_MEM;
+                    goto bailout;
+                }
+                if (DBufPuts(&fullname, DBufValue(&buf)) != OK) {
+                    r = E_NO_MEM;
+                    goto bailout;
+                }
+                s = DBufValue(&fullname);
+            } else {
+                s = DBufValue(&buf);
+            }
+        }
+    } else {
+        s = DBufValue(&buf);
     }
-    DBufFree(&buf);
+    if ( (r=IncludeFile(s)) ) {
+        goto bailout;
+    }
+
     NumIfs = 0;
     IfFlags = 0;
-    return OK;
+
+  bailout:
+    DBufFree(&buf);
+    DBufFree(&path);
+    DBufFree(&fullname);
+    return r;
 }
 
 /***************************************************************/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/src/funcs.c 
new/remind-03.03.12/src/funcs.c
--- old/remind-03.03.11/src/funcs.c     2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/src/funcs.c     2022-01-24 23:49:00.000000000 +0100
@@ -433,7 +433,9 @@
     Value *v = &ARG(0);
     if (v->type != STR_TYPE) return E_BAD_TYPE;
     RetVal.type = INT_TYPE;
-    RETVAL = strlen(v->v.str);
+    size_t l = strlen(v->v.str);
+    if (l > INT_MAX) return E_2HIGH;
+    RETVAL = (int) l;
     return OK;
 }
 
@@ -1572,6 +1574,15 @@
        ASSERT_TYPE(1, INT_TYPE);
        maxlen = ARGV(1);
     }
+
+    /* Don't allow maxlen to exceed the maximum length of
+       a string variable */
+    if (MaxStringLen > 0) {
+        if (maxlen <= 0 || maxlen > MaxStringLen) {
+            maxlen = MaxStringLen;
+        }
+    }
+
     fp = popen(ARGSTR(0), "r");
     if (!fp) return E_IO_ERR;
     while (1) {
@@ -1585,7 +1596,7 @@
            DBufFree(&buf);
            return E_NO_MEM;
        }
-       if (maxlen > 0 && DBufLen(&buf) >= maxlen) {
+       if (maxlen > 0 && DBufLen(&buf) >= (size_t) maxlen) {
            break;
        }
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/src/globals.h 
new/remind-03.03.12/src/globals.h
--- old/remind-03.03.11/src/globals.h   2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/src/globals.h   2022-01-24 23:49:00.000000000 +0100
@@ -61,6 +61,7 @@
 EXTERN  INIT(  int     Hush, 0);
 EXTERN  INIT(  int     NextMode, 0);
 EXTERN  INIT(  int     InfiniteDelta, 0);
+EXTERN  INIT(   int     DefaultTDelta, 0);
 EXTERN  INIT(   int     DeltaOffset, 0);
 EXTERN  INIT(   int     RunDisabled, 0);
 EXTERN  INIT(   int     IgnoreOnce, 0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/src/init.c 
new/remind-03.03.12/src/init.c
--- old/remind-03.03.11/src/init.c      2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/src/init.c      2022-01-24 23:49:00.000000000 +0100
@@ -76,9 +76,6 @@
  *  A minus sign alone indicates to take input from stdin
  *
  **************************************************************/
-#if defined(__APPLE__) || defined(__CYGWIN__)
-static void rkrphgvba(int x);
-#endif
 
 /* For parsing an integer */
 #define PARSENUM(var, s)   \
@@ -145,12 +142,6 @@
     int x;
     int jul;
 
-#if defined(__APPLE__)
-    rkrphgvba(0);
-#elif defined(__CYGWIN__)
-    rkrphgvba(1);
-#endif
-
     jul = NO_DATE;
 
     /* If stdout is a terminal, initialize $FormWidth to terminal width-8,
@@ -293,7 +284,19 @@
 
            case 't':
            case 'T':
-               if (!*arg) {
+                if (*arg == 'T' || *arg == 't') {
+                    arg++;
+                    if (!*arg) {
+                        DefaultTDelta = 5;
+                    } else {
+                        PARSENUM(DefaultTDelta, arg);
+                        if (DefaultTDelta < 0) {
+                            DefaultTDelta = 0;
+                        } else if (DefaultTDelta > 1440) {
+                            DefaultTDelta = 1440;
+                        }
+                    }
+                } else if (!*arg) {
                    InfiniteDelta = 1;
                } else {
                    PARSENUM(DeltaOffset, arg);
@@ -884,46 +887,3 @@
     NumTrustedUsers++;
 }
 
-#if defined(__APPLE__) || defined(__CYGWIN__)
-static char const pmsg1[] = {
-    0x4c, 0x62, 0x68, 0x20, 0x6e, 0x63, 0x63, 0x72, 0x6e, 0x65, 0x20,
-    0x67, 0x62, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x68, 0x61, 0x61, 0x76,
-    0x61, 0x74, 0x20, 0x45, 0x72, 0x7a, 0x76, 0x61, 0x71, 0x20, 0x62,
-    0x61, 0x20, 0x6e, 0x61, 0x20, 0x4e, 0x63, 0x63, 0x79, 0x72, 0x20,
-    0x63, 0x65, 0x62, 0x71, 0x68, 0x70, 0x67, 0x2e, 0x20, 0x20, 0x56,
-    0x27, 0x71, 0x20, 0x65, 0x6e, 0x67, 0x75, 0x72, 0x65, 0x20, 0x67,
-    0x75, 0x6e, 0x67, 0x0a, 0x6c, 0x62, 0x68, 0x20, 0x71, 0x76, 0x71,
-    0x61, 0x27, 0x67, 0x2e, 0x20, 0x20, 0x45, 0x72, 0x7a, 0x76, 0x61,
-    0x71, 0x20, 0x72, 0x6b, 0x72, 0x70, 0x68, 0x67, 0x76, 0x62, 0x61,
-    0x20, 0x6a, 0x76, 0x79, 0x79, 0x20, 0x70, 0x62, 0x61, 0x67, 0x76,
-    0x61, 0x68, 0x72, 0x20, 0x7a, 0x62, 0x7a, 0x72, 0x61, 0x67, 0x6e,
-    0x65, 0x76, 0x79, 0x6c, 0x2e, 0x0a, 0x00
-};
-
-static char const pmsg2[] = {
-    0x4c, 0x62, 0x68, 0x20, 0x6e, 0x63, 0x63, 0x72, 0x6e, 0x65, 0x20,
-    0x67, 0x62, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x68, 0x61, 0x61, 0x76,
-    0x61, 0x74, 0x20, 0x45, 0x72, 0x7a, 0x76, 0x61, 0x71, 0x20, 0x62,
-    0x61, 0x20, 0x6e, 0x20, 0x5a, 0x76, 0x70, 0x65, 0x62, 0x66, 0x62,
-    0x73, 0x67, 0x20, 0x66, 0x6c, 0x66, 0x67, 0x72, 0x7a, 0x2e, 0x20,
-    0x20, 0x56, 0x27, 0x71, 0x20, 0x65, 0x6e, 0x67, 0x75, 0x72, 0x65,
-    0x20, 0x67, 0x75, 0x6e, 0x67, 0x0a, 0x6c, 0x62, 0x68, 0x20, 0x71,
-    0x76, 0x71, 0x61, 0x27, 0x67, 0x2e, 0x20, 0x20, 0x45, 0x72, 0x7a,
-    0x76, 0x61, 0x71, 0x20, 0x72, 0x6b, 0x72, 0x70, 0x68, 0x67, 0x76,
-    0x62, 0x61, 0x20, 0x6a, 0x76, 0x79, 0x79, 0x20, 0x70, 0x62, 0x61,
-    0x67, 0x76, 0x61, 0x68, 0x72, 0x20, 0x7a, 0x62, 0x7a, 0x72, 0x61,
-    0x67, 0x6e, 0x65, 0x76, 0x79, 0x6c, 0x2e, 0x0a, 0x00
-};
-
-static void
-rkrphgvba(int x)
-{
-    char const *s = (x ? pmsg2 : pmsg1);
-    while(*s) {
-       int c = (int) *s++;
-       c=isalpha(c)?tolower(c)<0x6e?c+13:c-13:c;
-       putchar(c);
-    }
-    sleep(5);
-}
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/src/main.c 
new/remind-03.03.12/src/main.c
--- old/remind-03.03.11/src/main.c      2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/src/main.c      2022-01-24 23:49:00.000000000 +0100
@@ -235,12 +235,13 @@
            case T_Else:    r=DoElse(&p);    break;
            case T_EndIf:   r=DoEndif(&p);   break;
            case T_Include:
+            case T_IncludeR:
                /* In purge mode, include closes file, so we
                   need to echo it here! */
                if (PurgeMode) {
                    PurgeEchoLine("%s\n", CurLine);
                }
-               r=DoInclude(&p);
+               r=DoInclude(&p, tok.type);
                purge_handled = 1;
                break;
            case T_IncludeCmd:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/src/protos.h 
new/remind-03.03.12/src/protos.h
--- old/remind-03.03.11/src/protos.h    2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/src/protos.h    2022-01-24 23:49:00.000000000 +0100
@@ -44,7 +44,7 @@
 int CopyValue (Value *dest, const Value *src);
 int ReadLine (void);
 int OpenFile (char const *fname);
-int DoInclude (ParsePtr p);
+int DoInclude (ParsePtr p, enum TokTypes tok);
 int DoIncludeCmd (ParsePtr p);
 int IncludeFile (char const *fname);
 int GetAccessDate (char const *file);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/src/token.c 
new/remind-03.03.12/src/token.c
--- old/remind-03.03.11/src/token.c     2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/src/token.c     2022-01-24 23:49:00.000000000 +0100
@@ -48,6 +48,7 @@
     { "clear-omit-context", 5,   T_Clr,         0 },
     { "debug",          5,      T_Debug,       0 },
     { "december",      3,      T_Month,       11 },
+    { "do",            2,      T_IncludeR,     0 },
     { "dumpvars",       4,      T_Dumpvars,    0 },
     { "duration",       3,      T_Duration,     0 },
     { "else",          4,      T_Else, 0 },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/src/types.h 
new/remind-03.03.12/src/types.h
--- old/remind-03.03.11/src/types.h     2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/src/types.h     2022-01-24 23:49:00.000000000 +0100
@@ -151,7 +151,7 @@
 enum TokTypes
 { T_Illegal,
   /* Commands first */
-  T_Rem, T_Push, T_Pop, T_Preserve, T_Include, T_IncludeCmd, T_If, T_Else, 
T_EndIf,
+  T_Rem, T_Push, T_Pop, T_Preserve, T_Include, T_IncludeR, T_IncludeCmd, T_If, 
T_Else, T_EndIf,
   T_IfTrig, T_ErrMsg,
   T_Set, T_UnSet, T_Fset, T_Omit, T_Banner, T_Exit,
   T_AddOmit,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/src/var.c 
new/remind-03.03.12/src/var.c
--- old/remind-03.03.11/src/var.c       2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/src/var.c       2022-01-24 23:49:00.000000000 +0100
@@ -747,6 +747,7 @@
     {"DateTimeSep",    1,  SPECIAL_TYPE, datetime_sep_func,   0,      0   },
     {"DefaultColor",   1,  SPECIAL_TYPE, default_color_func,  0,      0   },
     {"DefaultPrio",    1,  INT_TYPE,     &DefaultPrio,        0,      9999},
+    {"DefaultTDelta",  1,  INT_TYPE,     &DefaultTDelta,      0,      1440},
     {"DeltaOffset",    0,  INT_TYPE,     &DeltaOffset,        0,      0   },
     {"DontFork",       0,  INT_TYPE,     &DontFork,           0,      0   },
     {"DontQueue",      0,  INT_TYPE,     &DontQueue,          0,      0   },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/tests/include_dir/02.rem 
new/remind-03.03.12/tests/include_dir/02.rem
--- old/remind-03.03.11/tests/include_dir/02.rem        2021-12-30 
02:51:01.000000000 +0100
+++ new/remind-03.03.12/tests/include_dir/02.rem        2022-01-24 
23:49:00.000000000 +0100
@@ -1 +1,3 @@
 REM 15 MSG 02
+DO subdir/04.rem
+INCLUDE subdir/04.rem
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/tests/include_dir/subdir/04.rem 
new/remind-03.03.12/tests/include_dir/subdir/04.rem
--- old/remind-03.03.11/tests/include_dir/subdir/04.rem 1970-01-01 
01:00:00.000000000 +0100
+++ new/remind-03.03.12/tests/include_dir/subdir/04.rem 2022-01-24 
23:49:00.000000000 +0100
@@ -0,0 +1 @@
+REM 16 MSG Should be included by 02.rem
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/remind-03.03.11/tests/test.cmp 
new/remind-03.03.12/tests/test.cmp
--- old/remind-03.03.11/tests/test.cmp  2021-12-30 02:51:01.000000000 +0100
+++ new/remind-03.03.12/tests/test.cmp  2022-01-24 23:49:00.000000000 +0100
@@ -1020,7 +1020,7 @@
 "a05" + "6" => "a056"
 value("a056") => "SDFJHSDF KSJDFH KJSDFH KSJDFH"
 set a058 version()
-version() => "03.03.11"
+version() => "03.03.12"
 set a059 wkday(today())
 today() => 1991-02-16
 wkday(1991-02-16) => "Saturday"
@@ -2589,7 +2589,7 @@
 a109  2012-01-01
 a128  2018-02-03@16:45
 a039  "February"
-a058  "03.03.11"
+a058  "03.03.12"
 a077  "1992 92
 "
 a096  -4
@@ -2693,6 +2693,7 @@
     $DateTimeSep  "@"
    $DefaultColor  "-1 -1 -1"
     $DefaultPrio  5000        [0, 9999]
+  $DefaultTDelta  0           [0, 1440]
     $DeltaOffset  0
        $DontFork  0
       $DontQueue  0
@@ -4003,158 +4004,221 @@
 Caching file `../tests/include_dir/01.rem' in memory
 Reading `../tests/include_dir/02.rem': Opening file on disk
 Caching file `../tests/include_dir/02.rem' in memory
+Reading `../tests/include_dir/subdir/04.rem': Opening file on disk
+Caching file `../tests/include_dir/subdir/04.rem' in memory
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 Found cached directory listing for `../tests/include_dir'
 Reading `../tests/include_dir/01.rem': Found in cache
 Reading `../tests/include_dir/02.rem': Found in cache
+Reading `../tests/include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+../tests/include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `../tests/include_dir/04cantread.rem': Opening file on disk
-../tests/include_dir/02.rem(1): Can't open file: 
../tests/include_dir/04cantread.rem
 # rem2ps begin
 August 2007 31 3 0
 Sunday Monday Tuesday Wednesday Thursday Friday Saturday
@@ -4164,6 +4228,8 @@
 2007/08/15 * * * * 01
 # fileinfo 1 ../tests/include_dir/02.rem
 2007/08/15 * * * * 02
+# fileinfo 1 ../tests/include_dir/subdir/04.rem
+2007/08/16 * * * * Should be included by 02.rem
 # rem2ps end
 Test 9
 
@@ -4192,8 +4258,11 @@
 Caching file `include_dir/01.rem' in memory
 Reading `include_dir/02.rem': Opening file on disk
 Caching file `include_dir/02.rem' in memory
+Reading `include_dir/subdir/04.rem': Opening file on disk
+Caching file `include_dir/subdir/04.rem' in memory
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Scanning directory `include_dir_no_rems' for *.rem files
 Caching directory `include_dir_no_rems' listing
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
@@ -4203,8 +4272,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4213,8 +4284,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4223,8 +4296,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4233,8 +4308,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4243,8 +4320,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4253,8 +4332,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4263,8 +4344,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4273,8 +4356,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4283,8 +4368,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4293,8 +4380,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4303,8 +4392,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4313,8 +4404,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4323,8 +4416,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4333,8 +4428,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4343,8 +4440,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4353,8 +4452,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4363,8 +4464,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4373,8 +4476,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4383,8 +4488,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4393,8 +4500,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4403,8 +4512,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4413,8 +4524,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4423,8 +4536,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4433,8 +4548,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4443,8 +4560,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4453,8 +4572,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4463,8 +4584,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4473,8 +4596,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4483,8 +4608,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4493,8 +4620,10 @@
 Found cached directory listing for `include_dir'
 Reading `include_dir/01.rem': Found in cache
 Reading `include_dir/02.rem': Found in cache
+Reading `include_dir/subdir/04.rem': Found in cache
+Reading `subdir/04.rem': Opening file on disk
+include_dir/02.rem(3): Can't open file: subdir/04.rem
 Reading `include_dir/04cantread.rem': Opening file on disk
-include_dir/02.rem(1): Can't open file: include_dir/04cantread.rem
 Found cached directory listing for `include_dir_no_rems'
 ../tests/include_test.rem(2): include_dir_no_rems: No files matching *.rem
 Reading `nonexistent_include_dir': Opening file on disk
@@ -4510,6 +4639,8 @@
 2007/08/15 * * * * 02
 # fileinfo 5 ../tests/include_test.rem
 2007/08/15 * * * * Whee!!!!
+# fileinfo 1 include_dir/subdir/04.rem
+2007/08/16 * * * * Should be included by 02.rem
 # rem2ps end
 Feb 29 Bug Test
 -(1): Trig = Sunday, 3 March, 2024

Reply via email to