[659] in comp.os.os2.announce archive
SOFTWARE: Ksh 5.2.4 for OS/2 (update)
daemon@ATHENA.MIT.EDU (Mick Brown)
Mon Feb 12 13:40:13 1996
To: os2ann.DISCUSS@bloom-picayune.MIT.EDU
Date: 1 Feb 1996 03:06:53 GMT
From: lfirrantello@BIX.com (Mick Brown)
Reply-To: Dale.DePriest@mit.edu (daled&cadence.com)
Submitted by: Dale DePriest (daled&cadence.com)
Source: Dale DePriest (daled&cadence.com)
Date sent: 1996 01 19
Date posted: 1996 01 31
=====================================================================
I am pleased to announce a new version of ksh has been released and posted
to hobbes and other ftp sites:
ftp://hobbes.nmsu.edu/os2/unix/ksh524rt.zip
ftp://ftp-os2.cdrom.com/pub/os2/incoming/ksh524rt.zip
to be moved to os2/shellutl
ftp://ftp.cs.mun.ca/pub/pdksh/pdksh524rt_os2.zip
sources in pdksh-5.2.4.tar.gz
Here is the document outlining the changes to the os2 version since the os2
release 5.2.2
1. You can now open multiple files in a script, i.e. exec works. Some
better checking could still be done.
2. A bug in reading input files where data was getting shifted around has
been fixed. (forced binary mode to emx a number of places for input.)
3. Directories with same name as executables will no longer cause an error.
4. OS2 cmd processing of extproc header line only passes the file name to
the spawned process instead of the full pathname. This is a bug in os2
IMHO since if you explicitely want a certain path for the command you
cannot guarantee it. A change was made to search the path within ksh to
permit this processing to work. Note that the copy ksh finds might not
be the one you wanted but at least you can copy your cmd files around
without having to modify them. A side effect of this change is that
typing: "ksh whatis" will now search your path as well which does change
the standard behavior of ksh.
5. #! processing will now search for the shell using the explicit path and
if not found then it will use the path variable. Most of you won't
notice any difference since the shell will still be found but if you
needed a particular one then this can be done. Note that if you only
want a particular pathname use "\"'s in the path.
6. Ksh will now honor the advertised EXECSHELL variable if it is set
instead of OS2_SHELL as the shell to be used if there is no #! or
extproc line in the file. The difference is EXECSHELL will not have any
options supplied while OS2_SHELL will automatically get /c and the
pathname will have '\' as the directory separator. OS2_SHELL will still
be used if EXECSHELL is not set.
7. A new option to print, -f, has been added for os2 users. It will force
forward slashes. It is useful when trying to massage an environmental
variable containing backslashes using something like sed which always
interpretes backslashes as escapes. There is and example of this in the
new kshrc.ksh that I have included.
8. Working with os2 variables can be a pain try to escape all of the ';'s
so I have supplied some new functions in the kshrc.ksh. Please checkout
add_path, pre_path, and del_path. These functions will append a path,
prepend a path, or delete a path from the variable you specify, PATH by
default. These are modification of the samples shipped with the unix
pdksh startup files.
9. The echo output and other outputs from ksh now use forward slashes and
in general forward slashes will be seen more often than before.
Backslashes will still be accepted on input and command line completion
but it was too painful to try and preserve the os2 look for output and
permit Unix scripts to work. If you prefer the old method change the
variable DIRSEP in sh.h and rebuild.
10. A bug requiring all command extensions to be in lower case was fixed.
This showed up most often in the setting of OS2_SHELL.
11. os2/configure will now set up to build either ksh or sh.
12. filenames without extensions have been moved to the front of the
execution order. Therefore if a file called foo and a file called
foo.exe both exist in the same directory the file called foo will be
executed. This was necessary since if the execution order placed foo at
the end then there would be no way to execute it.
In addition the following changes have be made to pdksh on which this
version is based. (Some are not applicable to the os2 version.)
Version 5.2.4
* bug fixes
* PS1 imported from environment again.
* vi handles prompts with imbedded newlines.
* errors redirecting stderr aren't lost.
* redirection errors for <&n no longer reported as to >&n.
* don't do globbing on re-direction targets if not interactive (POSIX).
* pattern matching in [[ foo = foo*bar ]] now works again.
* HUP signals are passed on to jobs running in the foreground.
* $? now valid (ie, not 0) in trap handlers, `...` expressions, etc.
* noclobber doesn't effect redirections to non-regular files (eg,
/dev/null)
* \newline in here-document delimiters handled correctly.
* typeset -f now reports unloaded autoload functions properly.
* ~,~+,~- are not expanded if HOME,PWD,OLDPWD are unset.
* vi completion/expansion: * not appeded if word contains $.
* cd: error message contains correct directory string.
* vi expansion list: printed in column form ala at&t ksh.
* ^C while reading .profile/$ENV nolonger causes shell to exit.
* option errors for build-in commands now include command name.
* emacs completion/expansion: ' and " are treated as word delimiters.
* fc: replacements (a=b) no longer truncates the command.
* alias: alias -t -r now cleans out the tracked alias table.
* case statements can use the old syntax of {,} instead of in,esac.
* extended file globbing added (eg, f*(bar|Bar) matches f, fbar fBarbar, etc).
* trim expressions can be of the form ${parameter#pattern1|pattern2|...}.
* if compiled as sh, $ENV included only if posix option is set.
* vi: U command added (undo all changes on line).
* the Bugs script has been replaced by a new regression testing system, kept
in the tests/ directory (contains a perl script which sets up a test
environment and runs tests, and a bunch of tests).
Version 5.2.3
* bug fixes
* arrays: set -A and unset now unset whole array.
* history(complex version): fixed core caused by uninitialized hist_source.
* getopts: will continue parsing options if called after error.
* getopts: doesn't print shell name twice in error message.
* posix: if posix option is set, $0 is always the name of the shell.
* history: "fc -s foo" now finds foo if it is the most recent command.
* let: expression errors no longer cause scripts to exit.
* PS1: does not go into infinite loop if there is an expansion error.
* configure: memmove/bcopy test has a change of working now.
* configure: check for flock(), undefine COMPLEX_HISTORY if not found.
* substitution: tilde substitution works in word part of ${var[-+=?]word}.
* history: "fc <number>" now edits <number>, not <number> to most recent.
* cd: two argument form works again.
* special commands taking assignments (alias,set,etc.): field splitting,
file globbing, etc. suppressed only for args that look like assignments.
* command: -V now finds reserved words.
* test -o option: if option starts with a !, the test is negated. The test
always fails if the option doesn't exist (so [ -o foo -o -o !foo ] is true
iff option foo exists).
* new option: set -o nohup (currently on by default) - if set, running jobs
are not kill -HUP'd when a login shell exits; if clear, they are. In
future, this will be clear by default (to act like at&t ksh) - if you don't
(won't) like this, add "[ -o !nohup ] && set -o nohup" to your .profile.
=====================================================================
-- submissions for comp.os.os2.announce to os2_ann_req@bix.com
-- administrivia for comp.os.os2.announce to lfirrantello@bix.com
--Mick Brown (lfirrantello@bix.com)