Project Release Information
This release fixes several small bugs in sh compatibility, UTF-8 handling, Emacs mode, and the build system. It includes some additions to the man page as well as portability fixes for Openstep, Interix, and Hurd and a new port to MSYS.
This release fixes several obscure ways the shell could crash the tty, freeze, or refuse to start. The tab completion user experience was improved to allow ^Cing out of cat. The setenv function was added to the default ~/.mkshrc file. The documentation better explains that echo is not portable and which startup files are read. Manpage legibility was improved. The new “global” special built-in command was added, doing the same as “typeset” (“local”) except making every touched parameter local to the function even if it existed before. Compiler/linker errors are caught earlier. Some compiler warnings were fixed.
The MirBSD Korn Shell (mksh) is an actively developed successor of pdksh (the Public Domain Korn Shell), aimed at producing a shell good for interactive use, but with the primary focus on scripting. It is intended to be portable to most *nix-like operating systems as long as they're not too obscure. mksh incorporates improvements from OpenBSD and Debian, as well as bugfixes and enhancements developed for the MirOS, FreeWRT, and MidnightBSD projects and Android. The emacs command line editing mode is UTF-8 capable, and Byte Order Marks are ignored in scripts. The shell supports large files, as well as all pdksh and some csh, AT&T ksh, zsh, and GNU bash features, is compatible with the Bourne shell and POSIX (within limits), has no limit on array sizes, and incorporates some other useful builtins and features. While being already fast and small (without losing functionality), flags to make it even smaller can be given at compile time. An interactive shell reads "~/.mkshrc" on startup.