On Tue Oct 1 07:35:11 EDT 2013, [email protected] wrote:
> Hello,
>
> Am I missing something?
> It seems logic is inverted to me.
>
> Kenji Arisawa
>
> maia% ls -l
> ...
> --rw-rw-r-- M 323 arisawa arisawa 0 Sep 29 06:29 x
> --rw-rw-r-- M 323 arisawa arisawa 14 Sep 28 17:50 z
> maia% mtime x
> 1380403777 x
> maia% if(test z -older 1380403777) echo older
> maia% if(! test z -older 1380403777) echo older
i assume that there is some copy paste error here? (the
mtime of z is not shown.)
if not, "older" is not equivalent to "not younger than";
x is older than y means mtime(x) < mtime(y), and not ≤.
minooka; touch x
minooka; mtime x
1380627631 x
minooka; if(test x -older 1380627631) echo older
minooka; if(test x -older 1380627632) echo older
older
> I have forgotten that I took up this bug in Jun this year.
> Already fixed in distribution?
the distribution's executable is really broken. even if the sign is wrong,
one of the following must be true:
minooka; 9fs sources
minooka; if(/n/sources/plan9/386/bin/test x -older 1380627630)echo older
minooka; if(/n/sources/plan9/386/bin/test x -older 1380627631)echo older
minooka; if(/n/sources/plan9/386/bin/test x -older 1380627632)echo older
> r = dir->mtime + n < time(0);
> free(dir);
> return r;
i have the following, perhaps from your suggestion:
if(rel)
n = time(0) - n;
if(n < 0)
r = 0;
else
r = dir->mtime < n;
- erik