christos
3ebdac1759
Portability fixes for a non flex based lexical analyzer.
1998-05-18 22:50:20 +00:00
christos
c6e03280d4
Need stdlib.h
1998-05-18 22:48:53 +00:00
christos
d2ded939ef
PR/5315: Dan Winship: options parsing code should print errors to stderr.
1998-05-02 18:04:09 +00:00
cgd
2072394059
move OBJS depenency on built headers to after include of bsd.prog.mk, so
...
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).
1998-04-19 05:22:08 +00:00
lukem
d6c354cb4b
* remove CFLAGS+=-w for powerpc (added in 1.26):
...
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF
1998-04-13 12:06:48 +00:00
tv
482063559a
.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
...
and use smarter creation of the header file.
1998-04-09 00:32:31 +00:00
fair
667e4d4cd1
fix default PATH to be <paths.h> _PATH_DEFPATH
1998-04-07 21:15:33 +00:00
fair
618cca243b
Change a few things to reference /usr/include/paths.h instead of local
...
references. Fixing the default PATH is a bit more effort.
1998-04-07 10:16:04 +00:00
veego
7f307512f9
Another try to make this work again. Lets hope that the we don't need a 4th
...
fix for it.
1998-03-30 12:06:48 +00:00
mrg
6e35073fed
make this work again when . is not in $PATH
1998-03-30 10:07:16 +00:00
christos
0328c41456
Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
...
directories work.
1998-03-29 09:27:40 +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
7cfc52b208
PR/5001: Tom Yu: cd ./ does not work.
1998-02-17 02:57:16 +00:00
christos
ce0d4f06a6
Previous fix broke $var quoting. Try again differently :-)
1998-02-17 00:16:16 +00:00
christos
d8a1d3710c
Re-enabled EXP_RECORD
1998-02-05 08:34:49 +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
thorpej
b65b5cae9e
Sigh, have to cast pointer diffs to long.
1998-02-04 23:49:25 +00:00
thorpej
a40a144d00
Fix printf formats so they work on the Alpha.
1998-02-04 20:10:16 +00:00
mikel
a235399817
back out last change until christos fixes EXP_RECORD; PR 4932
1998-02-04 06:25:55 +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
2b259b0600
- Add gcc attributes to printf like functions
...
- Fix format strings to be const
- Fix buffer length to be size_t
- Add %p format
- Avoid code duplication in varargs/stdarg cases
1998-01-31 12:37:55 +00:00
christos
7faabd5800
Include our local includes after the system's ones.
1998-01-31 12:36:16 +00:00
christos
71868e12e2
Fix printf format.
1998-01-31 12:34:12 +00:00
christos
e3f5fb922f
BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
...
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.
1998-01-21 10:47:37 +00:00
pk
5d9692a740
Define BSD4_4: quad_t's in struct rlimit;
1998-01-20 22:43:34 +00:00
christos
38c84eeda3
test for the boundary condition in the previous trailing blank fix
1998-01-16 16:26:22 +00:00
christos
2708e4180f
PR/4805: Ty Sarna: read builtin does not remove trailing blanks.
1998-01-15 19:39:11 +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
81aad04920
Remove local declaration of getenv();
1997-12-01 14:40:16 +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
cjs
af5956aa6b
Make this compile with -DSMALL and warnings on.
1997-11-12 03:40:55 +00:00
kleink
3780e6aa5d
Per 1003.2, the (builtin) read utility shall treat the backslash as an
...
escape character (including line continuation), unless the `-r' option
is specified:
* adopt to this behaviour, add the `-r' option to disable it;
* remove the `-e' option, which was previously necessary to get this behaviour.
1997-11-05 14:05:28 +00:00
christos
82ec25620f
pid should be pid_t and status should be int! Avoid alignment problems...
1997-10-15 13:23:10 +00:00
christos
946049095f
PR/4257: Jaromir Dolecek: Update for libedit interface change.
1997-10-14 15:06:42 +00:00
christos
e230a48b57
CFLAGS->CPPFLAGS
1997-10-10 19:47:50 +00:00
christos
7f2a271743
PR/3662: David Holland: Make /bin/sh use the symbolic macros for wait().
1997-10-08 20:31:52 +00:00
lukem
92d7aa0376
getopt returns -1 not EOF
1997-09-14 07:43:56 +00:00
thorpej
23eb2db171
Avoid a segv in bltinlookup() reported by Ronald Khoo <ronald@demon.net>
...
in PR #3929 , fix submitted by hiroy@NETCOM.COM (Hiroyuki Ito).
1997-08-26 20:09:59 +00:00
christos
23edbe3557
Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
...
now that all /bin has been cleaned.
1997-07-20 22:36:20 +00:00
christos
c996803cad
PR/3888: Chris Demetriou: type command-with-slash prints
...
$PATH[0]/command-with-slash...
1997-07-20 21:27:35 +00:00
thorpej
d891aff808
Cast the result of pointer arithmetic to "long", and use %ld to print it.
1997-07-18 17:46:59 +00:00
christos
18ad58a639
PR/3866: bayer@informatik.uni-leipzig.de: core dump using xon script.
...
cmdenviron is pointing to varlist.list; varlist gets reset everytime
you enter evalcommand, but cmdenviron does not. The wonders of global
variables...
1997-07-15 17:49:15 +00:00
christos
1eb178df64
Fix Sparcworks warnings.
1997-07-15 17:45:53 +00:00
christos
bb5e01d099
Don't re-define setjmp/longjmp in the svr4 case
1997-07-15 17:44:32 +00:00
phil
1d304ac34c
Add a missing ) in the description of the builtin "set".
1997-07-10 23:07:04 +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
5accccd051
Fix problem introduced in yesterday's commit that broke both signed and
...
unsigned character machines. So that people don't have to reverse engineer
this again:
mksyntax detects if characters are signed or not and builts a syntax
table that has a base of 129 for signed characters or 1 for unsigned
characters. This is so the largest negative signed char [-128] + the
base == 1. 0 is special and means end of file in both cases. PEOF
is -1 for the unsigned character case and -129 for the signed
character case, so that syntax[PEOF + base] == syntax[0] == CEOF
So PEOF has to be -1, but it is explicitly compared with
unsigned characters on machines where characters are unsigned.
The quick fix is to define UPEOF the (unsigned char) version of PEOF
and use that. A better fix is to always use unsigned characters
when referencing symbol table entries, but that would require
extensive changes to the shell. So to summarize
syntax[0] == CEOF, base + PEOF == 0
unsigned signed
base 1 129
PEOF -1 -129
1997-07-05 21:25:09 +00:00
christos
687f7852d9
Make the syntax tables work on machines where characters are unsigned.
1997-07-04 21:40:55 +00:00
christos
cd799663e4
Fix compiler warnings.
1997-07-04 21:01:48 +00:00
christos
28f5c57bd5
Don't roll own rules to build helper programs.
...
Add WARNS
1997-07-04 21:00:36 +00:00
christos
cbf48b75c7
PR/3827: Wolfgang Rupprecht: cd ./. core dumps
...
Warning cleanups
1997-07-04 20:59:40 +00:00
lukem
a1267d0c71
add auto-generated token.h to dependancy for ${OBJS}.
...
not everyone runs "make depend" ...
1997-06-16 02:42:38 +00:00
cjs
cddf57d923
Add documentation for ulimit command, courtsey of
...
Eric Fischer <eric@fudge.uchicago.edu>.
1997-05-23 19:40:30 +00:00
veego
3e90f9b423
Add mkinit.o mknodes.o mksyntax.o to CLEANFILES
1997-05-15 10:03:24 +00:00
mycroft
cc4a1553a1
Eliminate bogus redefinitions of standard targets.
1997-05-09 07:50:03 +00:00
gwr
10e180cc49
Back out the .PATH.c changes. The .depend problem (and others)
...
will be fixed using the new .NOPATH make feature instead.
1997-05-08 21:11:01 +00:00
gwr
012e528f2e
Use .PATH.c: ...
1997-05-06 20:44:56 +00:00
christos
fb758fd82b
PR/3452: Jerry Peek: Redirections of unopened fd to file failed.
...
for arg in a b c
do
echo hi this is $arg 1>&3
done 3> foo
1997-04-21 12:38:25 +00:00
thorpej
062f26f33b
- XXX Inhibit warnings on PowerPC for now - there are lots of
...
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.
1997-04-17 08:13:26 +00:00
christos
3a468199cb
#if __STDC__ -> #ifdef __STDC__
1997-04-11 23:08:40 +00:00
christos
360e930d42
Make this work on systems that don't have quads
1997-04-11 23:08:15 +00:00
christos
2c8f740e5c
__svr4__ -> __SVR4
1997-04-11 23:07:47 +00:00
christos
7ea7f895f5
Use #ifdef __STDC__ instead of #if __STDC__
1997-04-11 23:06:51 +00:00
christos
92cdde85e8
Fix so that this compiles on systems without quads and remove the double
...
inclusion of varargs/stdarg
1997-04-11 23:05:43 +00:00
christos
70bb105c67
Pointer arithmetic on void * is illegal but gcc does not care.
1997-04-11 23:03:08 +00:00
christos
23745b89db
Don't call getpwd() because if that fails the shell cannot start. (from scott)
1997-04-11 23:01:44 +00:00
christos
f726a3c453
Rename pread to preadfd
1997-04-11 23:00:40 +00:00
christos
3bddaec49b
add forward declaration of union node;
1997-04-11 22:58:40 +00:00
christos
7efa5addb4
Track $TERM and call the appropriate editline(3) routine to update the
...
terminal type.
1997-04-11 22:45:38 +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
7accaec421
NO_HISTORY->SMALL
1997-03-14 01:42:18 +00:00
christos
6042831b7e
Fix problems with -DNO_HISTORY
1997-03-13 21:57:32 +00:00
mycroft
3a59e5e8e3
Set input files to close-on-exec mode.
1997-03-13 20:07:49 +00:00
mouse
412433b44c
alternate -> alternative, per PR 2643
1997-03-08 13:26:20 +00:00
christos
6b7623a681
Fix PR/3289: upon initialization check if $PWD contains the right directory
...
and use it. We also maintain $PWD now, like the rest of the
shells.
1997-03-07 21:36:19 +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
a5aaf55cf3
Fix PR/3258 sh -c 'echo $0' causes segmentation fault.
1997-02-25 17:51:50 +00:00
christos
680690d33c
add type builtin.
1997-02-06 23:24:52 +00:00
christos
6f224ae59f
Fix parsing problem introduced in the previous ${10} fix, where $#digit
...
or $digit# would get mis-parsed as a positional parameter.
1997-01-26 18:05:34 +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
christos
3d5f212ba8
enable parsing of multi-digit positional arguments i.e. ${10} works and it
...
is not a bad substitution.
1997-01-24 17:15:56 +00:00
tls
48250187e6
kill 'register'
1997-01-11 02:04:27 +00:00
cjs
5678a13f1b
Re-introduce some code from 1.14 (with modifications) to make the
...
shell's idea of the current working directory match reality when
symlinks (or anything else we can't stat) are traversed with the
cd command. However, this does not print out the cwd after cd
traverses symlinks, as it used to, though the capability is still
there should one want to use it.
1996-12-22 08:34:34 +00:00
christos
a00e49c200
Getopts bugs again (I'll never get this right).
...
- make sure that OPTIND is set correctly even in the absence of options.
- don't keep stale state between getopts calls.
1996-12-15 20:37:09 +00:00
christos
340077b543
- fix parsing bug reported by mycroft: ! was only recognized in the beginning
...
of pipelines. Now we are recognizing it everywhere like ksh, so:
! if [ a = b ]; then ! echo c && ! true; else ! echo d; fi
works.
1996-11-25 20:22:00 +00:00
christos
9530a32719
Fix bug in getopts code where the argument list got truncated.
...
From Todd Miller.
1996-11-24 20:48:01 +00:00
christos
07aeb5b266
remove a debugging printf that was left from the last POSIX error code fixes.
1996-11-09 01:04:07 +00:00
christos
ccce082dd2
Fix miscellaneous getopts problems:
...
- the 3 argument version of getopts would not reset properly
- OPTARG did not get cleared after a non argument option was found
- OPTIND was not set properly after a non argument option.
1996-11-06 01:17:10 +00:00
christos
846dce0ee3
Fix problems that gcc -Wall found (from Todd Miller, OpenBSD)
1996-11-02 18:26:03 +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
cgd
8ba64baaaf
add builtins.h to the list of (built) headers depended on by ${OBJS}, so
...
make from 'cleandir' works.
1996-10-22 13:22:19 +00:00
abrown
e613224229
Remove leftover printf("here") from last change.
1996-10-19 02:38:36 +00:00
christos
bc73cf950a
PR/2808: Remove trailing whitespace (from FreeBSD)
1996-10-16 15:45:03 +00:00
christos
afb80e9b13
PR/2808: Add a definition for warnx() (from FreeBSD; currently unused)
1996-10-16 15:28:10 +00:00
christos
2b0a187f34
PR/2808: Use .Nm macro properly. (from FreeBSD)
1996-10-16 15:27:03 +00:00
christos
1a523dd56b
PR/2808: - Don't use p++ in macros.
...
- Hash using unsigned numbers.
(from FreeBSD)
1996-10-16 15:24:31 +00:00
christos
68b1dcea6d
PR/2808: Don't define DEBUG and #ifdef out functions not needed when DEBUG
...
is not defined (from FreeBSD).
1996-10-16 15:21:49 +00:00
christos
3b66e0cada
PR/2808: Add HISTORY section and documentation of getopts. (from FreeBSD)
1996-10-16 15:20:01 +00:00
christos
da8c1311a3
PR/2808: fix redirection to the same file descriptor
...
better error messages for failed pipes
(from FreeBSD)
1996-10-16 15:16:04 +00:00
christos
d8c242f0ae
PR/2808: - detect eof inside backquotes
...
- handle && and || shortcircuits properly
- tokens.def -> tokens.h
(from FreeBSD)
1996-10-16 14:53:23 +00:00
christos
10a76271de
No need to have 2 declarations for the same constant string, one for K&R and
...
one for STDC...
1996-10-16 14:51:24 +00:00
christos
fd8c99438e
PR/2808: POSIX 1003.2: first arg after -c cmd is $0, remainder $1...
...
(from FreeBSD)
1996-10-16 14:49:56 +00:00
christos
14185e5152
PR/2808: Kill use of error2() (from FreeBSD)
1996-10-16 14:49:03 +00:00
christos
71ab1d0aed
PR/2808: tokens.def -> tokens.h
1996-10-16 14:47:49 +00:00
christos
03ba3cf0d6
PR/2808: Use the <ctype.h> functions instead of our homegrown tables to
...
determine if a character is alpha or alphanumeric, so that NLS
works... now if only our NLS really worked... (from FreeBSD).
1996-10-16 14:46:35 +00:00
christos
f6c00506fc
PR/2808: Remove extraneous newline from error message (from FreeBSD)
1996-10-16 14:44:28 +00:00
christos
00a9e38ee8
PR/2808: #undef things that we #define to avoid duplicate definitions.
...
(from FreeBSD)
1996-10-16 14:43:37 +00:00
christos
a20d79429a
PR/2808: Don't include <sgtty.h> unless OLD_TTY_DRIVER is defined.
...
Remove extraneous newline from error messages.
1996-10-16 14:42:20 +00:00
christos
435812e77d
PR/2808: Remove extraneous newlines from error routines (from FreeBSD)
1996-10-16 14:40:32 +00:00
christos
4b99c4d748
PR/2808: Fix parsing of $n where n > 9 (from FreeBSD)
1996-10-16 14:38:58 +00:00
christos
2a9c11dd53
PR/287: Shell does not exit with 126/127 when permission denied/
...
command not found. Add extra exception type and generalize
error handling routines to take that exception type. Use
a global variable exerrno to keep the last exec error.
1996-10-16 14:35:42 +00:00
christos
886c875a97
PR/287: Exit with 127/126 when command is not found/permission denied.
...
PR/2808: don't bomb out on "set -e; false && true"
1996-10-16 14:31:57 +00:00
christos
dd6abbc5c3
PR/2808: Handle cd "". This is for systems where "" != "."
1996-10-16 14:29:42 +00:00
christos
aded8d4c14
PR/2808: tokens.def -> tokens.h
1996-10-16 14:24:56 +00:00
christos
3ec8ea2b0e
PR/2808: Depend and clean fixes from FreeBSD
1996-10-16 14:23:51 +00:00
thorpej
47f181309b
If getcwd() fails, dang it, I want to know _why_.
1996-09-18 22:47:48 +00:00
mycroft
c65b90450d
ioctl(TIOC[GS]PGRP) -> tc[gs]etpgrp()
1996-09-17 14:44:05 +00:00
christos
4d9c694460
Apply PR#2721 from VaX#n8: make man page more lucid in places.
1996-09-02 21:28:21 +00:00
christos
29cad877cd
Don't infinite loop with:
...
unset var
echo ${var:=}
1996-09-02 21:25:52 +00:00
christos
beb57fb35d
- Add function callback capability when variables are set.
...
- Add setvarsafe that returns an error instead of longjmp() to the
error code.
1996-06-25 16:49:05 +00:00
christos
cc31700a92
- Add getoptsreset to be used as a callback function when OPTIND is set.
...
This is used to implement the POSIX behavior when OPTIND=1
- Call setvarsafe instead of setvar. If one ran
"getopts optstr badvariable"
where badvariable contained an illegal variable name, there was no way
to recover, since setvar() would longjmp on the error.
1996-06-25 16:47:43 +00:00
christos
02b3c16118
change sethistsize() to take the history size as an argument so it can
...
be used directly by the new variable callback functions.
1996-06-25 16:43:33 +00:00
christos
9a738ef22d
const poisoning.
1996-06-25 16:40:38 +00:00
christos
70ad20e9f1
Include header files to get function prototypes; don't use home grown ones.
1996-06-25 16:40:06 +00:00
christos
0bc88b2434
getopts fixes:
...
1. OPTIND value was not computed correctly when the argument was part of the
option string (i.e. for "l:" "-l 1" was working "-l1" was not). (PR/2505).
2. OPTARG was not being unset in case of errors [in the non POSIX error case].
3. optvar could be set to random values.
4. Option string starting with a : was not treated specially as POSIX
specifies (if the option string starts with a :, then there is no
error printed when there are missing option arguments or illegal options,
and OPTARG and optvar are being set specially).
5. Implemented getopts "opts" optvar [arg]. The optional argument case
was not implemented.
To do:
- what does Posix say about resetting the getopts state? Bash does it
by setting OPTIND=0; is that correct? Should we be doing the same thing?
- should we be using getopt(3) for everything internal to the shell? Is that
feasible because we might need to handle multiple invocations at once.
1996-06-04 21:00:09 +00:00
christos
66824391d1
Fix PR/2504: return with no args returns 0 instead of the return value of
...
the previous command in functions
1996-06-03 12:21:17 +00:00
cgd
edc0ef345c
Fix growstackblock() 'newlen' calculations:
...
(1) it needs to be ALIGNed for both halves of the 'if,' and
(2) if you're going to claim that you now have ALIGN(newlen)
bytes left, you should have actually allocated
ALIGN(newlen), rather than just 'newlen' bytes.
1996-05-20 14:49:32 +00:00
christos
55a41e8abb
Close PR/2384 backquoted backslash-newline was not eaten.
1996-05-09 19:40:08 +00:00
pk
0b9acf16f8
Return zero status if `else' clause is empty.
1996-03-06 14:49:29 +00:00
christos
b09ffc42b1
- parser.c: Fix prompting in old style backquote expansion. Fixes PR/2139
...
and many user complaints why the shell hangs in echo "`"
- eval.c: Fix exitstatus invalid resetting in `if' statements were:
if (exit 3); then
echo foo $?
else
echo bar $?
fi
printed 'bar 0' instead of bar 3
1996-03-05 21:03:52 +00:00
jtc
16f5230c39
Changed so that cd builtin doesn't do wierd stuff when cd'ing through
...
symlinks. From Chris Demetriou <cgd@NetBSD.ORG>. Fixes PR #1776 .
Changed so that INTOFF/INTON are paired in getpwd(). From Matthias
Pfaller <leo@marco.de>. Fixes PR #2130 .
1996-03-01 01:58:58 +00:00
mycroft
b5b9e1d0fa
Fix problems with the way init.o is built:
...
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.
1996-02-18 12:29:18 +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
ff008dabf6
Fix PR/1760, where 'cd -' before any other command could cause a reference
...
to an uninitialized pointer. Use getcwd() to get the current working directory,
instead of forking /bin/pwd [per Scott's suggestion]
1995-11-19 23:27:37 +00:00
christos
c22dddc4e0
Parallel make fixes.
1995-10-22 00:15:02 +00:00
christos
893ade3fac
- fix PR1620, -DNO_HISTORY did not work.
...
- restore parsing state after parsing old style command substitution.
The ';' in '`echo z;`' broke the following:
for i in 1; do
cat > /dev/tty << __EOF__
`echo z;`
__EOF__
done
cVS: Enter Log. Lines beginning with `CVS: ' are removed automatically
1995-10-19 04:14:37 +00:00
christos
92380da725
fixed previous booboo that broke command line editing input.
1995-10-06 21:38:18 +00:00
christos
c1b02d9bff
- Fix -v flag, so that it works properly when the shell reads from scripts.
...
- Bad style to fix my own PR, but I'd like to commit the parallel make
changes soon, and this is a necessary prerequisite.
1995-09-26 13:25:19 +00:00
jtc
d4fe82df8d
Handle %q format directive; from Mike Long (PR #1454 ).
1995-09-14 16:19:06 +00:00
christos
f9382bca1a
Fix return builtin to work like it does in ksh:
...
When not in a function, it skips the rest of the current input file.
Instances of `return' outside function definitions were previously ignored.
What does joe posix have to say about this?
[fixes PR/1444]
1995-09-11 17:05:41 +00:00
christos
782cb68126
Fix bin/1240, from Dennis Ferguson. the exit builtin with no arguments
...
should return the exitcode of the previous command but it always returned 0.
1995-07-20 15:04:16 +00:00
pk
edae5ead03
Relocate pointers after re-allocation of the job table.
1995-07-04 16:26:45 +00:00
jtc
88fc62fe16
Changed type of rlimit values from quad_t to rlim_t. Cast rlim_t's to
...
quad_t's and use "%qd" in printf.
Eliminated unneccessary conditional.
1995-06-12 19:44:16 +00:00
mycroft
332b7d5213
Add a DPADD.
1995-06-10 20:19:40 +00:00
christos
a45947b2a4
Changed so that 'PATH=newpath command' works, instead of looking at the
...
old path. Synced input.c with vangogh.
1995-06-09 01:53:44 +00:00
cgd
dcb82cbdbc
needs string.h
1995-06-07 16:28:03 +00:00
christos
9d255ec409
Ignore result of sigaction when setting traps. Traps will succeed even
...
on SIGKILL or SIGSTOP. This is what other bourne shells do. (suggested
by mycroft)
1995-06-07 04:16:57 +00:00
christos
b842cc2784
Avoid trapping SIGKILL. Pretend that we did, so that we will not keep
...
failing trying to trap it later. This is what the other bourne shells do.
1995-06-05 14:24:33 +00:00
christos
58e18fc330
Fixed bug where
...
$ cat foo
echo $FOO
$ FOO=1 . ./foo
$ echo $FOO
Did not echo 1 at all. Now variable assignments before sourced scripts
are honored during and after the execution of the script.
1995-05-28 18:09:48 +00:00
christos
4fb6f609aa
Changed so that syntax errors (EXERROR) set the exit status to 2,
...
and commands that are not found set the exit status to 1 like all
other bourne shells.
[It used to be 0 and 2 respectively]
1995-05-19 15:08:55 +00:00
christos
56a08eccca
Fixed bug where ${#} was interpreted incorrectly as ${#var} and thus
...
misparsed. Keith Bostic reported it.
1995-05-17 00:05:25 +00:00
cgd
b5f33fc18e
re-add an #endif that was (apprently) clobbered.
1995-05-15 03:29:54 +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
2e1970487e
Fixed bug caused by previous x=`false` not preserving the exit status fix.
...
The if statement exit status broke...
1995-05-14 04:19:18 +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
christos
dae6c6b963
Added missing resource limits and recognize "unlimited" as RLIM_INFINITY
1995-04-11 03:17:45 +00:00
christos
df504509f1
1. Don't core dump on 'fc -l' (From Gerard J van der Grinten)
...
2. PATH=xxx ls, does the PATH assignment first and then tries to find ls in xxx
3. VAR=xxx exec ls, does the variable assignment.
1995-03-31 21:58:09 +00:00
christos
6ee2193d9a
Reverted to set - turning off -x and -v. Charles corrected me... It is part
...
of POSIX.
1995-03-26 17:25:10 +00:00
christos
ad1f891148
set -
...
does not anymore clear the -x and -v flags. This was incompatible with
all other bourne shell implementations.
1995-03-25 23:45:24 +00:00
mycroft
6bfd77e432
Fix typo in previous.
1995-03-23 00:01:03 +00:00
mycroft
3e417cced4
Use sigprocmask(), not sigsetmask().
1995-03-21 15:40:16 +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
mycroft
f5ad44b6ac
Use S_IS*().
1995-01-30 19:30:13 +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
mycroft
4d643bf207
Remove `.' from default PATH.
1995-01-20 18:21:16 +00:00
mycroft
c4459d08d9
Clean up deleted files.
1995-01-15 10:15:19 +00:00
mycroft
4bcd14e0b4
Remove the gratuitous `security' warning.
1995-01-15 09:29:16 +00:00
jtc
cc9fe5ba6d
Describe the : shell builtin.
...
Fixes PR #712 .
1995-01-12 23:35:56 +00:00
mycroft
e848bd4fb5
Fix that last bug in a less expensive way.
1994-12-31 23:56:54 +00:00
cgd
809218efc4
take two: make grabstackstr() work correctly, in the face of strange filling.
1994-12-31 01:56:16 +00:00
mycroft
1c21834ccb
Remove previous misguided change.
1994-12-30 06:33:59 +00:00
cgd
58f1733118
be more careful with casts.
1994-12-23 13:24:39 +00:00
cgd
42f0dae5e3
pull prototypes into scope for string functions.
1994-12-23 13:24:10 +00:00
cgd
17ed2a67b2
pull some prototypes into scope.
1994-12-23 13:22:13 +00:00
cgd
e9aebcc9d8
don't play fast and loose with memory block allcation. try to allocate
...
in more-round sizes, but realize that not everybody will fill them up
exactly.
1994-12-23 13:21:01 +00:00
cgd
db1ae625b5
eliminate two wrong-sized variables which were unused.
1994-12-23 13:20:10 +00:00
cgd
73cf954189
adjust; from jimj.
1994-12-06 19:13:02 +00:00
cgd
4ce0d34a31
clean up further. more patches from Jim Jegers
1994-12-05 19:07:32 +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
jtc
6cd3ad1d11
ulimit builtin (PR #388 )
...
This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.
1994-11-04 17:13:27 +00:00
mycroft
06f53b6838
Eliminate uses of some obsolete functions.
1994-09-23 11:28:39 +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
08a6730054
Fix a core dump and another parse error related to null commands.
1994-08-24 05:48:26 +00:00
jtc
8cc67c8556
Don't source the file specified by $ENV if either the real and effective
...
user IDs or the real and effective group IDs of the process are different.
Thanks to Mark Weaver who pointed this out in PR 262.
1994-08-03 16:25:26 +00:00
jtc
7acf86db2f
Don't dump core when evaluating X % 0.
...
Simplify lexer by using %prec feature in yacc grammar.
Implement most of the operators required by POSIX.2.
1994-07-15 23:45:30 +00:00
mycroft
aaed410145
Fix some problems with empty commands.
1994-07-07 20:53:32 +00:00
mycroft
188b97d955
Bandaid quoting.
1994-07-07 16:24:34 +00:00
mycroft
32a94e53c4
Clean up deleted files.
1994-06-24 07:33:21 +00:00
jtc
4aece6a461
Renamed builtins to builtins.def to eliminate make's (incorrect) circular
...
dependancy between the builtins data file and builtins.c.
The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.
Fixes bug #301 .
1994-06-24 07:33:12 +00:00
mycroft
2efb881840
Re-fix an old bug.
1994-06-15 04:13:46 +00:00
jtc
918ce04f57
From Christos:
...
1. Fix `-' quoting in [ ] expressions.
2. Fix expansion of variables in redirections
1994-06-14 05:49:19 +00:00
jtc
212ba62f56
Set the status variable ($?) to 0 after a successful variable assignment.
1994-06-12 02:31:28 +00:00
mycroft
cafd1f7e9f
Add RCS ids.
1994-06-11 16:11:35 +00:00
jtc
7210460c54
Fix from Christos for when NO_HISTORY is defined
1994-06-08 19:26:51 +00:00
pk
cefd9f107c
Exclude `mkinit' from argument list to `mkinit'; this especially causes
...
trouble when compiling with `-g'.
1994-06-02 09:10:58 +00:00
jtc
20ddd6eee4
Fixed another case statement parsing bug that was introduced by my
...
last fix :-(. Thanks to Theo for letting me know about it...
1994-06-01 21:36:54 +00:00
jtc
d8e5937418
Re-worked case statement parsing. With luck, this fixes bug #268 .
1994-05-30 20:05:40 +00:00
cgd
242337bcae
a few more things to omit when NO_HISTORY defined. from noel@cs.oberlin.edu
1994-05-21 01:42:30 +00:00
jtc
1af99404cd
Fix backslash parsing within backquoted string
1994-05-17 10:47:50 +00:00
cgd
e3c63ad9f3
add back in support for building w/o obj dir. also, add NO_HISTORY
...
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).
1994-05-14 22:20:04 +00:00
jtc
99e02e0ff9
Added DPADD.
1994-05-12 23:55:56 +00:00
jtc
1a3b3eb00a
last sys_signame[] changes; shell can now be built from scratch
1994-05-12 23:55:26 +00:00
jtc
98d2c75927
use prototypes provided by header files instead of our own
1994-05-12 17:08:55 +00:00
jtc
a81e412494
Include appropriate header files to bring function prototypes into scope.
1994-05-12 17:03:32 +00:00
jtc
df81ab8248
POSIX.1 changed getpgrp
1994-05-12 16:32:42 +00:00
jtc
db2b1de8d3
add const qualifier to get rid of compilation warnings.
1994-05-12 16:31:44 +00:00
jtc
1e9eba5d40
Use libc's sys_siglist[] instead of building and using our own array of
...
signal names. (from charles)
1994-05-12 16:09:09 +00:00
jtc
a3f60d8978
forgot some include files
1994-05-11 17:54:32 +00:00
jtc
759eadefd8
integrate NetBSD's POSIX.2 compliant umask builtin
1994-05-11 17:53:54 +00:00
jtc
52a20605b9
integrate NetBSD's path searching for dot files
1994-05-11 17:47:12 +00:00
jtc
542ace3bab
reintegrate NetBSD's false builtin
1994-05-11 17:42:57 +00:00
jtc
83b8a2f413
Mark Weaver's background/list fix (for bug #236 )
1994-05-11 17:39:11 +00:00
jtc
714c2cc318
temporarily disable printf builtin
1994-05-11 17:14:22 +00:00
jtc
05a9db8e4f
sync with 4.4lite
1994-05-11 17:10:53 +00:00
mycroft
e9a9507cd7
Clean up deleted files.
1994-05-11 17:10:52 +00:00
jtc
37ed7877b2
sync with 4.4lite
1994-05-11 17:09:42 +00:00
jtc
488499c5ff
44lite code
1994-05-11 17:01:00 +00:00
jtc
47a4e9fd79
Comment out sections of the manpages that are not, and will probably never
...
be, appropriate for ash as configured for NetBSD. In particular the /u
"magic" directory, and atty(1) support.
1994-05-04 23:49:12 +00:00
jtc
c1954f273e
Remove private versions of strchr() & bcopy(); there is nothing wrong with
...
the versions in our C library.
1994-05-04 23:46:28 +00:00
jtc
81d81cf9a0
Added const qualifier to char * function arguments to eliminate
...
compiler warning.
1994-05-04 23:45:04 +00:00
cgd
957b169eed
lseek long lossage.
1994-04-25 18:47:17 +00:00
cgd
ebc3c0f8a4
lseek long lossage.
1994-04-25 18:47:03 +00:00
cgd
66f99eaedd
do right right thing if 'read' given no args. ptd out by Geoff Rehmet
1994-04-06 19:08:14 +00:00
jtc
abfeba19ee
Getgroup's second argument is now a gid_t ptr.
1994-04-01 01:19:08 +00:00
deraadt
ee7f97cad3
avoid spilling garbage into the file init.c. this happened if libc
...
was compiled -g..
1994-03-27 07:45:57 +00:00
jtc
41954280cb
spelling mistakes
1994-02-03 17:47:18 +00:00
jtc
7c8b875fce
Remove text describing how the dot command does not do a $PATH search,
...
since we added that behavior to get closer to POSIX.2.
1994-01-27 17:53:28 +00:00
jtc
036641804e
Removed theo's change to check S_ISLNK() for dot commands. This is
...
unnecessary, since stat() allready resolves symlinks (and fails, if
the link is broken).
1994-01-26 19:50:03 +00:00
mycroft
0ff5f1be86
Clean up deleted files.
1994-01-26 18:04:13 +00:00
deraadt
d7b3f4d90a
source/$PATH thing for symbolic links too, reportedly
1994-01-25 21:05:34 +00:00
deraadt
90ac3da053
but don't try that for absolute or relative paths
1994-01-25 08:16:00 +00:00
deraadt
be0472fcd1
make . (source) command search $PATH as it should. from dkionka@Cadence.COM (Daniel P. Kionka) and fixed by me
1994-01-25 07:59:25 +00:00
davidb
3a435f99f9
Changed to use make's new .OBJDIR
1993-12-28 10:59:05 +00:00
cgd
f51f1b4c04
from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
...
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.
1993-11-14 15:35:34 +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
6ce85383cd
Root can execute anything with at least one execute bit set.
1993-09-23 23:32:19 +00:00
cgd
7f42c5de51
from jim wilson: (command): Handle TEOF like TNL.
1993-09-09 01:21:43 +00:00
cgd
7ca06a9522
fix from Jim Wilson <wilson@cygnus.com> for nothing-between-backquotes core
1993-09-09 01:05:19 +00:00
mycroft
f0e18400d3
Make `>file;' work.
1993-09-06 00:44:46 +00:00
mycroft
106f3e9c20
From Vincent Broman:
...
error.c: Add , in initializer list if ENOLINK defined.
output.c: Gratuitously remove extra ;.
mknodes.c: main() should return a value.
Not from Vincent Broman:
mknodes.c: main() should return an error condition when approriate, too.
1993-09-05 17:32:05 +00:00
mycroft
e794f02425
Tweak for cross-compiling.
1993-08-09 04:58:18 +00:00
mycroft
cd74991687
Clean up deleted files.
1993-08-06 21:50:19 +00:00
mycroft
f637854f04
Use sys_signame[].
1993-08-06 21:50:14 +00:00
mycroft
210cab4541
Add RCS identifiers, remove some completely useless RCS logs and patchkit
...
headers, and a few other insignificant changes.
1993-08-02 17:18:41 +00:00
mycroft
11ad3ef4f1
Makefile
1993-08-02 17:15:26 +00:00
mycroft
8542364e07
Add RCS identifiers.
1993-08-01 18:49:50 +00:00
mycroft
55b7fa6d0b
Add RCS identifiers.
1993-08-01 07:54:52 +00:00
jtc
b8be8f1e63
Make umask builtin of shell POSIX 1003.2 compliant:
...
Print out a symbolic mask with the -S option; and accept symbolic mask
specifications.
1993-07-21 00:02:33 +00:00
jtc
6659413c9a
Another change from Jim Wilson.
1993-07-15 22:12:02 +00:00
jtc
67893cfee5
IEEE 1003.2 (D11.2.2.3) requires that the system's true and false be accessed
...
instead of searching $PATH. The best way to satisfy this requirement is to
make them builtins.
True was allready builtin, this patch adds false.
1993-07-07 01:11:56 +00:00
mycroft
5afcdb89b5
Make sure init.c is touched so it doesn't get rebuilt if we
...
make again. (Okay, so I did reproduce it.)
1993-05-04 13:56:27 +00:00
mycroft
baef429061
Fix typo.
1993-05-02 23:08:42 +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
dpassage
2d12aa06fa
Fixed incorrect calls to longjmp.
1993-04-26 22:07:46 +00:00
dpassage
49c9ab9a60
Removed a cast that was causing another stoopid compile error.
1993-04-26 06:09:17 +00:00
mycroft
1b67cec37d
Fix various bugs in man pages (from 386BSD patch 130).
1993-04-22 03:27:28 +00:00
mycroft
7c05310612
Don't lose if obj dir not present.
1993-04-18 17:37:21 +00:00
cgd
a3a1e40463
from "Andrew A. Chernov, Black Mage" <ache@astral.msk.su>
...
When sh tried to find_command() for execution (without full path),
it checked ONLY ONE current effective group execution permissions,
but didn't check another valid groups from /etc/group.
1993-04-10 14:55:52 +00:00
cgd
06be60083d
changed "Id" to "Header" for rcsids
1993-03-23 00:22:59 +00:00
cgd
346aa5dd48
added rcs ids to all files
1993-03-22 08:04:00 +00:00
cgd
e541169ce2
after 0.2.2 "stable" patches applied
1993-03-21 18:04:42 +00:00
cgd
61f282557f
initial import of 386bsd-0.1 sources
1993-03-21 09:45:37 +00:00