Bill Fenner
99907703d9
Instead of eating trailing newlines after inserting them into the
...
output buffer, don't insert them at all. This prevents a buffer
*underrun* when the substitution consists completely of newlines
(e.g. `echo`) and the byte before the source buffer to which p
points is a '\n', in which case more characters would be removed
from the output buffer than were inserted.
This fixes certain port builds on sparc64.
Approved by: re (scottl)
Reviewed by: des, tjr
2003-05-31 06:27:57 +00:00
Ruslan Ermilov
d74e011ff0
mdoc(7) police: A better version of the same.
...
Approved by: re (blanket)
2003-05-16 21:19:32 +00:00
David E. O'Brien
8d5c19ffbc
Centralize _PATH_* definitions.
...
Submitted by: Tim Kientzle <kientzle@acm.org> (embellished by me)
2003-05-05 22:49:23 +00:00
David E. O'Brien
1f156e8160
The is_name and is_in_name macros are FUBAR'ed.
...
Due to the use of signed vs. unsigned chars on our various platforms, one gets
"warning: comparison is always true due to limited range of data type"
from GCC 3.3.
2003-05-02 06:24:51 +00:00
David E. O'Brien
09a80d4867
Quiet warnings about copyright[].
2003-05-01 16:58:57 +00:00
Jens Schweikhardt
fbc8f8a2dc
Fix references to non-existing or obsoleted man pages.
...
PR: docs/51480 (only a small part)
Submitted by: Diomidis D. Spinellis <dds@aueb.gr>
2003-04-30 19:18:50 +00:00
Tim J. Robbins
e9fa8fddd6
Document the -L and -P options to the cd and pwd commands as being
...
mutually exclusive. The fact that the most recent one specified on the
command line is the one that takes effect is an implementation detail and
users should not rely on this.
2003-04-12 03:20:28 +00:00
Tim J. Robbins
5821bf03d8
Flush the output buffers before forking a child process to avoid
...
the child process writing data that the parent should have written.
PR: 50051
MFC after: 2 weeks
2003-03-17 11:28:56 +00:00
Ruslan Ermilov
024ae00499
Fixed (soon might be fatal) -Wformat warnings.
2003-03-15 07:56:59 +00:00
Marcel Moolenaar
caecb2f4c0
Third attempt at removing machdep.h and using ALIGN from <sys/param.h>.
...
The initial stack_block is staticly allocated and will be aligned
according to the alignment requirements of pointers, which does not
necessarily match the alignment enforced by ALIGN. To solve this a
more involved change is required: remove the static initial stack
and deal with an initial condition of not having a stack at all. This
change is therefore more risky than the previous ones, but unavoidable
(other than not using the platform default alignment).
Discussed with: tjr
Approved and reviewed by: tjr
Tested on: alpha, i386, ia64 and sparc64
2003-02-24 08:07:05 +00:00
Tim J. Robbins
b228ca4dea
Revert ALIGN change for the second and last time. I can't figure out
...
why this is breaking sparc64.
2003-02-18 02:08:20 +00:00
Tim J. Robbins
decb00f677
Second attempt at removing machdep.h and using ALIGN from <sys/param.h>.
...
The problem with the previous attempt, as noticed by Marcel, was that
stacknxt was being aligned to a pointer boundary instead of an
ALIGNBYTES + 1 boundary, which broke sparc64.
2003-02-17 03:51:44 +00:00
Tim J. Robbins
da5f5439a4
Temporarily back out machdep.h/ALIGN changes. It seems that on sparc64,
...
using the alignment from sys/param.h (16) instead of the alignment
from machdep.h (8) tickled a nasty bug in the memory allocator that I
haven't been able to track down yet.
2003-02-16 03:28:11 +00:00
Tim J. Robbins
457ae4f0d4
Use the ALIGN macro from <sys/param.h> instead of defining our own
...
incorrect version in machdep.h. Delete machdep.h.
2003-02-14 23:53:19 +00:00
Philippe Charnier
53a24b9359
Add FBSDID.
2003-02-05 13:23:46 +00:00
Tony Finch
1413f7de53
Improve the layout of the description of the various parameter expansion
...
modifiers. The paragraph that explains the difference between ${foo:-bar}
and ${foo-bar} etc. was not very visible.
2003-02-03 23:03:05 +00:00
Tim J. Robbins
c57bc2b10e
Ensure that the TTY file descriptor is greater than or equal to 10 so that
...
it doesn't interfere with the user's redirections.
PR: 47136
MFC after: 1 week
2003-01-27 07:41:12 +00:00
Tim J. Robbins
6da31df83b
Make this compile with DEBUG defined now that WARNS=0 has been removed
...
from the Makefile:
- Print pointers with %p instead of %x.
- Include missing headers to get prototypes.
Noticed by: benno
2003-01-21 10:06:04 +00:00
Tim J. Robbins
9c92e72c7f
Do not strip CTL* escapes from redirection filenames in exptilde(),
...
expari(), expbackq() and evalvar(). Similar to revision 1.39.
Patch from Tor Egge.
PR: 45349
MFC after: 2 weeks
2003-01-08 10:50:08 +00:00
Tim J. Robbins
2c25061f18
Add the "wordexp" shell built-in command which will be used to implement
...
the POSIX wordexp() function.
2002-12-26 14:28:54 +00:00
Ruslan Ermilov
facc67676f
mdoc(7) police: Deal with self-xrefs.
2002-12-24 13:41:48 +00:00
Ruslan Ermilov
f5d1157fd1
mdoc(7) police: markup nit.
2002-12-23 15:21:38 +00:00
David Malone
f656dbec97
Use '\033' rather than '\e' as the latter is a gccism.
...
PR: 46015
Submitted by: Jeroen Ruigrok van der Werven <asmodai@wxs.nl>
MFC after: 1 week
2002-12-22 21:35:14 +00:00
Tom Rhodes
304199ce19
The code uses trapsasync, however the manual page uses asynctraps. Fix the
...
manual page to reflect the code.
PR: 45820
Submitted by: Marco Molteni <molter@tin.it>
Discussed with: tjr
2002-12-17 20:27:48 +00:00
Tony Finch
162ae3ae7f
Document trap EXIT
and trap SIGNAME
.
2002-12-17 17:31:44 +00:00
Tim J. Robbins
2e3684f843
When job control is disabled, never show the job id when reporting the
...
status of a background process that has terminated because of a signal.
2002-12-14 01:08:04 +00:00
Ruslan Ermilov
db8993ce9e
Capitalize ASCII code names.
...
Approved by: re
2002-12-05 08:50:00 +00:00
Tim J. Robbins
0cda444bef
Delete worthless comments.
2002-10-30 06:34:52 +00:00
Tim J. Robbins
728b72c237
Avoid accidentally making "-h" a synonym for "fc".
...
Obtained from: NetBSD
2002-10-18 10:33:32 +00:00
Tim J. Robbins
c121fd80b8
Do not strip CTL* escapes from redirection filenames in argstr(); they
...
are later stripped with rmescapes() in expandarg(). If the filename has
already been unescaped, doing it again in rmescapes() can walk off the
end of the string, leading to memory corruption and eventually SIGSEGV.
Noticed by: kris
2002-10-08 11:22:49 +00:00
Tim J. Robbins
427748f7df
Disallow empty condition parts of "if", "while" and "until" compound
...
commands. Commands like "if then ... fi" and "while do ... done" are no
longer accepted. Bodies of compound commands are still allowed to be
empty, because even though POSIX does not allow them, most shells do.
2002-10-06 06:35:51 +00:00
Tim J. Robbins
54beeb39c2
Use %d in a printf() format string and cast the argument to int instead of
...
using %td when we know that the number is between 0 and 9; mksyntax is a
build tool and needs to work on -stable.
2002-10-02 09:57:54 +00:00
Tim J. Robbins
658a755b6a
Back out experimental changes to fmtstr() that I didn't mean to include
...
in the previous commit.
2002-10-01 13:41:13 +00:00
Tim J. Robbins
7e73d40ee5
Replace a home-grown printf() clone with a fwopen() wrapper around
...
libc's vfprintf() that writes to a `struct output' instead of a file.
Inspired by NetBSD's similar changes (they used asprintf() instead).
2002-10-01 13:22:12 +00:00
Maxime Henrion
ca5434bae6
It is now safe to remove WARNS=0 and WFORMAT=0.
...
Tested on: alpha, i386, sparc64
2002-10-01 12:12:45 +00:00
Tim J. Robbins
8c39572997
Restore "not found" error message when searching for (or executing)
...
a program fails because the file or a path component does not exist.
Suggested by: bde
2002-10-01 11:48:18 +00:00
Maxime Henrion
0c1661b754
- Don't use quad_t when we really mean rlim_t.
...
- Cast rlim_t to intmax_t when printing it.
This should fix the last format errors in sh(1).
Tested on: i386, sparc64
2002-10-01 11:44:38 +00:00
Tim J. Robbins
fce40e6ec6
Add back WARNS=0 and WFORMAT=0; gcc is finding nonexistent format string
...
errors with %qd formats.
2002-10-01 08:55:28 +00:00
Maxime Henrion
ec65e9977a
Use the %t format modifier to print differences between
...
pointers. This fixes two format warnings on 64 bits
archs which are fatal now that WFORMAT=0 has been removed.
It doesn't fully fix the sh(1) build on 64 bits platforms
though, there is still some quad_t issues that need to be
fixed.
Tested on: i386, sparc64
2002-10-01 08:40:07 +00:00
Tim J. Robbins
b7f23f5be5
Remove WARNS=0 and WFORMAT=0. The shell compiles cleanly at WARNS=2
...
on at least i386. If there are warnings on other archs, I'd rather hear
about them than pretend they didn't exist.
2002-10-01 07:26:35 +00:00
Tim J. Robbins
c515abc535
Remove some kind of profiling support that required the 4.2BSD monitor()
...
function in libc.
2002-10-01 01:30:33 +00:00
Tim J. Robbins
b1a667509b
Remove bits and pieces of support for atty, which was made obsolete by
...
adding history and vi/emacs-style line editing to the shell itself.
Atty was a user-mode terminal emulator (like screen and window) that did
line editing and history.
2002-10-01 00:54:14 +00:00
Tim J. Robbins
abe2dc6158
Callers of error() don't need to supply a program name prefix in the
...
error message. Stops ulimit giving error messages like "ulimit: ulimit: xyz".
2002-09-30 13:29:32 +00:00
Tim J. Robbins
f7a9b7fe3a
Allow a left parenthesis before patterns in case blocks. POSIX requires
...
us to accept this, but I've never seen a script that uses it.
2002-09-30 13:25:00 +00:00
Tim J. Robbins
e00e16ad7f
Allow empty case/esac statements; POSIX requires this, and recent versions
...
of autoconf are generating scripts that use this feature.
PR: 43275 35879
Submitted by: Dan Nelson <dnelson@allantgroup.com>
2002-09-30 10:57:44 +00:00
Tim J. Robbins
9a7cafd9b8
Remove dead code which supported systems without O_APPEND, O_CREAT or SIGTSTP.
2002-09-29 12:38:25 +00:00
Tim J. Robbins
1c59560de9
Convert the remaining callers of errmsg() to use strerror(), and remove
...
errmsg() and its table of error messages.
2002-09-29 11:37:39 +00:00
Jacques Vidrine
dde97b32ff
Correct a usage of fnctl that could not be right and results in a
...
no-op. I assume it was meant that the close-on-exec flag be set here.
2002-09-11 16:38:33 +00:00
Giorgos Keramidas
d1d578b2cd
Add <stdlib.h> to get a prototype for exit().
...
Reviewed by: tjr
2002-08-29 14:26:49 +00:00
Philippe Charnier
0d9f1a69d8
Replace various spellings with FALLTHROUGH which is lint()able
2002-08-25 13:01:47 +00:00