History log of /freebsd-current/bin/sh/arith_yylex.c
Revision Date Author Comments
# 1d386b48 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# aac5464b 10-Feb-2019 Jilles Tjoelker <jilles@FreeBSD.org>

sh: Restore $((x)) error checking after fix for $((-9223372036854775808))

SVN r342880 was designed to fix $((-9223372036854775808)) and things like
$((0x8000000000000000)) but also broke error detection for values of
variables without dollar sign ($((x))).

For compatibility, overflow in plain literals continues to be ignored and
the value is clamped to the boundary (except 9223372036854775808 which is
changed to -9223372036854775808).

Reviewed by: se (although he would like error checking to be removed)
MFC after: 2 weeks
X-MFC-with: r342880
Differential Revision: https://reviews.freebsd.org/D18926


# 22ea47ec 01-Mar-2015 Jilles Tjoelker <jilles@FreeBSD.org>

sh: Fix compiler warnings related to duplicate or missing declarations.


# 7e6e930d 24-Aug-2013 Jilles Tjoelker <jilles@FreeBSD.org>

sh: Reject ++ and -- in arithmetic.

POSIX does not require ++ and -- in arithmetic. It is probably more useful
to reject them than to treat ++x and --x as x silently.

Note that the behaviour of increment and decrement can be obtained via
(x+=1), ((x+=1)-1), (x-=1) and ((x-=1)+1).

PR: bin/176444


# 2fae4c3d 25-Jan-2012 Philippe Charnier <charnier@FreeBSD.org>

Add prototypes, ANSIfy functions definitions to reduce WARNS=6 output.


# 5db2bbd6 07-Mar-2011 Stefan Farfeleder <stefanf@FreeBSD.org>

Remove unnecessary cast.

Reviewed by: jilles


# 976018d2 05-Mar-2011 Jilles Tjoelker <jilles@FreeBSD.org>

sh: Fix some warnings in code for arithmetic expressions.

Submitted by: eadler


# 6262b84e 08-Feb-2011 Jilles Tjoelker <jilles@FreeBSD.org>

sh: Import arithmetic expression code from dash.

New features:
* proper lazy evaluation of || and &&
* ?: ternary operator
* executable is considerably smaller (8K on i386) because lex and yacc are
no longer used

Differences from dash:
* arith_t instead of intmax_t
* imaxdiv() not used
* unset or null variables default to 0
* let/exp builtin (undocumented, will probably be removed later)

Obtained from: dash