From 94a48596a3d168f80462a7f2be9ece9dc0da09f8 Mon Sep 17 00:00:00 2001 From: Garrett Wollman Date: Sat, 11 May 2002 03:08:12 +0000 Subject: [PATCH] EXPR_COMPAT should imply -e, since there is no way to specify it otherwise, and -e reflects the historic behavior of FreeBSD's expr. --- bin/expr/expr.1 | 18 +++++++++++++++++- bin/expr/expr.y | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/bin/expr/expr.1 b/bin/expr/expr.1 index 1425e00ddc77..4a978d07a1fc 100644 --- a/bin/expr/expr.1 +++ b/bin/expr/expr.1 @@ -66,7 +66,7 @@ If .Fl e is not specified, arithmetic operations and parsing of integer arguments will overflow silently according to the rules of the C -standard, and integer computations will be performed using the +standard, using the .Ql long data type. .Pp @@ -139,6 +139,20 @@ including the one in previous versions of will not permit this syntax. See the examples below for portable ways to guarantee the correct interpretation. +The +.Ev EXPR_COMPAT +variable is intended for use as a transition and debugging aid, when +.Nm +is used in complex scripts which cannot easily be recast to avoid the +non-portable usage. +Defining +.Ev EXPR_COMPAT +also implicitly enables the +.Fl e +option, since this matches the historic behavior of +.Nm +in +.Fx . .Pp The .Nm @@ -161,6 +175,8 @@ If set, will emulate historic .Nm implementations which did not obey the Utility Syntax Guidelines. +Implies +.Fl e . .El .Sh EXAMPLES .Bl -bullet diff --git a/bin/expr/expr.y b/bin/expr/expr.y index 92c0e5f2df50..c73d85360deb 100644 --- a/bin/expr/expr.y +++ b/bin/expr/expr.y @@ -280,6 +280,7 @@ main(int argc, char *argv[]) setlocale (LC_ALL, ""); if (getenv("EXPR_COMPAT") != NULL) { av = argv + 1; + eflag = 1; } else { while ((c = getopt(argc, argv, "e")) != -1) switch (c) {