TODO for ksh 93u+m

See the issue tracker for up-to-date information:
https://github.com/ksh93/ksh/issues

______
Enhancements to do:

* Add -T (-o functrace) option as in bash
  https://github.com/ksh93/ksh/issues/162

* History pattern search menu (SHOPT_EDPREDICT) needs work
  https://github.com/ksh93/ksh/issues/233

* Use real pipes instead of sockets
  https://github.com/ksh93/ksh/issues/327

______
Known bugs in ksh 93u+m 1.0.0-beta.2 (HELP IS WANTED to fix these):

* Memory leak when initialising associative array in subshell
  https://github.com/ksh93/ksh/issues/94

* command substitution botches output of non-waited-for child processes
  https://github.com/ksh93/ksh/issues/124

* Intermittent coprocess hang on Debian/Ubuntu and Solaris
  https://github.com/ksh93/ksh/issues/132

* wrong typeset -p output after unsetting multidimensional array elements
  https://github.com/ksh93/ksh/issues/148

* File descriptor is unexpectedly closed after exec in subshell
  https://github.com/ksh93/ksh/issues/161

* printf %T date parsing: GNU-style "ago" date spec completely broken
  https://github.com/ksh93/ksh/issues/182

* typeset -L/-R: string length breaks on multibyte characters
  https://github.com/ksh93/ksh/issues/189

* Linux i386: variable expansion corruption in single-line function
  https://github.com/ksh93/ksh/issues/203

* Segfault with very large extended glob patterns
  https://github.com/ksh93/ksh/issues/207

* funcname.ksh crashes under standard malloc
  https://github.com/ksh93/ksh/issues/212

* process substitution cannot be part of a larger argument
  https://github.com/ksh93/ksh/issues/215

* Compound array regression on OpenBSD with standard malloc
  https://github.com/ksh93/ksh/issues/229

* 'typeset -m'-related crash on OpenBSD compiled with standard malloc
  https://github.com/ksh93/ksh/issues/231

* Freeze/crash on OpenBSD with -D_std_malloc involving typeset and command substitution
  https://github.com/ksh93/ksh/issues/264

* Nested compound assignment misparsed in $(...) command substitution
  https://github.com/ksh93/ksh/issues/269

* Crash on bin/shtests -px heredoc
  https://github.com/ksh93/ksh/issues/306

* Multibyte characters get corrupted when KEYBD trap is set
  https://github.com/ksh93/ksh/issues/307

* .sh.match index array result issues, crash after unset
  https://github.com/ksh93/ksh/issues/308

* Builtins don't handle I/O errors
  https://github.com/ksh93/ksh/issues/313

* block devices not seekable when open on fd 0, 1 or 2
  https://github.com/ksh93/ksh/issues/318

* bug in printf when %b and %x$ are used in same format
  https://github.com/ksh93/ksh/issues/324

* namespaces don't work properly when defined within functions
  https://github.com/ksh93/ksh/issues/325

* Associative arrays of various types fail to be unset
  https://github.com/ksh93/ksh/issues/345

* types survive exec of hashbangless script
  https://github.com/ksh93/ksh/issues/350

* Backtick command substitutions can't nest double quotes
  https://github.com/ksh93/ksh/issues/352

* Line continuation breakage within $(comsub)
  https://github.com/ksh93/ksh/issues/367

______
Fix regression test failures:

- There are some serious regression test failures on OpenBSD when ksh
  is compiled with AST vmalloc disabled, so the system standard malloc(3)
  is used. These probably represent real ksh93 bugs exposed by OpenBSD's
  security hardening mechanisms.

- Several known memory leaks have their tests disabled in tests/leaks.sh
  and are marked TODO. These need tracking down and fixing.

______
Fix currently known bugs affecting shell scripting. These are identified by
their modernish IDs. For exact details, see code/comments in:
https://github.com/modernish/modernish/tree/0.16/lib/modernish/cap/

- BUG_BRACQUOT: shell quoting within bracket patterns has no effect. This
  bug means the '-' retains it special meaning of 'character range', and an
  initial ! (and, on some shells, ^) retains the meaning of negation, even
  in quoted strings within bracket patterns, including quoted variables.

- BUG_IFSGLOBS: In glob pattern matching (as in case or parameter
  substitution with # and %), if IFS starts with ? or * and the "$*"
  parameter expansion inserts any IFS separator characters, those characters
  are erroneously interpreted as wildcards when quoted "$*" is used as the
  glob pattern.
