| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Solaris lacks paths.h and the various _PATH_* #defines.
Check for them in configure.ac and fall back on the
usual suspects when they are missing.
- Older Solaris lacks isblank(), and versions that have it
use a macro. Check for the declaration in configure.ac
and fall back on a naive version when missing.
- Older Solaris does not support %jd (intmax_t) in format
strings, but it does support the PRIdMAX macro from inttypes.h.
Do a configure check for PRIdMAX and use it in the code.
If it doesn't exist, define it to "lld" when sizeof(long long)
equals sizeof(intmax_t) as this is more likely to work on
older systems. Otherwise, use "jd" and hope for the best.
- Older Solaris lacks stdint.h, but inttypes.h provides the
same types and works on all platforms I've tried dash on,
so just use it instead.
- Older Solaris doesn't like it when vsnprintf() is passed
a NULL buffer (in violation of the POSIX spec, of course).
Pass a 1-byte dummy buffer instead.
- Solaris lacks tempfile and mktemp programs. Fall back on a
"good-enough" custom function in mkbuiltins.
Signed-off-by: Brian Koropoff <bkoropoff@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new read(1) implementation incorrectly assumes that ifsbreakup
ignores characters escaped by CTLESC. As such it fails to handle
backslashes except for escaping newlines.
This patch makes it use recordregion for every part that isn't
escaped by a backslash.
Reported-by: Jilles Tjoelker <jilles@stack.nl>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
|
|
|
|
|
| |
This patch adds the badnum function and uses it to mostly replace the use
of illnum except in miscbltin where the current code turns out to be smaller
because of the twin sh_error calls.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* NULL as a number argument:
olecom@deen:/mnt/debian/src/dash-0.5.3$ time src/dash tst-01.sh
test: 20: `': bad number
`' eq 0: 2 must be >1, Not A Number
test: 20: `': bad number
`' ne 0: 2 must be >1, Not A Number
test: 20: `': bad number
`' gt 0: 2 must be >1, Not A Number
test: 20: `': bad number
`' ge 0: 2 must be >1, Not A Number
test: 20: `': bad number
`' lt 0: 2 must be >1, Not A Number
test: 20: `': bad number
`' le 0: 2 must be >1, Not A Number
/usr/bin/test: invalid integer `'
`' eq 0: 2 must be >1, Not A Number
/usr/bin/test: invalid integer `'
`' ne 0: 2 must be >1, Not A Number
/usr/bin/test: invalid integer `'
`' gt 0: 2 must be >1, Not A Number
/usr/bin/test: invalid integer `'
`' ge 0: 2 must be >1, Not A Number
/usr/bin/test: invalid integer `'
`' lt 0: 2 must be >1, Not A Number
/usr/bin/test: invalid integer `'
`' le 0: 2 must be >1, Not A Number
#!/usr/bin/printf This not executable script%c\n
test_arithm() {
for aop in eq ne gt ge lt le
do "$1" 0 -$aop "$NOTHING"
echo "\`' $aop 0:" $? " must be >1, Not A Number"
done
}
# opengroup.org/onlinepubs/000095399/utilites/test.html (nothing about long):
test_arithm test
test_arithm /usr/bin/test
# shend
|
|
|
|
|
| |
This patch adds assignment operator support in arithmetic expansions. It
also changes the type used to intmax_t.
|
|
|
|
|
| |
This patch adds the function atomax10 and uses it in test(1) so that we
support intmax_t comparisons.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Because the parser does not recursively parse parameter expansion with respect
to quotes, we can't accurately determine quote status at parse time. This
patch works around this by moving the quote detection to run-time where we
do interpret it recursively.
Test case:
foo=\\
echo "<${foo#[\\]}>"
Old result:
<\>
New result:
<>
|
|
|
|
|
|
|
|
|
|
|
| |
This change updates the BSD licence to the three-clause version since
NetBSD has already done so. This makes dash GPL-compatible.
It also adds Christos Zoulas (NetBSD ash maintainer) to the COPYING file.
I've added "copyright by Herbert Xu" to most files.
Finally all CVS IDs and inclusion of sys/cdefs.h have been removed.
The latter is needed for support of klibc.
|
| |
|
|
|