itojun
31952d578f
make sure we do not truncate arith expresssion > 10 digits.
...
freebsd bin/sh/expand.c revision 1.15. NetBSD PR 13943.
2001-09-19 06:38:19 +00:00
mycroft
59771e308b
Globbing should match broken symlinks. stat()->lstat() to fix this.
2001-03-30 17:45:00 +00:00
christos
3380980447
remove redundant declarations and nexted externs.
2001-02-04 19:52:06 +00:00
soren
1594850f00
Fix doubled 'the' in comment.
2000-03-13 22:46:59 +00:00
christos
3d42469030
compile with WARNS = 2
1999-07-09 03:05:49 +00:00
he
e97b0193be
Fix for bin/7502, from Tor Egge / FreeBSD. Their commit message:
...
> During variable expansion, the internal representation of the expression
> might be relocated. Handle this case.
1999-04-30 17:54:17 +00:00
he
4e69294c60
Correct a rather obvious typo (once Tor Egge pointed it out to me)
...
in the last change.
1999-04-06 21:05:27 +00:00
christos
28607542af
PR/7231: Havard Eidnes: Shell quoting/trimming problem
1999-03-26 15:49:34 +00:00
christos
96a46ed7b1
Fix off-by-one error in the starting point to search for an arithmetic
...
expression.
1999-02-06 17:23:09 +00:00
christos
b4c9a78425
PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
...
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.
1999-02-05 07:52:51 +00:00
mycroft
1fbf0781c6
Patches from Tor Egge (via Havard Eidnes) to fix various bugs in field
...
splitting and combining.
(Note: Some of this are not strictly bugs, but differences between traditional
Bourne shell and POSIX.)
1999-01-25 14:20:56 +00:00
mycroft
ee9e50eacb
Be more retentive about use of NOTREACHED and noreturn.
1998-07-28 11:41:40 +00:00
mycroft
5dd823ab5d
const poisoning.
1998-07-26 19:44:12 +00:00
mrg
a26bae1e08
- change "extern" variables into int's
...
- remove extern'd variables not actually referenced
- don't use char as an array index
1998-03-29 04:41:43 +00:00
christos
04784d87fa
Fix the VSTRIMRIGHT* bugs... The problem was not the string length computation,
...
but lack of '\0' termination. Factor this segment out as common code too, while
I am there.
1998-03-23 18:21:02 +00:00
christos
19e7771baa
off by one error in ${%%}
1998-03-10 19:11:07 +00:00
christos
ce0d4f06a6
Previous fix broke $var quoting. Try again differently :-)
1998-02-17 00:16:16 +00:00
christos
f7c8df6d68
Fix bug introduced by EXP_RECORD, where in case there was a variable expansion
...
involved in the `for' list, the list was recorded twice, leading to incorrect
argument expansion.
Introduce ifsfree() function that free's the IFS region list, GC'ing duplicated
code.
1998-02-05 08:32:00 +00:00
christos
5a36c00160
PR/4851: Benjamin Lorenz: In the "for <var> in <args>" construct <args>
...
was not marked as a region to be handled by ifsbreakup. Add EXP_RECORD
to indicate that the argument string needs to be recorded.
1998-01-31 12:45:06 +00:00
christos
505573954e
Unfortunately (as I expected) the previous change broke:
...
sleep
cmd='set `type "sleep"`; eval echo \$$#'
which=`eval $cmd`
echo $which
because the region did not get recorded at all, and it was interpreted as
a single word. I modified the code to keep track when the result of a
backquote expansion has been recorded to avoid recording it twice. I still
feel that this is not the right fix... More to come.
1997-12-01 14:43:20 +00:00
christos
b7e4df7784
PR/4547: Joern Clausen: Incorrect argument expansion in backquote variable
...
assignment. E.g.
echo ${foo:=`echo 1 2 3 4`}
prints:
1 2 3 1 2 3 4
because when the arquments are not quoted, the backquote result
gets recorded twice. The fix right now is to comment out the
record_region() call in expbackq(). I hope that it does not break
anything else.
1997-11-30 20:57:33 +00:00
phil
64eb899e5a
Make code agree with man page in processing expansion of "$*".
...
Fix from PR 2647.
1997-07-07 20:41:10 +00:00
christos
cd799663e4
Fix compiler warnings.
1997-07-04 21:01:48 +00:00
christos
a0fa692d3b
PR/3352: From Hiroyuki Ito: ${#1} was not being expanded properly if there
...
was a need to allocated another stack block.
1997-03-18 18:54:40 +00:00
christos
4a521d359f
varisset fixes:
...
- treat $0 specially since it is not in shellparams
- check the number of parameters instead of walking
the parameters array to avoid checking against the
null terminated element.
1997-03-03 19:26:18 +00:00
christos
edc5dadbab
PR/3269: Off by one in varisset(), caused variable substitution not to
...
count the last positional parameter as set.
1997-03-01 19:33:29 +00:00
christos
633ceb6db5
- varisset(): In positional arguments, take into account VSNUL so that:
...
set -- ""; echo ${1:-wwww} works.
- when expanding arithmetic, discard previous ifs recorded regions, since we
are doing our own scanning. x=ab; echo $((${#x}+1)) now works.
- in ${var#word} fix two bugs:
* if there was an exact match, there was an off-by-one bug in the
comparison of the words. x=abcd; echo ${x#abcd}
* if there was no match, the stack region was not adjusted and the rest
of the word was getting written in the wrong place. x=123; echo ${x#abc}X
1997-01-24 17:26:28 +00:00
tls
48250187e6
kill 'register'
1997-01-11 02:04:27 +00:00
christos
a4ad4c0efc
A correction to the previous patch from Todd Miller.
1996-11-02 18:07:08 +00:00
christos
27e15e5bbc
echo ${1:-empty} did not do the substitution; from Todd Miller (OpenBSD)
1996-11-02 17:47:41 +00:00
christos
4b99c4d748
PR/2808: Fix parsing of $n where n > 9 (from FreeBSD)
1996-10-16 14:38:58 +00:00
christos
29cad877cd
Don't infinite loop with:
...
unset var
echo ${var:=}
1996-09-02 21:25:52 +00:00
christos
d3aec2060d
Fix PR/2070: Ksh style variable modifiers were broken in /bin/sh, from
...
enami tsugutomo
1996-02-12 15:11:41 +00:00
christos
fbac2e9de2
Fixed new bug the previous fix introduced:
...
false
foo=bar
echo $?
would print 1
Also fixed the long standing bug:
false
echo `echo $?`
would print 0
The exitstatus needs rethinking and rewriting. The trial and error method
is not very efficient
1995-05-15 02:47:38 +00:00
christos
07bae7eddd
Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
...
bug.
1995-05-11 21:28:33 +00:00
cgd
49f0ad8601
convert to new RCS id conventions.
1995-03-21 09:01:59 +00:00
christos
5c42185b5c
Oops... typo in the IFS previous fix.
1995-02-28 23:27:24 +00:00
christos
6ab1954578
Changed so that backquote expansion eats all trailing newlines, not just
...
the last one.
Reported by guido@gvr.win.tue.nl (Guido van Rooij).
Repeat By:
echo "`cat file-with-many-newlines`"
1995-02-28 23:09:43 +00:00
christos
3936aab031
Changed IFS string-splitting so that it breaks spaces even when IFS does not
...
begin with a space, but contains one. Fixes PR bin/809.
#!/bin/sh
list="a b c "
echo "With ordinary IFS"
for i in $list;do
echo $i
done
IFS=":${IFS}"
echo "With changed IFS"
for i in $list;do
echo $i
done
Note that before the fix ":${IFS}" behaved differently than "${IFS}:".
1995-02-28 22:46:12 +00:00
christos
ad8d5369f5
I added the documented in the manual but not implemented variable expansions:
...
${#WORD}
${WORD%PAT}
${WORD%%PAT}
${WORD#PAT}
${WORD##PAT}
1995-01-23 06:33:03 +00:00
cgd
5dad143982
from James Jegers <jimj@miller.cs.uwm.edu>: quiet -Wall, and squelch
...
some of the worst style errors.
1994-12-04 07:11:37 +00:00
mycroft
d22a514772
Fix problem with character classes matching a terminating NUL, from Henry
...
Spencer.
1994-08-29 01:54:39 +00:00
mycroft
cafd1f7e9f
Add RCS ids.
1994-06-11 16:11:35 +00:00
jtc
a81e412494
Include appropriate header files to bring function prototypes into scope.
1994-05-12 17:03:32 +00:00
jtc
37ed7877b2
sync with 4.4lite
1994-05-11 17:09:42 +00:00
mycroft
c823b55cfa
Last patch was wrong; just save argbackq around the argstr() call.
1993-10-22 13:32:22 +00:00
mycroft
718ac53f6f
evalvar(): If subtype is VSASSIGN (or VSQUESTION), argstr() already rolled
...
forward the backquote queue. If VSQUESTION it doesn't matter because we
already exited with an error.
1993-10-22 13:20:02 +00:00
mycroft
8542364e07
Add RCS identifiers.
1993-08-01 18:49:50 +00:00
sef
5916a08554
Jim "wilson@moria.cygnus.com" Wilson's patches to make C News (and other
...
things) work.
1993-05-02 01:28:40 +00:00
cgd
06be60083d
changed "Id" to "Header" for rcsids
1993-03-23 00:22:59 +00:00