summaryrefslogtreecommitdiff
path: root/src/test.c
diff options
context:
space:
mode:
authorDavid A. Wheeler <dwheeler@dwheeler.com>2011-03-22 06:03:55 +0100
committerJim Meyering <meyering@redhat.com>2011-03-22 07:12:01 +0100
commit3f31ec950b78309a0d12d92d87a735b8870a2289 (patch)
treeba10fd737e20a7e8f1959f6031683d674762afe5 /src/test.c
parent2a3a094e0d9712e69f168a10685975f1a7ed5917 (diff)
downloadcoreutils-3f31ec950b78309a0d12d92d87a735b8870a2289.tar.xz
test: accept "==" as a synonym for "="
Make GNU coreutils' test recognize "==" as a synonym for "=". This is already the case in GNU coreutils' expr, bash, ksh, busybox ash, FreeBSD-current /bin/sh and /bin/test, and OpenBSD's /bin/sh. Before, env test a '==' a would fail with this diagnostic: "test: ==: binary operator expected". Now, it succeeds. * src/test.c: Accept "==" as a synonym for "=". * doc/coreutils.texi (String tests): Document it. Reported as http://debbugs.gnu.org/8263 Also see http://austingroupbugs.net/view.php?id=375
Diffstat (limited to 'src/test.c')
-rw-r--r--src/test.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/test.c b/src/test.c
index 2d7aa673b..362df65d8 100644
--- a/src/test.c
+++ b/src/test.c
@@ -173,7 +173,8 @@ get_mtime (char const *filename, struct timespec *mtime)
static bool
binop (char const *s)
{
- return ((STREQ (s, "=")) || (STREQ (s, "!=")) || (STREQ (s, "-nt")) ||
+ return ((STREQ (s, "=")) || (STREQ (s, "!=")) || (STREQ (s, "==")) ||
+ (STREQ (s, "-nt")) ||
(STREQ (s, "-ot")) || (STREQ (s, "-ef")) || (STREQ (s, "-eq")) ||
(STREQ (s, "-ne")) || (STREQ (s, "-lt")) || (STREQ (s, "-le")) ||
(STREQ (s, "-gt")) || (STREQ (s, "-ge")));
@@ -360,7 +361,8 @@ binary_operator (bool l_is_l)
test_syntax_error (_("unknown binary operator"), argv[op]);
}
- if (argv[op][0] == '=' && !argv[op][1])
+ if (argv[op][0] == '=' && (!argv[op][1] ||
+ ((argv[op][1] == '=') && !argv[op][2])))
{
bool value = STREQ (argv[pos], argv[pos + 2]);
pos += 3;