home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-385-Vol-1of3.iso
/
m
/
ms_sh21c.zip
/
notes
< prev
next >
Wrap
Text File
|
1992-12-14
|
7KB
|
191 lines
RELEASE 2.1 Dec 12th 1992 RELEASE 2.1 Dec 12th 1992
Version 2.1 Release Notes:
Release 2.1 has a few bugs fixed and some OS/2 functionality changed.
Changes Functionality:
New in 210 Beta
1. Using the -R switch, causes the .ini file to be read just before
the first keyboard input. This allows the location to be changed
by changing the value of the SHELL environment variable.
2. The job command in OS/2 will print the OS/2 process tree info.
job -p Print the process tree info for the shell
job -P id Print the tree for process id.
3. Binary trees are used in a number of places instead of linked lists.
4. The OS/2 command line limit is now 32000 bytes. Parameters with
white space in a quoted for parameters to a command passed via spawn
or exec. This does not apply if the command supports indirect files.
5. case statements in functions nolonger corrupt memory.
6. OS/2 uses either files or pipes to pipe data. The mode is selected
either via the command line (-P switch) or the set -/+o realpipes
command. Note that using real pipes for more complex command strings
than a simple pipeline (a | b | c) might not work because of the
differences in the process models. I'm not ready to introduce
multi-threading into the shell, yet.
7. kill now supports %job number.
New in 211 BETA.
8. Function keys to clear the screen and print the shell's process
tree (OS/2 only) have been added.
9. The cd command correctly handles directory names ending in a /.
New in 212 BETA.
10. ALT keys can now be specified in the sh.ini file. Use 0xff to
specify and ALT key as opposed to 0 to specify a function key.
11. set -w enables the display of warning messages, +w disables it.
12. The shell checks for valid DOS filenames (single dot, not at the
beginning). Invalid dots are converted to ~. A warning message is
given.
13. The transpose and quote functions have been added to the command
line editor.
14. A bug in the sub-shell processing prevented exit 0 from exitting
with zero has been fixed.
15. All buffers are flushed before reading input.
16. A bug in the [[ ... ]] processing prevented it from working.
New in 213 BETA.
17. Unsetting special variables removes their meaning (RANDOM, SECONDS etc).
18. dos () { command -c $*; } did not convert the slashes correctly.
19. Fix format of function command to be POSIX - function name {} and
not function name () {}.
20. Set up LINES environment variable correctly
21. Fix bug in read so that "ls | while read n; do echo $n; done"
prints something other than just the first filename.
22. Set up HISTSIZE environment variable correctly and process it.
23. Disable checking of MCB chain above 0x9ffe0.
New in 214 BETA.
24. Pass parameters to script when executing dot files (. name 1 2 3).
25. Fix [ ] so that an empty expression returns false.
26. ${COMSPEC} is parsed and split on white space to allow addition
parameters to be passed to command.com. Thus the default
environment size could be set to 1000 by setting
COMSPEC=command /e:1000.
27. The size of the retained history can be specified using HISTSIZE.
28. Fix bug in OS/2 real pipes where the shell does not wait for the
correct process to terminate.
29. Implement wait command for OS/2.
30. Null argument to a command generates "" in the command line.
31. Under OS/2, Sessions are nolonger logged as jobs with no way of
removing the job entry.
32. A bad command inside `` or $(...) terminates the current command
expression, instead of generating a null parameter to the command.
33. Add support in OS2 version for Eberhard Mattes EMX interface to
commands. In the ${EXTENDED_LINE} file, emx instead of unix
selects this interface format. In addition, add support in the
alternative stdargv.c. If the EMX interface is used, stdargv
detects this and processes according. Otherwise, the standard
interfaces are assumed.
34. Fix escaping of double quotes in the command line argument.
35. Add %number & %?string to job support commands (wait, kill). Thats
about as far as full job support goes I think.
36. Implement 'getopts' command.
New in 215 BETA.
37. Now we cleanup all filenames before using them
38. Fixed 33 as default for OS/2.
39. Completed %[-+%] for jobs
40. Nothing new added since 215
Missing POSIX Shell functionality:
I've looked at three different version of ksh (under AIX, HP UX and ICL's
DN/X) and each one has something slightly different. In general, I believe
the following functionality is missing from the shell, some of which can not
be implemented under either MSDOS or OS/2.
1. ksh-style command line editing. MS_shell has it's own style.
2. Array parameters
3. Filename generation currently matches the Bourne and not the Korn shell
4. The correct processing of the escape character (\) inside double quotes.
Missing, not supportable.
1. The ulimit command - no MSDOS or OS/2 equivalent
2. The times command is not implemented - no equivalent functionality
3. The bg and fg commands are not implemented - no equivalent
functionality.
4. cd -L/P is not supported. No symbolic links under MSDOS or OS/2
5. pwd -L/P is not supported. No symbolic links under MSDOS or OS/2
6. The set -p (disable $HOME/.profile processing) and set -m (run
background jobs in separate process group) have not been implemented.
7. The ~ at the start of a word only supports the $HOME, $PWD or $OLDPWD
substitutions. There's no /etc/passwd.
8. TMOUT is not implemented, what's functionality under MSDOS or OS/2 I
ask?
9. The time pipeline command - no MSDOS or OS/2 equivalent
10. jobs under MSDOS - HA!
11. Co-processes. Again, really difficult to implement under MSDOS
and OS/2 (I think).
The following enhancements/bugs remain outstanding:
1. The processing of the escape character (\) is not consistent with the
Korn shell. The MS-Shell always strips the first escape character.
The Korn shell only strips escape characters when it detects a shell
special character following.
ie. echo "\033[H" works under Korn however echo "\\033[H" is required
in the MSDOS shell.
This problem requires a large amount of rework to one 30K source file
and I haven't been able to start on it yet.
2. 8 Bit character are not supported. This is tied in with the processing
of escape characters. The shell uses the 8-bit to mark escaped
characters.
3. Interrupting a swap at the wrong time may cause the shell to hang. I've
not been able to track this down. I think it may be some funny
interaction with Quaterdesk's QEMM memory manager.
Thanks are due to
for their comments, fixes, tolerance etc in testing release 2.1
Ian Stewartson.