summaryrefslogtreecommitdiff
path: root/bin/ksh/NOTES
diff options
context:
space:
mode:
authorJason Downs <downsj@cvs.openbsd.org>1996-08-19 20:09:10 +0000
committerJason Downs <downsj@cvs.openbsd.org>1996-08-19 20:09:10 +0000
commite7e852656e3beb5f62f8c146ba24004cfda2cf88 (patch)
treeb312bc3e985b3f1cf19691c779e7870219573b6e /bin/ksh/NOTES
parent1e9e82f84b5de8bcd110c41c780f476397c385d9 (diff)
update to pdksh-5.2.8
Diffstat (limited to 'bin/ksh/NOTES')
-rw-r--r--bin/ksh/NOTES29
1 files changed, 21 insertions, 8 deletions
diff --git a/bin/ksh/NOTES b/bin/ksh/NOTES
index 45bab7b2752..96a2af3aada 100644
--- a/bin/ksh/NOTES
+++ b/bin/ksh/NOTES
@@ -1,4 +1,4 @@
-$OpenBSD: NOTES,v 1.1 1996/08/14 06:19:10 downsj Exp $
+$OpenBSD: NOTES,v 1.2 1996/08/19 20:08:43 downsj Exp $
General features of at&t ksh that are not (yet) in pdksh:
- exported aliases.
@@ -6,10 +6,12 @@ General features of at&t ksh that are not (yet) in pdksh:
- set -t.
- signals/traps not cleared during functions.
- trap DEBUG, local ERR and EXIT traps in functions.
- - ERRNO, LINENO, LINES parameters.
+ - ERRNO, LINENO parameters.
- doesn't have posix file globbing (eg, [[:alpha:]], etc.).
- use of an `agent' to execute unreadable/setuid/setgid shell scripts
(don't ask).
+ - read/select aren't hooked in to the the command line editor
+ - the last command of a pipeline is not run in the parent shell
Known bugs (see also BUG-REPORTS and PROJECTS files):
Variable parsing, Expansion:
@@ -46,11 +48,6 @@ Known differences between pdksh & at&t ksh (that may change)
prints a message and exits. (Also, in at&t ksh, setting TMOUT has no
effect after the sequence "TMOUT=60; unset TMOUT", which could be
useful - pdksh may do this in the future).
- - co-processes: in at&t ksh, accessing the co-process in a redirection
- always closes the shells copies of the file descriptors; in pdksh
- only redirections in an empty exec command has this effect. This
- may change if the at&t style proves more useful (doubt it, though)
- or if many scripts depend on it.
- in pdksh, if the last command of a pipeline is a shell builtin, it is
not executed in the parent shell, so "echo a b | read foo bar" does not
set foo and bar in the parent shell (at&t ksh will).
@@ -59,6 +56,9 @@ Known differences between pdksh & at&t ksh (that may change)
it is the same as set -o.
- in pdksh emacs mode, ^T does what gnu emacs does, not what at&t ksh
does.
+ - in ksh93, `. name' calls a function (defined with function) with POSIX
+ semantics (instead of ksh semantics). in pdksh, . does not call
+ functions.
Known differences between pdksh & at&t ksh (that are not likely to change)
- at&t ksh seems to catch or ignore SIGALRM - pdksh dies upon receipt
@@ -79,7 +79,7 @@ Known differences between pdksh & at&t ksh (that are not likely to change)
uses isspace()), at&t ksh only skips blanks.
- at&t ksh allows attributes of read-only variables to be changed,
pdksh allows only the export attribute to be set.
- - at&t ksh allows set -A of readonly variables, pdksh does not.
+ - (some) at&t ksh allows set -A of readonly variables, pdksh does not.
- at&t ksh allows command assignments of readonly variables (eg, YY=2 cat),
pdksh does not.
- at&t ksh does not exit scripts when an implicit assignment to an integer
@@ -165,6 +165,19 @@ Known differences between pdksh & at&t ksh (that are not likely to change)
- pwd: in at&t ksh, it ignores arguments; in pdksh, it complains when given
arguments.
- the at&t ksh does not do command substition on PS1, pdksh does.
+ - ksh93 allows ". foo" to run the function foo if there is no file
+ called foo (go figure).
+ - field splitting (IFS): ksh88/ksh93 strip leading non-white space IFS
+ chars, pdksh (and POSIX, I think) leave them intact. e.g.
+ $ IFS="$IFS:"; read x; echo "<$x>"
+ ::
+ prints "<>" in at&t ksh, "<::>" in pdksh.
+ - command completion: at&t ksh will do completion on a blank line (matching
+ all commands), pdksh does not (as this isn't very useful - use * if
+ you really want the list).
+ - co-processes: if ksh93, the write portion of the co-process output is
+ closed when the most recently started co-process exits. pdksh closes
+ it when all the co-processes using it have exited.
Oddities in ksh (pd & at&t):
- array references inside (())/$(()) are strange: