From 01fcee7d71d1c7a15f90c672a0191d95d83c02fe Mon Sep 17 00:00:00 2001 From: Ben Gras Date: Sat, 3 Jul 2010 22:18:11 +0000 Subject: [PATCH] ash: make test/expr support 'file1 -ot file2' --- commands/ash/bltin/binary_op | 1 + commands/ash/bltin/expr.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/commands/ash/bltin/binary_op b/commands/ash/bltin/binary_op index 9dd732b63..74381107b 100755 --- a/commands/ash/bltin/binary_op +++ b/commands/ash/bltin/binary_op @@ -11,6 +11,7 @@ AND2 & 2 STREQ = 4 OP_STRING STRNE != 4 OP_STRING NEWER -newer 4 OP_STRING +OLDER -ot 4 OP_STRING EQ -eq 4 OP_INT NE -ne 4 OP_INT GT -gt 4 OP_INT diff --git a/commands/ash/bltin/expr.c b/commands/ash/bltin/expr.c index 63e2844f7..88d8c05cc 100644 --- a/commands/ash/bltin/expr.c +++ b/commands/ash/bltin/expr.c @@ -347,13 +347,18 @@ filebit: sp->u.num = fs->rcode >= 0? fs->stat.st_size : 0L; sp->type = INTEGER; break; + case OLDER: case NEWER: if (stat(sp->u.string, &st1) != 0) { sp->u.num = 0; } else if (stat((sp + 1)->u.string, &st2) != 0) { sp->u.num = 1; } else { - sp->u.num = st1.st_mtime >= st2.st_mtime; + int isnewer = st1.st_mtime >= st2.st_mtime; + if(op == NEWER) + sp->u.num = isnewer; + else + sp->u.num = !isnewer; } sp->type = INTEGER; break; -- 2.44.0