History log of /freebsd-10.0-release/bin/expr/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
259065 07-Dec-2013 gjb

- Copy stable/10 (r259064) to releng/10.0 as part of the
10.0-RELEASE cycle.
- Update __FreeBSD_version [1]
- Set branch name to -RC1

[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so
start releng/10.0 at '100' so the branch is started with
a value ending in zero.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


249657 19-Apr-2013 ed

Add the Clang specific -Wmissing-variable-declarations to WARNS=6.

This compiler flag enforces that that people either mark variables
static or use an external declarations for the variable, similar to how
-Wmissing-prototypes works for functions.

Due to the fact that Yacc/Lex generate code that cannot trivially be
changed to not warn because of this (lots of yy* variables), add a
NO_WMISSING_VARIABLE_DECLARATIONS that can be used to turn off this
specific compiler warning.

Announced on: toolchain@


235771 22-May-2012 kevlo

Remove redundant declaration of yyparse

Reported by: tinderbox


235400 13-May-2012 joel

Minor mdoc nits.


233137 19-Mar-2012 eadler

rm[0].rm_so must be zero (an explicit check is made for zero in the
outer if condition)

Reviewed by: se
Approved by: cperciva


232158 25-Feb-2012 gjb

Whitespace cleanup:
o Wrap sentences on to new lines
o Cleanup trailing whitespace

Found with: textproc/igor
MFC after: 1 week
X-MFC-With: r232157


232157 25-Feb-2012 gjb

Fix various typos in manual pages.

Submitted by: amdmi3
PR: 165431
MFC after: 1 week


223883 09-Jul-2011 se

Fix style, since this file has just been touched in a major way.
No actual code changes.


223882 09-Jul-2011 se

Some refactoring for easier maintenance of the code. This is a follow-up
to re-establishment of 64bit arithmetic, but is committed separately, to
not obscure that conversion. This commit does not change the observed
behaviour of expr in any way. Style will be fixed in a follow-up commit.


223881 09-Jul-2011 se

Make /bin/expr support 64bit numeric range and range checks by default,
again. This brings back the behaviour of expr in FreeBSD-4, which had been
reverted due to an assumed incompatbility with POSIX.1 for FreeBSD-5.

This issue has been discussed in the freebsd-standards list, and the
consensus was, that POSIX.1 is in fact not violated by this extension,
since it affects only cases of POSIX undefined behaviour (overflow of
signed long).

Other operating systems did upgrade their versions of expr to support
64bit range, after it had been initially brought to FreeBSD. They have
used it for a decade without problems, meanwhile.

The -e option is retained, but it will only select less strict checking
of numeric parameters (leading white-space, leading "+" are allowed and
skipped, an empty string is considered to represent 0 in numeric context.)
The call of check_utility_compat() as a means of establishing backwards
compatibility with FreeBSD-4 is considered obsolete, but preserved in
this commit. It is expected to be removed in a later revision of this
file.
Reviewed by: bde, das, jilles
MFC after: 2 month (those parts that do not violate POLA)


212390 09-Sep-2010 jilles

expr(1): Add sh(1) versions of examples, remove an incorrect example.

The three examples are better done using sh(1) itself these days.

The example
expr -- "$a" : ".*"
is incorrect in the general case, as "$a" may be an operator.

MFC after: 2 weeks


167210 04-Mar-2007 ru

Fix markup.


166813 18-Feb-2007 ceri

Correct typos containing my login name (plus one more in expr.y).
Found courtesy of a recursive grep in the wrong directory.


140353 16-Jan-2005 ru

Add the new standard EXIT STATUS section where appropriate.
Sort standard sections in the (documented) preferred order.


140169 13-Jan-2005 ru

Removed harmful empty lines that crept in during the copyright
header update.


139969 10-Jan-2005 imp

/*- or .\"- or #- to begin license clauses.


132029 12-Jul-2004 tjr

Remove BUGS section that talked about missing multibyte character support.
We have support now that the regular expression routines do.


131513 03-Jul-2004 tjr

Document missing multibyte character handling in utilities specified
by POSIX.


116282 13-Jun-2003 markm

Get this area compiling with the highest WARNS= that it works with.
Obsolete WFORMAT= junk also removed where possible.

OK'ed by: obrien
Tested on: sparc64, alpha, i386


107282 26-Nov-2002 ru

mdoc(7) police:

Revert to using the .Tn POSIX and .Tn ANSI instead of \*[Px] and \*[Ai]
strings; using these strings is unsafe in troff mode, as they include a
change in a font size.

Approved by: re


107226 25-Nov-2002 ru

mdoc(7) police: markup fixes.

Approved by: re


106065 28-Oct-2002 wollman

Create a small library function, check_utility_compat(3), to determine
whether a named utility should behave in FreeBSD 4.x-compatible mode
or in a standard mode (default standard). The configuration is done
malloc(3)-style, with either an environment variable or a symlink.

Update expr(1) to use this new interface.


97464 29-May-2002 ru

mdoc(7) police: markup nits.


96382 11-May-2002 wollman

EXPR_COMPAT should imply -e, since there is no way to specify it otherwise,
and -e reflects the historic behavior of FreeBSD's expr.


96367 10-May-2002 wollman

The response to my POSIX interpretation request says that `expr'
is required to be oblivious to overflow and to use the data type `long'.
(Division by zero is undefined in ISO C so it's still OK to check for it
here.) Add a new `-e' flag to get the old, more useful behavior.


95278 22-Apr-2002 wollman

Provide an environment variabloe, EXPR_COMPAT, which disables option
parsing for compatibility with old implementations.


92997 23-Mar-2002 wollman

Disable -Werror when building -- the old version of gcc used on IA32 can't
deal with C99 formats.


92984 22-Mar-2002 wollman

Typo (if => of).


92983 22-Mar-2002 wollman

Add a word of caution about integer arithmetic range and overflow detection.


92982 22-Mar-2002 wollman

Fix a few formatting brainos and make the formatting of the EXAMPLES
section somewhat clearer.


92979 22-Mar-2002 wollman

Make expr POSIX-compliant, and fix some bugs. Specifically:

- expr must conform to the Utility Syntax Guidelines, so use
getopt() to eat the (non-existent) options.

- Use the Standard type intmax_t for arithmetic.

- If an argument cannot be *completely* converted to an integer, then
it is a string.

Additionally make some style cleanups near the modified lines. This
utility is still not completely style-compliant.


90109 02-Feb-2002 imp

o __P has been reoved
o Old-style K&R declarations have been converted to new C89 style
o register has been removed
o prototype for main() has been removed (gcc3 makes it an error)
o int main(int argc, char *argv[]) is the preferred main definition.
o Attempt to not break style(9) conformance for declarations more than
they already are.
o gc some #ifdef sun ... #endif code

Approved by: arch@, new style(9)


87323 04-Dec-2001 obrien

Default to WARNS=2. Binary builds that cannot handle this must explicitly
set WARNS=0.

Reviewed by: mike


79754 15-Jul-2001 dd

Remove whitespace at EOL.


77244 26-May-2001 kris

Fix warnings to compile with WARNS=2 on i386 and alpha

Reviewed by: bde


70056 15-Dec-2000 ru

Prepare for mdoc(7)NG.


68935 20-Nov-2000 ru

mdoc(7) police: use the new features of the Nm macro.


63755 22-Jul-2000 se

Add overflow tests


62926 10-Jul-2000 se

Extend numeric operations to support 64 bit numbers.


50471 27-Aug-1999 peter

$Id$ -> $FreeBSD$


41915 18-Dec-1998 jkoshy

Add cross-references to test(1) and expr(1) respectively.

PR: docs/9111
Submitted by: Josh Gilliam <josh@quick.net>


36011 13-May-1998 charnier

Correct use of .Nm.


35702 04-May-1998 bde

Simplified using new yacc rules and by not generating y.tab.h.


22988 22-Feb-1997 peter

Revert $FreeBSD$ to $Id$


21673 14-Jan-1997 jkh

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


16069 02-Jun-1996 phk

Backout yacc changes


16012 30-May-1996 phk

Use default yacc rule.


15679 07-May-1996 wosch

``mv'' -> ``mv -f''
``rm'' -> ``rm -f''
so mv/rm may not ask for confirmation if you are not root


13719 29-Jan-1996 mpp

Fix some spelling errors.


12378 18-Nov-1995 joerg

Fix my own brokeness for the colon operator, when one of the arguments
was a valid integer. The actual decision between integer and string
is now context-dependant on the operator being used.


9909 04-Aug-1995 joerg

expr(1) didn't comply to Posix.2 and its own man page: any
comparisions have been made as string comparisions, even in cases
where both operands clearly qualified as integers.

The fix is to make the parser properly analyzing whether an operand is
a valid integer or not.


8855 30-May-1995 rgrimes

Remove trailing whitespace.

Reviewed by: phk


7165 19-Mar-1995 joerg

You will find enclosed some changes to make gcc -Wall more happy in
/usr/src/bin. Note that some patches are still needed in that directory.

I (Joerg) finished most of Philippe's cleanup. /bin/sh will still
need *allot* of work, however.

Submitted by: charnier@lirmm.fr (Philippe Charnier)


3044 24-Sep-1994 dg

Added $Id$


2502 05-Sep-1994 bde

Explicitly include <sys/types.h> before including <regex.h>. This is
apparently required by POSIX. It will be required in practice when
the bogus inclusion of <sys/types.h> is removed from <stdio.h>.


1411 24-Apr-1994 jkh

Fix gross spelling and typographical errors pointed out by Keith Bostic.


1078 03-Feb-1994 rich

Take -lgnuregex back out. Linking with it causes 'make install' to fail.


540 04-Oct-1993 jtc

Document the new, less restrictive, behavior of the matching operator.


539 04-Oct-1993 jtc

Allow expressions like "expr 'ABC' : '^.*$' to work as is done in other
expr implementations.


468 14-Sep-1993 jtc

Fix grammar to eliminate support for unary minus expressions -- they
weren't supported, they aren't standard, and they caused expr to dump
core.


295 17-Aug-1993 jtc

1003.2 requires that lexical comparisons be done in locale specific manner,
so we have to use strcoll() instead of strcmp().
1003.2 requires that a null string be returned if a string does not match
a \( \) subexpression.
Replaced fprintf/exit with calls to err and errx as appropriate.


230 02-Aug-1993 conklin

Remove GNU regex.[ch] and use system's regex library. The library is still
GNU regex for now, but will be replaced as soon as an alternative is made
availiable.


182 21-Jul-1993 conklin

install new manual page


181 21-Jul-1993 conklin

Update to my latest expr (fixes bugs with comparison and matching operators)
Add man page I wrote.


31 19-Jun-1993 alm

added POSIX regex to expr


5 12-Jun-1993 rgrimes

This commit was generated by cvs2svn to compensate for changes in r4,
which included commits to RCS files with non-trunk default branches.