Commit graph

49 commits

Author SHA1 Message Date
tnn
744356551b mksh: add a CHECK_PORTABILITY_SKIP with a comment 2020-08-03 15:33:45 +00:00
tnn
207edad9ac undo previous. Apparently one doesn't patch this in the normal way. 2020-08-03 15:16:04 +00:00
tnn
711c487d90 mksh: remove double brackets 2020-08-03 15:13:55 +00:00
jperkin
71585d26c8 mksh: Don't set PKG_SHELL when used for bootstrap.
This can cause circular problems where the +INSTALL script requires the shell
itself, but also avoids issues trying to add to /etc/shells during bootstrap
where it may not be appropriate, or done outside of the context of where the
bootstrap tarball will finally be installed.

Users who use mksh as a bootstrap shell can simply add to /etc/shells manually
after installing or extracting the bootstrap as required.

While here remove unnecessary extra indents.
2020-07-10 11:24:24 +00:00
jperkin
58b578bfb0 mksh: Import unpacked mksh-59b sources.
Two patches have been applied on top, both of which are stored in the
patches directory as manual-Build.sh and manual-funcs.c, to fix issues
on Darwin and SunOS that will be included in the next mksh release.  The
binary mksh.ico file has been manually removed.

This paves the way for  mksh to be used as an alternate bootstrap shell
instead of shells/pdksh, which has been unmaintained for many years and
has some known issues.

Initial bulk build results on Darwin and SunOS look good, and having a
maintained shell which focuses on portability and speed should provide
us with a better long-term option for systems which require a bootstrap
shell.
2020-07-06 10:11:34 +00:00
nia
6fe99c7937 mksh: Update to 59b
R59b is a must-have bugfix upgrade for R59 (not R58):

    [tg] Handle other tmux $TERM types, pointed out by multi via IRC
    [tg] Fix typo in FAQ
    [tg] y='a\*b'; [[ $x = $y ]] regression (Martijn Dekker) fix
    [l0kod] Defuse CLIP OS O_MAYEXEC support (cf. LWN)
    [tg] Make set +o output a command to restore the currently set and (new!) cleared options, keep a reset state per session (experimental)
    [tg] Correct documentation and code regarding to argv[0] parsing: first ‘-’ for login shells, then ‘r’ case-insensitively for restricted shell, then “sh”*, again case-insensitively, for BINSH_* modes; add tests
    [tg] On OS/2, allow case-insensitive name for direct builtin call
    [tg] Always skip startup files if direct builtin call
    [tg] Avoid some sometimes-redundant startup codepaths

R59 has some major fixes, also introducing breaking changes:

    [tg] Repair out-of-tree builds (noticed by rsc)
    [tg] Work around a glibc on Hurd issue in testsuite
    [komh] OS/2 filesystem mtime granularity is two seconds (as in FAT)
    [tg] Replace while with goto: Coverity was confused
    [tg] Fix invocation of some builtins when external utility absent
    [komh] Improve automatic executable suffix for test builtin
    [tg] Style code, refactor, clean up, optimise
    [tg] Use cached egid in test builtin
    [tg] Make bind builtin output reentry-safe; safety fixes
    [tg] If basename(argv[0]) after leading dash removal begins with an ‘r’ enable restricted shell flag; reported by pmjdebruijn via IRC
    [tg] Fix code example in manpage for how tab completion escapes
    [tg] Match full extglob pattern RHS of [[ string comparison like ksh93
    [tg] Implement which with -a in dot.mkshrc
    [tg] Remove global builtin (use typeset -g)
    [tg] alias, command, whence: Print alias names quoted
    [tg] Implement a new quote-region (Esc+Q) editing command
    [tg] Document all built-in aliases (requested by msiism via IRC) and those aliases and functions shipped in dot.mkshrc; completely overhaul builtin and reserved word documentation, for consistency
    [tg] The manual page now features properly spaced em dashes ☻
    [tg] Document that test x = y doesn’t extglob, only [[ x = y ]] does

R58 contains a lot of fixes and improvements:

    [lintian] hyphen-used-as-minus-sign (on jessie, not later, ‽‽‽)
    [tg] Fix system info gcc dump{machine,version} shell escaping level
    [tg] Document KSH_VERSIONNAME_VENDOR_EXT in Build.sh
    [tg] Be more explicit about the LTO bug exposed by check.t
    [Todd C. Miller] Add -x (file locks) and AIX-specific -r ulimits
    [tg] Handle Midipix as test environment and fix some warnings
    [tg] Fix some Build.sh issues as Mirtoconf is now used by MirCPIO and MagicPoint
    [komh] Improve CRLF to LF conversion
    [komh] Ensure ECHO mode is enabled at startup so read has local echo
    [komh] Let check.pl retain the PERLIO env variable
    [komh] Unbreak nounset-1 test on systems with drive letters
    [komh, tg] Make ulimit-3 test work without |& (that is, incomplete ports, i.e. those with -DMKSH_NOPROSPECTOFWORK)
    [tg] Disable xxx-stat-1 test for now, fails when run as root
    [tg] Drop Build.sh flags -c combine, -c lto
    [Martijn Dekker] Exit 126 on execve(2) failure, not 1 (e.g. E2BIG)
    [tg] Behave set and export/readonly-on-read-only-variables when run with command and command dot, bugreports by Martijn Dekker
    [tg] dot.mkshrc: simplify; enhance (un)setting locale example
    [tg, selk] Catch build errors earlier
    [tg] Add -fno-lto (if GCC is detected) to CFLAGS and LDFLAGS
    [tg] Limit HISTSIZE to 65535, as long pre-announced
    [tg] Unbreak testsuite selftest-tty-absent for lksh
    [tg] Begin work on support for neatcc (needs neatcc to evolve first)
    [tg] Fix possibly not enough aligned access in struct job
    [tg] Support going full setugid by running “set -p” once interactive
    [tg] Document another (arcane, almost nowhere needed) definition
    [tg] Improve code legibility and testsuite reliability and maintenance
    [tg] Speed up trivial += cases (LP#1855167)
    [tg] Some further code and memory optimisation and test coverage
    [tg] Document that += is always string append (LP#1857702)
    [tg] Fix “set -e appears active within eval but isn’t” reported by Martijn Dekker and another bug related to using set ±e inside eval
    [tg] Handle parameter assignment in front of invocations of POSIX-style functions like ksh-style ones and external utilities; cf. Debian #935115
    [tg] Fix bad memory access for invalid syntax (LP#1857828, LP#1857826)
    [Brian Callahan] Update MALLOC_OPTIONS-using testcase for newer OpenBSD
    [tg] Support lacc as compiler (just detecting, no change), thanks Brian
    [tg] Share __IDSTRING with jupp
    [tg] Update string comparison/pattern documentation
    [tg, veedeeh] Document vi command line editing mode state better
    [tg] Add FAQ2HTML.sh to convert mksh.faq to local valid XHTML+CSS
    [tg] Correct backslash expansion documentation; caveat re. 16-bit UCS
    [tg] Fix extra empty field on IFS-NWS trim expansion (Martijn Dekker)
    [tg] Improve code performance, quality, robustness and correctness
    [tg] Allow ${x:n} where n is an identifier (veedeeh)
    [tg] Permit ‘+’ in alias names, but not leading (Aleksey Cheusov)
    [tg] Fix here strings for $@ (LP#1857195), reported by jvdh
    [multiplexd] Add vi mode PgDn, similar to PgUp doing history search
    [tg] Build.sh fixup unreliable test -n/-z
    [multiplexd] Correct documentation of vi mode @c
    [tg] Update to UCD 13.0.0
    [tg] Use nanoseconds in test -nt / -ot (LP#1855325)
2020-05-19 15:20:07 +00:00
gutteridge
70dc83b671 mksh: fix typos in DESCR 2020-02-25 01:02:37 +00:00
bsiegert
eb5142bbe0 Update mksh to R57.
R57 rolls up bugfixes, with few hard changes:

  * [gecko2] Update operating environment reporting for the Macintosh
  * [Martijn Dekker] make ${foo#'bar'} in here document behave like ksh93
  * [Martijn Dekker] quote empty strings for re-entry into shell
  * [tg, G.raud Meyer] Improve documentation, especially for tty states
  * [tg] Protect against entering line editing with bad saved tty state
  * [tg] Fix set -o allexport for arrays (which we apparently do)
  * [tg] Handle lseek(2) returning -1 as pointed out by Coverity Scan
  * [tg] Fix left-padding UTF-8 strings
  * [tg, G.raud Meyer] Fix using the ?-m? flag on the command line
  * [tg] Update to UCD 11.0.0
  * [multiplexd] Fix a segfault using ^W during search in Vi mode
  * [tg] Fix an error message; add a test for controlling tty
  * [tg] Permit unsetting LINES and COLUMNS, for those who need it
  * [tg] Fix manpage bug (RedHat BZ#1612173)
  * [tg] Minor spelling cleanup
  * [tg] Unbreak high-bit7 (n?n-ASCII) heredoc separators (LP#1779179)
  * [tg] Allow dumping high-bit7-char-containing strings in DEBUG mode
  * [tg] Add some testcases for behaviour questions popped up in IRC
  * [tg] Trick a GCC warning, to make up for it ignoring lint(1) hints
  * [tg] Add O_MAYEXEC support for CLIP OS
  * [tg] Make dup-to-self with ksh-style fd?3 closing work; catern via IRC
  * [tg] Add compat glue for newer GNU groff mdoc to the manpages
  * [tg] Trigger EXIT trap after single-command subshells (Debian #910276)
  * [tg] Document set -eo pipefail caveat (LP#1804504)
  * [tg] Fix MKSH_EARLY_LOCALE_TRACKING warning
  * [tg] Document that, when your Unix is broken, GIGO applies (LP#1817959)
  * [tg] Improve error message for inaccessible executables (LP#1817789)
2019-03-10 14:19:59 +00:00
bsiegert
a1869944de Update mksh to 56c.
R56c is a bugfix-only release everyone must upgrade to:

- [komh] Remove redundant OS/2-specific code, clean up others
- [komh, tg] Fix drive-qualified (absolute and relative) DOS-style path support
  in realpath functionality, partially other places
- [tg] Don't substitute ${ENV:-~/.mkshrc} result again
- [tg] Improve OS/2 $PATH (et al.) handling, drive-relative paths
- [tg] Add MKSH_ENVDIR compile-time option for Jehanne and Plan 9
- [tg] Limit nesting when parsing malformed code (Debian #878947)
- [tg] Update wcwidth data with bugfixed script (still Unicode 10; resulting
  values are identical to glibc git master for extant chars)
- [Dr. Werner Fink] Raise some time limits in the testsuite
- [Shamar] Add support for the Jehanne operating system
- [komh] Set stdin to text mode before executing child processes on OS/2
- [komh] Pass arguments via a resonse file if executing a child fails
- [Dr. Werner Fink] Early locale tracking as a compile-time option
- [tg] Fix regressions introduced with new fast character classes
2018-01-21 13:04:05 +00:00
bsiegert
eba00046bc Update mksh to R56b.
R56b is a bugfix-only release everyone should upgrade to:

- [tg] Reference the FAQ webpage
- [panpo, Riviera] Fix documentation bug wrt. Esc+Ctrl-L
- [tg, Larry Hynes] Fix '0' movement in vi mode
- [tg] Replace broken libcs' offsetof macro with MirBSD's

R56 is a bugfix release with some experimental fixes:

- [tg, Seb] Do not apply alias name restrictions to hash/tilde tracking
- [tg] Restore '.', ':' and '[' in alias names ('[[' is still forbidden)
- [tg] Fix accidentally defanged $PATHSEP test
- [tg] On ^C (INTR and QUIT edchars), shove edit line into history
- [iSKUNK, tg] Begin porting to z/OS using EBCDIC encoding, incomplete
- [tg] Redo fast character classes code, adding POSIX and other helpers
- [tg] bind parses backslash-escaped '^' (and '\') as escaped
- [tg] Building with -DMKSH_ASSUME_UTF8=0 no longer causes a known failure in
  the testsuite
- [tg] New test.sh option -U to pass a UTF-8 locale to use in the tests
- [tg] re_format(7) BSD: [[ $x = *[[:\<:]]foo[[:\>:]]* ]]
- [tg, iSKUNK] Use Config in check.pl only if it exists
- [tg] New matching code for bracket expressions, full POSIX (8bit)
- [komh] Exclude FAT/HPFS/NTFS-unsafe tests on OS/2 (and Cygwin/MSYS)
- [tg] Update to Unicode 10.0.0
- [tg, selk] Make readonly idempotent
- [tg, multiplexd] When truncating the persistent history, do not change the
  underlying file, do all operations on the locked one; do not stop using the
  history at all if it has been truncated
- [tg, J?rg] Turn off UTF-8 mode upon turning on POSIX mode
- [Martijn Dekker, Geoff Clare, many on the Austin list, tg] In POSIX mode,
  make the exec builtin force a $PATH search plus execve
- [tg] Fix GCC 7, Coverity Scan warnings
- [tg, Michal Hlavinka] Track background process PIDs even interactive
- [tg] Always expose mksh's hexdump shell function; speed it up by working on
  the input in chunks; use character classes to make it EBCDIC safe
- [tg] Revamp dot.mkshrc default editor selection mechanism
2017-09-02 18:38:54 +00:00
bsiegert
a4391235d3 Update mksh to R55.
R55 is mostly a feature release with summary bugfixes:

  * [komh] Fix OS/2 search_access() and UNC path logic
  * [tg] Undocument printf(1) to avoid user confusion
  * [Jean Delvare, tg] Fix printf builtin -R option
  * [tg] Make ${var@x}, unknown x, fail (thanks izabera)
  * [tg] ${var=x} must evaluate x in scalar context (10x Martijn Dekker)
  * [tg] Fixup relation between lksh and mksh, reduce delta
  * [tg] Improve manpage display; add OS/2 $PATH FAQ
  * [Jean Delvare] Fix bugs in manpage
  * [tg] Review tilde expansion, removing ?odd use of KEEPASN? and introduce
    POSIX ?declaration utility? concept; wait isn?t one
  * [tg] Add \builtin utility, declaration utility forwarder
  * [tg] Make $'\xz' expand to xz, not \0
  * [tg] Use fixed string pooling (requires the above change in host mksh)
  * [tg] POSIX declaration commands can have varassign and redirections
  * [Martijn Dekker] Add typeset -g, replacing homegrown ?global?
  * [Harvey-OS] Disable NOPROSPECTOFWORK, APEX is reportedly fixed now
  * [tg] Display ulimit -a output with flags; improve Haiku
  * [tg] Drop old let] hack, use \builtin internally
  * [tg] Fix padding in Lb64encode in dot.mkshrc
  * [tg] Move FAQ content to a separate, new FAQ section in the manpage
  * [tg] Add new standard variable PATHSEP (?:?, ?;? on OS/2)
  * [Martijn Dekker] Fix LINENO in eval and alias
  * [komh] Fix ?\builtin? on OS/2
  * [tg] Improve (internal) character classes code for speed
  * [tg] Fix: the underscore is no drive letter
  * [tg] No longer hard-disable persistent history support in lksh
  * [tg] Introduce build flag -T for enabling ?textmode? on OS/2 (supporting
    CR+LF line endings, but incompatible with mksh proper)
  * [tg] Merge mksh-os2
  * [tg] Permit changing $OS2_SHELL during a running shell
  * [tg] Fix multibyte handling in ^R (Emacs search-history)
  * [tg] Allow ?typeset -p arrname[2]? to work
  * [tg] Make some error messages more consistent
  * [tg, komh] Disable UTF-8 detection code for OS/2 as unrealistic
  * [tg, sdaoden] Limit alias name chars to POSIX plus non-leading ?-?
  * [tg, Martijn Dekker] Expand aliases at COMSUB parse time
  * [tg] Make ?typeset -f? output alias-resistent
  * [tg, Martijn Dekker] Permit ?eval break? and ?eval continue?
  * [tg] Make -masm=intel safe on i386
  * [tg] Disambiguate $((?)) vs. $((?)?) in ?typeset -f? output
  * [Jean Delvare] Clarify the effect of exit and return in a subshell
  * [tg] Simplify compile-time asserts and make them actually compile-time
  * [tg] Fix ^O in Emacs mode if the line was modified (LP#1675842)
  * [tg] Address Coverity Scan? stuff? now that it builds again
  * [Martijn Dekker, tg] Add test -v
  * [tg] Document set -o posix/sh completely

R54 is a bugfix release with moderate new features:

  * [tg] Simplify and improve code and manual page
  * [tg] Try GCC 5?s new -malign-data=abi
  * [tg] Allow interrupting builtin cat even on fast devices (LP#1616692)
  * [tg] Update to Unicode 9.0.0
  * [Andreas Buschka] Correct English spelling
  * [tg] Handle set -e-related error propagation in || and && constructs
    correctly
  * [tg] Initialise memory for RNG even when not targeting Valgrind
  * [tg] Shrink binary size
  * [Brian Callahan] Improve support for the contemporary pcc compiler
  * [tg] Fix side effects with lazy evaluation; spotted by ormaaj
  * [tg] New flags -c (columnise), -l, -N for the print builtin
  * [Larry Hynes] Fix English, spelling mistakes, typos in the manpage
  * [tg, ormaah] Return 128+SIGALRM if read -t times out, like GNU bash
  * [Martijn Dekker] Install both manpages from Build.sh
  * [Martijn Dekker] Document case changes are ASCII-only
  * [Ronald G. Minnich, Elbing Miss, ?lvaro Jurado, tg] Begin porting to
    Harvey-OS and APEX (similar to Plan 9 and APE)
  * [KO Myung-Hun] More infrastructure for the OS/2 (EMX, KLIBC) port

R53a is a snapshot/feature release:

  * [lintian] Fix spelling
  * [tg] Unbreak multi-line command history broken by history flush
  * [tg] Fix redefining POSIX functions that were Korn functions before
  * [tg, TNF] Fix bounds checks in Vi editing mode
  * [tg] Handle combining characters at end of string or output correctly
  * [tg] Fix ${!#} ${!?} ${!-} (POSIX, prompted by izabera)
  * [tg] Fix shf.c-internal buffer overread on printing digits
  * [J?rg] Fix a typo in the testsuite
  * [arekm] Increase default edit line size (unless MKSH_SMALL)
  * [tg] Improve description of Emacs mode keybindings, especially ^U
  * [tg, arekm, jilles] Abort read builtin in case of read(2) errors
  * [tg, izabera, carstenh] Fix most of the ambiguous corner cases related to $
    {[pfx]var[op[word]]} (${@:-1} still unsupported)
  * [carstenh] Contribute some more testsuite coverage
  * [tg] WDS_TPUTS now emits QCHAR newline reentrant-safe
  * [tg] Fix var=<< implementation (LP#1380389)
  * [tg, FreeBSD] Make XSI test(1) extensions behave as if they were POSIX
  * [tg, izabera] Add $(<<<x) and $(<<EOF?) implementation
  * [tg] Lower minimum screen size accepted as ?sane? from the OS to 4?2
  * [tg, Torsten Sillke] Simplify tilde-expanded parameters
  * [tg, Torsten Sillke] Fix default PS1 for substring matches
  * [tg] Apply defer-builtin-with-arguments logic to realpath builtin
  * [tg] Rework string pooling (own vs. compiler?s) (LP#1580348)
  * [tg] Feature: print -A, prints arguments as characters
  * [tg, izabera] Replace <<< and >>> as ROL and ROR operators with their new ^
    < and ^> spelling as per this proposal
  * [tg, slagtc] Clear-to-EOL under tmux to work around its anti-feature
  * [tg, p120ph37] Remove support for using file descriptors with more than a
    single digit, in preparation for named file descriptors
  * [tg] Correct, but simplify (at the potential cost of more tty I/O than
    strictly necessary, though never redundant and (probably) not more than
    before when it was miscalculated), line clearing and redrawing
  * [slagtc, tg] Implement new evaluate-region editing command Esc+Ctrl-E
  * [tg] Prefer external rename utility over the recovery builtin
  * [tg] Remove redundant full-line redraws
  * [tg, Natureshadow] Fix errorlevel of ?.? (?dot? special builtin) when the
    sourced script does not run any commands, for POSIX compliance
  * [tg] Refactor op tokens and edchars to shave off some more bytes
  * [tg] Fix some bugs in the manpage and some occasional/minor code bugs
  * [tg, Brian Callahan] Mark tests requiring new perl as !need-pass
  * [tg, slagtc] Add $KSH_MATCH and, to make it usable, ${foo@/bar/baz}
  * [tg, Score_Under] Fix bogus patch from OpenBSD: only NULL the global source
    in unwind when actually reclaiming its Area
  * [izabera] Mention in the manpage that integer bases go up to 36
  * [Natureshadow] Fix /= operator broken during refactoring

R52c is a bugfix-only release:

  * [tg] Shave 200 bytes off .text by revisiting string pooling
  * [tg, J?rg] Fix manpage for ditroff on Schillix
  * [tg, wbx] Use sed 1q instead of unportable head(1)
  * [tg] Implement underrun debugging tool for area-based memory allocator
  * [tg] Fix history underrun when first interactive command is entered
  * [tg, bef0rd] Do not misinterpret ?${0/}? as ?${0//?, fixes segfault
  * [tg, St?phane Chazelas] Fix display problems with special parameters
  * [tg, St?phane Chazelas] Catch attempt to trim $* and $@ with ?, fixes
    segfault (Todd Miller did this in 2004 for ${x[*]} already, so just sync)
  * [Martijn Dekker] Fix ?command -p? with -Vv to behave as POSIX requires
  * [tg, jilles, Oleg Bulatov] Fix recusive parser with active heredocs
  * [tg] Flush even syntax-failing or interrupted commands to history
  * [tg, fmunozs] Fix invalid memory access for ?'\0'? in arithmetics
  * [tg] Explicitly reserve SIGEXIT and SIGERR for ksh
  * [tg, izabera] Catch missing here documents at EOF even under ?set -n?
  * [kre, tg] Document Austin#1015 handling (not considered a violation)
  * [tg, fmunozs] Fix buffer overread for empty nameref targets
  * [tg] Fix warnings pointed out by latest Debian gcc-snapshot
  * [tg, Martijn Dekker] Document upcoming set +o changes
  * [Martijn Dekker] Expand testsuite for command/whence

R52b is a strongly recommended bugfix-only release:

  * [tg] Recognise ksh93 compiled scripts and LZIP compressed files as binary
    (i.e. to not run as mksh plaintext script)
  * [tg] Document that we will implement locale tracking later
  * [tg] Add EEXIST to failback strerror(3)
  * [jilles] Make set -C; :>foo race-free
  * [tg] Don?t use unset in portable build script
  * [tg] Plug warning on GNU/kFreeBSD, GNU/Hurd
  * [tg] Document read -a resets the integer base
  * [J?rg] Fix manpage: time is not a builtin but a reserved word
  * [J?rg, tg] Make exit (and return) eat -1
  * [tg] parse ?$( (( ? ) ? ) ? )? correctly (LP#1532621), Jan Palus
  * [tg] reduce memory footprint by free(3)ing more aggressively
  * [tg] fix buffer overrun (LP#1533394), bugreport by izabera
  * [tg] correctly handle nested ADELIM parsing (LP#1453827), Teckids
  * [tg] permit ?read -A/-a arr[idx]? as long as only one element is read; fix
    corruption of array indic?s with this construct (LP#1533396), izabera
  * [tg] Sanitise OS-provided signal number in even more places
  * [tg] As requested by J?rg, be clear manpage advice is for mksh
  * [tg] Revert (as it was a regression) POSIX bugfix from R52/2005 related to
    accent gravis-style command substitution until POSIX decides either way
  * [tg] Handle export et al. after command (Austin#351)
  * [tg] Catch EPIPE in built-in cat and return as SIGPIPE (LP#1532621)
  * [tg] Fix errno in print/echo builtin; optimise that and unbksl
  * [tg] Update documentation, point out POSIX violation (Austin#1015)

R52 is a strongly recommended bugfix release:

  * [_0bitcount] Move moving external link from mksh(1) to the #ksh channel
    homepage linked therein
  * [tg] Make setenv ?set -u?-safe and fix when invoked with no args
  * [tg] Make ?typeset -f? output reentrant if name is a reserved word
  * [oksh] Zero-pad seconds in ?time? output to align columns
  * [tg] Check signals and errorlevels from OS to be within bounds
  * [komh, tg] Quote and document ?;? as PATH separator in some places
  * [oksh, tg] Simplify code to call afree() even if arg is NULL
  * [tg] Fix tree-printing and reentrancy of multiple here documents
  * [tg] Work around LP#1030581 by permitting exactly one space after
  * [tg, oksh] Code quality work, cleanups
  * [tg] New code for here documents/strings with several bugfixes
  * [tg] Stop using issetugid(2) for ?p checks, wrong tool for the job
  * [tg] Reintroduce some -o posix changes lost in 2005, plus fixes
  * [tg] Make ?source? into a built-in command
  * [tg] Drop ?stop? alias, lksh(1) functionality to auto-unalias
  * [tg] Fix \u0000 ignored in $'?' and print
  * [tg] Improve portability of Build.sh
  * [Jilles Tjoelker] Improve portability of testsuite
  * [tg] Fix tilde expansion for some substitutions (izabera, Chet, Geoff)
  * [tg] Improve reparsing of ((?) |?) as ( (?) |?)
  * [Martijn Dekker] Fix test(1) not returning evaluation errors
  * [tg] Fix ${*:+x} constructs (carstenh)
  * [tg] Make (( ? )) into a compound command (ormaaj)
  * [tg] Repair a few parameter substitution expansion mistakes
2017-04-13 14:36:46 +00:00
agc
30b55df38e Convert all occurrences (353 by my count) of
MASTER_SITES= 	site1 \
			site2

style continuation lines to be simple repeated

	MASTER_SITES+= site1
	MASTER_SITES+= site2

lines. As previewed on tech-pkg. With thanks to rillig for fixing pkglint
accordingly.
2017-01-19 18:52:01 +00:00
wiz
73716d23de Bump PKGREVISION for perl-5.24.0 for everything mentioning perl. 2016-07-09 06:38:30 +00:00
agc
168a7e5915 Add SHA512 digests for distfiles for shells category
Existing SHA1 digests verified, all found to be the same on the
machine holding the existing distfiles (morden).  Existing SHA1
digests retained for now as an audit trail.
2015-11-02 23:00:34 +00:00
bsiegert
19b7622b9a Update mksh to R51. From Changelog:
[tg] OpenBSD sync: handle integer base out of band like ksh93 does
[tg] Protect standard code (predefined aliases, internal code, aliases and functions in dot.mkshrc) from being overridden by aliases and, in some cases, shell functions (i.e. permit overriding but ignore it)
[tg] Implement GNU bash's enable for dot.mkshrc using magic aliases to redirect the builtins to external utilities; this differs from GNU bash in that enable takes precedence over functions
[tg] Move unaliasing an identifier when defining a POSIX-style function with the same name into lksh, as compatibility kludge
[tg] Korn shell style functions now have locally scoped shell options
[tg, iSKUNK] Change some ASCII-isms to be EBCDIC-aware or pluggable
[tg, Ypnose] Mention lksh build instructions on manpage and website
[tg] Overhaul signal handling; support new POSIX NSIG_MAX, add sysconf(_SC_NSIG) as a later TODO item
[tg] Fix signal bounds (1 <= signum < NSIG)
[tg] Improve manual pages, especially wrt. standards compliance
[tg, iSKUNK] Initial EBCDIC work for dot.mkshrc
[tg, iSKUNK] Add list of z/OS signals to Build.sh
[tg] Work around the sh(1) backslash-newline problem by moving the code triggering it out of *.opt and into the consumers
[colona] Bind another well-known ANSI Del key in the Emacs mode
[tg] Fix ${foo/*/x} pattern checks, spotted by izabera
[carstenh] Fix error output of cd function in dot.mkshrc
[tg] read partial returns in -N and timeout cases
[tg] Fix $LINENO inside PS1; spotted by carstenh
[tg] Ensure correct padding of at least 2 spaces in print_columns
[tg] Note issues with nested complex parameter expansions and follow-up bugfixes to expect
[OpenBSD] Some language fixes in documentation; comments
[tg] Reimplement multi-line command history (Debian #783978) + fixes
[Martijn Dekker] Fix command -v for "shell reserved words"
[tg] In dot.mkshrc make use of latest feature: local options
[tg] Fix ""$@ to emit a word
[tg] Change cat(1) hack to look first and not ignore builtin
[KO Myung-Hun] Begin porting mksh to OS/2
[komh, tg] Some generic minor bugfixes from OS/2 porting
[tg] Document mknod(8) isn’t normally part of mksh(1)
[tg] Quote arguments to : in build/test scripts as well
[tg] Add cat(1) hack for printf(1)-as-builtin: always prefer external
[tg] Explicitly use binary mode for any and all file I/O in stock mksh
[Ilya Zakharevich] Use termio, not termios(4), on OS/2
[tg] Set edchars to sane BSD defaults if any are NUL
[tg] Implement support for PC scancodes in Vi and Emacs editing mode
[komh] OS/2 uses ; as PATH separator plus support drive letters
2015-07-13 04:41:52 +00:00
wen
079d536444 Update to R50f
Upstream changes:
R50f is a required security and bugfix release:

[tg] Add a patch marker for vendor patch versioning to mksh.1
[tg] SECURITY: make unset HISTFILE actually work
[tg] Document some more issues with the current history code
[tg] Remove some unused code
[tg] RCSID-only sync with OpenBSD, for bogus and irrelevant changes
[tg] Also disable field splitting for alias 'local=\typeset'
[tg] Fix read -n-1 to not be identical to read -N-1
[tg] Several fixes and improvements to lksh(1) and mksh(1) manpages
[tg] More code (int  size_t), comment and testsuite fixes
[tg] Make dot.mkshrc more robust (LP#1441853)
[tg] Fix issues with IFS='\' read, found by edualbus
[enh, tg] Fix integer overflows related to file descriptor parsing, found by Pawel Wylecial (LP#1440685); reduce memory usage for I/O redirs
[tg] Document in the manpage how to set ±U according to the current locale settings via LANG/LC_* parameters (cf. Debian #782225)
[igli, tg] Some code cleanup and restructuring
[tg, oksh] Handle number parsing and storing more carefully

R50e is a required bugfix release:
[tg] Add more tests detailing behaviour difference from GNU bash
[tg] Introduce a memory leak for x=<< fixing use of freed memory instead, bug tracked as LP#1380389 still live
[tg] Add x+=<< parallel to x=<<
[tg, ormaaj, jilles] POSIX "command" loses builtin special-ness
[tg] Fix LP#1381965 and LP#1381993 (more field splitting)
[jilles] Update location of FreeBSD testsuite for test(1)
[Martin Natano] Remove dead NULL elements from Emacs keybindings
[tg, Stéphane Chazelas, Geoff Clare] Change several testcases for $*/$@ expansion with/without quotes to expected-fail, with even more to come ☹
[tg] Fix miscalculating required memory for encoding the double-quoted parts of a here document or here string delimiter, leading to a buffer overflow; discovered by zacts from IRC
[RT] Rename a function conflicting with a MacRelix system header
[tg] Use size_t (and ssize_t) consistently, stop using ptrdiff_t; fixes some arithmetics and S/390 bugs
[tg] Remove old workarounds for Clang 3.2 scan-build
[tg] Remove all Clang/Coverity assertions, making room for new checks
[tg] Fix NSIG generation on Debian sid gcc-snapshot
[tg] Make a testcase not fail in a corner case
[tg] Fix issues detected by GCC’s new sanitisers: data type of a value to be shifted constantly must be unsigned (what not, in C…); shebang check array accesses are always unsigned char
[tg] Be even more explicit wrt. POSIX in the manpage
[tg] Fix shebang / file magic decoding
[tg] More int → bool conversion
[tg] Let Build.sh be run by GNU bash 1.12.1 (Slackware 1.01)
[Stéphane Chazelas, tg] Fix here string parsing issue
[tg] Point out more future changes in the manpage
[tg] Call setgid(2), setegid(2), setuid(2) before seteuid(2)
[tg] Fix spurious empty line after ENOENT “whence -v”, found by Ypnose
[tg] Optimise dot.mkshrc and modernise it a bit
[tg] Use MAXPATHLEN from <sys/param.h> for PATH_MAX fallback
[tg] Some code cleanup and warnings fixes
[tg] Add options -a argv0 and -c to exec
[jsg] Prevent use-after-free when hitting multiple errors unwinding
[tg] Fix use of $* and $@ in scalar context: within [[ … ]] and after case (spotted by Stéphane Chazelas) and in here documents (spotted by tg@); fix here document expansion
[tg] Unbreak when $@ shares double quotes with others
[tg] Fix set -x in PS4 expansion infinite loop
2015-04-30 13:32:59 +00:00
joerg
ed22163fe1 Correctly sanitize environment. 2014-11-27 13:38:15 +00:00
wiz
cda18437be Remove pkgviews: don't set PKG_INSTALLATION_TYPES in Makefiles. 2014-10-09 14:05:50 +00:00
bsiegert
fa77d553e0 Security: Update mksh to 50d.
R50d is a required bugfix release:

- [Goodbox] Fix NULL pointer dereference on “unset x; nameref x”
- [tg] Fix severe regression in field splitting (LP#1378208)
- [tg] Add a warning about not using tainted user input (including from
  the environ(7)ment) in arithmetics, until Stéphane writes it up nicely

R50c is a security fix release:

- [tg] Know more rare signals when generating sys_signame[] replacement
- [tg] OpenBSD sync (mostly RCSID only)
- [tg] Document HISTSIZE limit; found by luigi_345 on IRC
- [zacts] Fix link to Debian .mkshrc
- [tg] Cease exporting $RANDOM (Debian #760857)
- [tg] Fix C99 compatibility
- [tg] Work around klibc bug causing a coredump (Debian #763842)
- [tg] Use issetugid(2) as additional check if we are FPRIVILEGED
- [tg] SECURITY: do not permit += from environment
- [tg] Fix more field splitting bugs reported by Stephane Chazelas and
  mikeserv; document current status wrt. ambiguous ones as testcases too
2014-10-07 18:51:02 +00:00
bsiegert
b9b15ad635 Update mksh to R50b, prodded by tg.
Changelog:
R50b is a recommended bugfix release:

* [Ypnose] Fix operator description in the manpage
* [tg] Change all mention of “eglibc” to “glibc”, it is merged back
* [Colona] Fix rare infinite loop with invalid UTF-8 in the edit buffer
* [tg] Make more clear when a shell is interactive in the manpage
* [tg] Document that % is a symmetric remainder operation, and how to
  get a mathematical modulus from it, in the manpage
* [tg, Christopher Ferris, Elliott Hughes] Make the cat(1) builtin also
  interruptible in the write loop, not just in the read loop, and avoid
  it getting SIGPIPE in the smores function in dot.mkshrc by terminating
  cat upon user quit
* [tg] Make some comments match the code, after jaredy from obsd changed
  IFS split handling
* [tg] Fix some IFS-related mistakes in the manual page
* [tg] Document another issue as known-to-fail test IFS-subst-3
* [tg] Improve check.pl output in some cases
* [tg, Jb_boin] Relax overzealous nameref RHS checks

R50 is a recommended bugfix release:

* [tg] Fix initial IFS whitespace not being ignored when expanding
* [tg] MKSH_BINSHREDUCED no longer mistakenly enables brace expansion
* [tg] Explain more clearly Vi input mode limitations in the manpage
* [tg] Improve error reporting of the check.pl script (which needs a
  maintainer since I don’t speak any perl(1), really), for lewellyn
* [tg] Use $TMPDIR in test.sh for scratch space
* [tg, Polynomial-C] Check that the scratch space is not mounted noexec
* [pekster, jilles, tg] Use termcap(5) names, not terminfo(5) names, in
  tput(1) examples, for improved portability (e.g. to MidnightBSD)
* [tg] Avoid C99 Undefined Behaviour in mirtoconf LFS test (inspired by
  Debian #742780)
* [tg] Fix ${!foo} for when foo is unset
* [tg] Improve nameref error checking (LP#1277691)
* [tg] Fix readonly bypass found by Bert Münnich
* [Ryan Schmidt] Improved system reporting for Mac OS X
* [nDuff] Explain better [[ extglob handling in the manpage
* [tg] Remove arr=([index]=value) syntax due to regressions
* [tg] IFS-split arithmetic expansions as per POSIX 201x
* [OpenBSD] Add more detailed Authors section to manpage
* [tg] Fix set ±p issue for good: drop privs unless requested
* [tg] Improve signal handling and use a more canonical probing order
* [tg] Fix return values $? and ${PIPESTATUS[*]} interaction with set -o
  pipefail and COMSUBs
* [enh] Detect ENOEXEC ELF files and use a less confusing error message
* [tg] Update to Unicode 7.0.0
* [tg] Shut up valgrind in the $RANDOM code
* [tg] Use -fstack-protector-strong in favour of -fstack-protector-all
* [tg] Fix access-after-free crash spotted by Enjolras via IRC
2014-09-07 12:46:31 +00:00
bsiegert
c12b74a0dc Update mksh to R49.
R49 is a recommended bugfix release:

- [tg] dot.mkshrc: fix two issues with the cd wrapper
- [tg] Unbreak set +p (wider issue still to be addressed)
- [Steffen Daode Nurpmeso] Use WCONTINUED with waitpid(2)
- [millert] Add proper suspend builtin handling tty(4) and setpgrp(2)
- [tg] Sanitise and slightly optimise control character handling
- [tg] Add O_BINARY to all open(2) calls for OS/2 kLIBC support
- [tg] Generate option strings for shell, set, ulimit at compile time
- [Steffen Daode Nurpmeso] Drop ISTRIP termios(4) mode
- [tg] Mention negative history numbers, octals in the manpage
- [tg] Make check.pl work with Perl < 5.6.1 again
- [tg] Detect getsid(2) and skip the oksh suspend builtin otherwise
- [tg] Document that set -o noclobber is unsafe for tempfiles
- [tg] Update to Unicode 6.3.0
- [RT] Restore some portability
- [tg] Fix parsing positional argument variable names
- [tg] Sprinkle a few __attribute__((__pure__)); fix warnings
- [tg] Fix build on OSX: always use our wcwidth code; only use our strlcpy(3)
  code if the OE doesn’t provide one (prompted by jonthn on IRC)
- [tg] Optimise sh -c to exec even in MKSH_SMALL
- [tg] Use new BAFH for hashing
2014-01-26 08:57:32 +00:00
bsiegert
d14aaec565 Update mksh to R48b.
Changes:

R48b is a minor bugfix update:

[tg] Fix display issue with multi-line prompts and SIGWINCH

R48 is a small but important bugfix update:

[tg] dot.mkshrc: unbreak hd(1) function in UTF-8 mode
[Jens Staal, tg] Improve buildability on Plan 9 and support kencc
[tg] Clean up and improve build process and testsuite
[Michael Langguth] Add multi-layer ICO file from mksh/Win32
[tg, Steffen Daode Nurpmeso] Fix interactive shell exiting on ^C or
syntax error when the EXIT pseudo-signal trap was set (to anything)
[tg, Daode] Display longer command excerpts in job control
[tg] Rewrite Emacs mode display window sliding calculation code
[tg] dot.mkshrc: “doch” now keeps standard input
[tg] Reduce memory usage and improve comments and documentation

R47 is a bugfix everyone must upgrade to:

[tg] Do not accidentally remove lksh.1 for in-srcdir builds
[tg] Fix post-build non-‘-Q’ output for lksh
[tg] Silence some configure-time warnings for clang-3.2 and GCC
[tg] Prevent recursion loops for namerefs; found by ormaaj
[tg] Replace wcwidth code by mine based on Unicode 6.2.0
[tg, Alexander Polakov] Fix quoting in word part of ${var+word} etc.
when the expression is in a quoted brace or a here document
[tg] Fix some compiler warnings; improve sig{,handler}_t detection
[tg] Keep SIGCHLD blocked in some more semi-critical code paths
[tg] Fix uninitialised variable causing random nōn-numerical input to be
accepted and acted upon in the select built-in command
[tg] No longer chown(2)/chmod(2) the -T tty(4) argument
[tg] Don’t fork(2) if the -T tty(4) argument begins with ‘!’; eliminates
the need for things like oneit_line/cttyhack/etc. on Linux
[jca] Fix “for var in; do” to not be interpreted as “for var; do”
[tg] Use %zu for printing size_t (ipv %lu with casting around)
[tg] use ${SIZE-size} for lewellyn’s cross
[fgsch, espie, millert, tg] Write more testcases
[millert] POSIX specifies that for && and || lists, only the exit status
of the last command matters for “set -e”; fix and document
[millert] check.pl: Add -T flag to set the tmpdir; use mkstemp(3) and
mkdtemp(3) instead of $$ in /tmp for tempfiles
[jca] Make $(<nonexistent) behave like $(cat nonexistent)
[tg] Let shf_open return an errno; display why file wasn’t read
[tg] Finally decide on regression-39 desired outcome (sync with AT&T
ksh93 and GNU bash --posix as well as mksh behaviour)
[tg] Fix post{in,de}crement in not evaluated side of e.g. ternary operator (LP#1187729)
[tg] Fix “set -x” problems; add “set +o inherit-xtrace” (LP#1179287)
[tg] Simplify some code
[tg] Fix segfault related to mixing funsub/valsub and comsub

R46 delivers these changes:

[tg] dot.mkshrc: prevent lksh from running it
[tg] Add the lksh manual page to the mksh distribution
[tg] Make both lksh and mksh interpret numbers with a leading digit zero
(‘0’) as octal precisely iff “set -o posix” is active
[tg] Point out the octal digit and the integer arithmetic differences
from POSuX verbosely in the manual pages (point people who need octals
to “set -o posix” and who need longs to lksh) and elaborate on the
horrors of ISO C Undefined Behaviour which is allowed to delete all your
data
[tg] Unbreak “set -o” (list flags) in lksh on LP64 machines
[tg] Implement Emacs mode PgUp as Vi insert mode Cur↑ for Yofuh
[tg] Allow setting both “set -o sh” and “set -o posix”, if done in the
same command; shuffle around compatibility levels (mksh/lksh, with -o
sh, with -o posix) again; permit a /bin/sh to set either or both
[tg] Sync lksh manual page with the exact code ifdefs
[tg] Change more use of signed integer to use unsigned instead
[tg] Implement “set -o pipefail” like AT&T ksh93 and GNU bash do
[tg] dot.mkshrc: provide hd(1) in Pure mksh™ for fallback
[tg] Implement VALSUBs (value substitutions): ${|REPLY=foo;}
2013-08-18 10:00:12 +00:00
wiz
d2ca14a3f1 Bump all packages for perl-5.18, that
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package

Like last time, where this caused no complaints.
2013-05-31 12:39:57 +00:00
bsiegert
c1f91161ba Update to mksh-45.
* [tg] Make “set -x” print the commands run in escaped form
* [tg] PS4 in dot.mkshrc is now timestamped
* [tg] The &> GNU bash I/O redir is no longer parsed in -o posix, -o sh modes,
  lksh (breaks valid scripts)
* [tg] Implement ${ …;} more efficiently (deleted-open files)
* [tg] For shf, %#s (if you can get it past GCC’s printf format attribute)
  calls print_value_quoted, ignoring field width and precision
* [tg] Catch “typeset =” (regression) with better error message
* [tg, Tonnerre Lombard] add “doch” alias to dot.mkshrc which just repeats the
  last input line with sudo(8)
* [tg] Use unsigned integers for all calculations, to avoid ISO C “Undefined
  Behaviour” (and implementation-defined behaviour) throughout (most of) the
  code; emulate signed integer arithmetics using unsigned; not-lksh only
* [tg] Emulate signed modulo naïvely, for correct sign of the result
* [tg] Add <<< and >>> for ROL and ROR (rotate left and right, respectively)
  operations, <<<= and >>> assignments; bitwise AND the RHS of a shift/rotate
  op with 31 (not for lksh)
* [tg] Remove a warning by working around a workaround found in dietlibc which
  works around a bug in broken software such as GNU tar (really!)
* [tg] Correct and simplify list and categorisation of built-in commands as
  POSIX special and “everything else” plus a flag to keep assignments
* [tg] Handle ((foo)) as “let]” internally to avoid a conflict with
  user-defined functions called let (LP#1156707)
* [tg] Clean up the code
2013-04-30 17:58:44 +00:00
hiramatsu
f361c49520 Add checksum for patches/patch-mksh.1. 2013-03-27 16:36:42 +00:00
joerg
7692e65337 Kill the .Dt override and restore installation a normal man page. 2013-03-23 12:18:19 +00:00
bsiegert
4c8be7300f Update to R44. The manpage is incompatible with mdocml, so switch to the
separately distributed catman page.

   R44 contains these bugfixes:
     * [tg] "$@" always generates words; bug spotted by engla in IRC
     * [tg] Optimise print_columns display to use the screen space better

   Please upgrade to mksh R43 (or stick on R41c) because of#
     * [tg]  Do not permit $'#' and $"#" in anything that looks like a
       string,  as  old  scripts, like ncurses', depend on behaviour not
       guaranteed by POSIX regarding unescaped dollar signs there
     * [dalias] Make detection of function prototypes more reliable
     * [tg] Quote setenv arguments for eval properly in dot.mkshrc
     * [tg] Validate parameter names for typeset, export, etc.
     * [tg] Provide a classic BSD echo builtin for /bin/sh on MidnightBSD
     * [tg]  When  generating  Makefrag.inc  put  list of check_categories
       inside
     * [tg]  Actually  test  all  [197]echo(1)  flavours  and  MidnightBSD
       /bin/sh hacks

   mksh R42b and R41c fix regressions:
     * [tg] Correctly initialise memory (Debian #700604)
     * [tg] LP#1104543 fix was too strict (Debian #700526)

   mksh R42 brings back the release\ {early,often} scheme:
     * [tg] Make -DMKSH_DISABLE_EXPERIMENTAL a nop again
     * [tg]   Quell   some   LLVM+Clang   warnings;   overhaul  scan-build
       [198]assert(3)s
     * [tg, RT] Bunch of portability and build system fixes
     * [tg]  Re-enable  ${ precmd;} in dot.mkshrc and fix it to retain the
       errorlevel
     * [RT]  Port  to  Minix-vmd,  QNX 4, Watcom C; begin porting to SunOS
       4.1.1, Xenix, ISC (Interactive) Unix
     * [tg] Prefer const-clean sys_errlist[] to [199]strerror(3)
     * [tg] Permit $"#" and $'#' everywhere except in the body of here
       documents that are not here strings
     * [tg]  Use full recursive parser for double-quoted here strings, and
       reuse code between here strings and here documents
     * [tg]   #ifdef   DEBUG_LEAKS   free  all  fds  and  memory  on  exit
       (LP#1106116)
     * [tg]  Don't  close stdout/stderr with redirections, dup /dev/null
       instead,  always,  both  in  dot.mkshrc  and the testsuite, it does
       break!
     * [tg]  Handle ${ #;} like functions in that local and return DWIW;
       use  it for the big chunk in $PS1 to avoid [200]fork(2)ing (at cost
       of tempfiles; dot.mkshrc is a sample, adjust to your needs)
     * [tg] Document invalid ${a/b/c} patterns in manpage (Debian #698678)

   mksh R41b is a bugfix-only release off a stable branch:
     * [tg] Fix [201]gettimeofday(2) detection at build time (warning)
     * [RT, tg] Build.sh: catch non-working dash printf builtin
     * [chris2,   dalias,   tg]   Remove  musl  libc  workaround  and  use
       _GNU_SOURCE  which  they  kindly  aliased  to _ALL_SOURCE, which is
       implemented now
     * [tg] Fix getn and some cases of possible array bounds trespasses
     * [chris2, dalias, tg] Use -fno-asynchronous-unwind-tables with GCC
     * [tg]    Fix   a   few   warnings   from   libFirm/cparser   (mostly
       -Wsign-compare)
     * [tg]   Correct   mistake  when  doing  hashtable  lookup  collision
       resolution
     * [tg]  Fix  running the ERR and EXIT traps in situations with set -e
       and/or eval (also closes Debian #696823)
     * [tg] Fix "command shift", reported by «ormaaj:#!/bin/mksh»
     * [Torsten Sillke] Unbreak linking on AIX (remove -qextchk)
     * [tg]  Fix  regression  wrt  lists  in  functions  and  "set -e"
       (LP#1104543)

   mksh R41 brings a number of bugfixes and new features:
     * [tg] Drop "set ±o arc4random" (deprecated in R40)
     * [tg] Drop old Build.sh -long-options (deprecated in R40)
     * [tg]  Change  the  internal  hash  algorithm  from  Bob  Jenkins'
       one-at-a-time     to     its     NUL-counting,     always-changing,
       better-avalanching  MirOS  variant  [202]NZAAT  (with feedback from
       ciruZ; 75% fill level is reasonable; names tbd in Mirkev/MirJSON)
     * [tg] Use $'#' for non-ASCII parameters for re-entry printing
     * [tg] Use sane spelling of "read-only" consistently
     * [tg] Improve tree -DDEBUG functions (internal/developer use)
     * [tg] Reduce stack usage a bit; speed up hash tables at size cost
     * [tg] MKSH_SMALL no longer implies -fno-inline
     * [tg] Support optional seed in ${parameter@#seed} for security
     * [tg] New Build.sh environment configurable: LDSTATIC (empty)
     * [tg]  Improve LTO effect by always adding our copies of distributed
       utility  function sources when linking statically (i.e. LDSTATIC is
       not empty)
     * [tg]  Drop  deprecated hack for lines beginning with an exclamation
       mark
     * [tg] No longer interpret numbers beginning with a 0 digit as octal
     * [tg] Attempt to use -fwrapv on more compilers
     * [tg, RT] Better portability to 386BSD, Debian 0.91, ancient Unic#s
     * [tg] No longer use [203]mkstemp(3) or [204]tempnam(3) functions, do
       our own
     * [tg] Fix some bugs in the manual page and Build.sh
     * [tg] Add MKSH_NO_CMDLINE_EDITING, MKSH_DISABLE_TTY_WARNING
     * [RT] Port to Coherent UNIX
     * [tg]  Enable  some options by default for some ports, for instance,
       since  BeOS  can never have a controlling tty, the option disabling
       that warning
     * [tg] Some bugfixes, prompted by RT and Valgrind
     * [RT] Disable [205]sigsuspend(2) on Syllable Desktop
     * [tg] Fix several issues with typeset -p (LP: #993847)
     * [RT] Detect lcc and apply inline fix, e.g. for use with libc5
     * [tg] If klibc, set -DMKSH_NO_LIMITS and check for sigsuspend fix
     * [tg] Fix some issues found by Coverity and some found while fixing
     * [tg]  Build.sh options: -t target-filename (instead of mksh); -L to
       build a legacy mksh, current changes:
          + different $KSH_VERSION "LEGACY KSH" instead of "MIRBSD KSH"
          + purely  for  running  ksh88 and pdksh scripts; no command line
            editing
          + use traditional "set -- $(getopt #); echo $?" mode always
          + do not keep file descriptors private
          + parse leading-zero-digit numbers as octal
          + no mksh extension -T
          + use "long", not "int32_t", for arithmetics
     * [tg] fix trimming with positional parameters (Debian #48453)
     * [tg] ensure that case end tokens are not mixed up (Debian #220272)
     * [tg] make alias definitions in mksh -c work (Debian #517009), hack
     * [tg] Apply speed improvements and add MKSH_SMALL_BUT_FAST
     * [tg] Fix CONSERVATIVE_FDS use-before-definition bug
     * [tg] Correct two regressions when tab-completing (LP: #1025843) and
       fix  bugs  in  the  same  code  wrt.  completion  display and other
       expansions
     * [tg] Make quoted output of "typeset -p" AT&T ksh93 compatible
     * [tg] Implement ${foo@Q} like ${foo:Q} in [206]make(1)
     * [tg] Remove some unused code; more int # bool conversion
     * [tg] Fix using here documents in COMSUB etc. (LP: #1030581)
     * [tg] Fix ulimit builtin usage to match what limits we actually know
     * [tg] Allow overriding /etc location, experts only (LP: #1039713)
     * [tg] Update to Unicode 6.1.0
     * [tg, Todd Miller] Avoid changing [207]ps(1) output by accident
     * [tg,  ft,  Christian  Neukirchen]  Detect  zsh  2.5.02/NeXTstep for
       Build.sh
     * [tg]  Detect  musl-gcc  wrapper, define _BSD_SOURCE there, which is
       totally bogus, but musl, just like dietlibc, gets it wrong
     * [tg] Improve compile-time assertions
     * [tg] Repair select builtin without any choices given
     * [tg] Add -DMKSH_GCC55009 hack to avoid some compile-time assertions
       and  introduce arith-mandatory in check.t to substitute for missing
       that compile-time check; will change
     * [tg] Rewrite lots of code to not rely on -fwrapv so much
     * [tg] Build.sh: Fix [208]flock(2) detection on GNU/Linux
     * [Andrew Kudryashov] Manpage: fix default for HISTSIZE
     * [tg] Add debugging aid (split-screen mechanism using GNU screen)
     * [Andrew  Kudryashov]  Manpage,  Website:  point out correct mailing
       list
     * [tg, Andrew Kudryashov] Fix ~/nonexistant tab completion
     * [tg] Optimise sh -c "[^]\t\n"-$&-*;-?[\\`|]*" to exec, inspired by
       Jilles Tjoelker (-DMKSH_DISABLE_EXPERIMENTAL to ostracise)
     * [tg] Fix $? inside eval (RedHat BZ#865121)
     * [tg]  Implement  ksh93 feature ${ foo;} (using tempfiles this time;
       exclude with -DMKSH_DISABLE_EXPERIMENTAL in R41)
     * [tg] Run SIGINT check more reliably in the cat builtin (LP#1058815)
     * [tg] Handle ^C in here documents, COMSUB, arithmetics (LP#1069428)
     * [tg] Make dot.mkshrc usable with "set -o nounset" / "set -u"
     * [tg, Clint Adams] Clean up and optimise the error handling code
     * [tg] Fix and add some checks in the testsuite
     * [tg] Sort list of variables in the source code when possible
     * [tg] Add $BASHPID (for ormaaj) and $EPOCHREALTIME
     * [tg] Improve documentation, #ksh IRC channel homepage
     * [tg, RT] Minix 2 also doesn't have [209]gettimeofday(2) # check for
       it
     * [tg] Fix an input command line editing display redrawing issue
     * [tg]  Track  the tty to keep $COLUMNS and $LINES up-to-date after a
       SIGWINCH even in scripts
2013-03-11 19:47:38 +00:00
asau
5c2dd9e784 "user-destdir" is default these days 2012-09-11 23:19:33 +00:00
bsiegert
3911e59334 Update mksh to R40f.
mksh R40f fixes a critical bug as well as this:
 [tg, RT] Implement fcntl(2)-based advisory locking as an alternative
  iff flock(2) is not found (LP: #912691); keep trying in the face of EINTR
 [tg] Fix severe regression wrt. initialising tty(4) states
 [tg] Improve testsuite, build-time checks and debugging output
 [tg, RT, winstonw] Improve portability to BeOS (works), Cygwin (good),
  Dell UNIX (works somewhat, but not with gcc), LynxOS (works somewhat),
  NeXTstep (works but not OpenStep 4.2), USL C compiler, SCO OpenServer (good),
  SCO UnixWare (good), Plan 9 (still broken), Syllable Desktop (broken?)
 [tg] rlim_t is supposed to be unsigned
 [tg] Some code, warning and spelling cleanup
 [tg] New Build.sh environment configurable: AWK (= awk)
 [tg, DONG-DONG YANG] Add safety net in the Emacs line editing code
 [tg] No longer rely on env(1), id(1), printf(1) in the testsuite, and
  strcasecmp(3), strcasestr(3), strncasecmp(3) in the code
 [tg, stsc, RT] Reduce system requirements of check.pl further

mksh R40e is another must-have bugfix update:
 [tg, Jilles Tjoelker] skip readonly check in unevaluated ternary twig
 [tg, anonymous] fix all remaining ifs.sh testcases
 [tg] No longer try to build with GCC and C99 extensions
 [tg, Jilles Tjoelker] Do not expand aliases in COMSUB twice
 [tg] Honour UTF-8 multi-byte character boundaries when doing partial
  tab-completion insertions (LP: #909025) to fix RedHat BZ#745702
 [tg] Fix R40 (BZ#496791) regression with IOACT in TIF (LP: #907224)
 [tg, ft] Darn persistent history code worst offenders (LP: #906914)
 [tg] Fix some gc-sections, GCC and Clang/scan-build warnings/issues
 [tg, 28C3] dot.mkshrc hash functions: partially address LP: #909818
 [tg] Only compile divmod(0x80000000, -1) code in when not unneeded
 [tg, RT] Move mirtoconf checks and INCLUDES_ONLY parts of
  sh.h around to ensure prerequisites are always available
 [tg, RT, ir0nh34d] Pass mksh.exe to testsuite, if such thing is generated,
  and deal with Cygwin passing just "mksh" in argv[0] in such cases
 [tg] Imply -DMKSH_ASSUME_UTF8=0 on MSYS; optimise checks
 [tg, Jb_boin] Fix regression introduced in R35b by jaredy's security
  patch where TTIME trashed a non-TCOM string argument (e.g. in TFOR)
 [tg] Better support for tcc; fix GCCism that accidentally crept in
 [tg] Deal with UTF-8 when reporting jobs' commands
 [RT] Add SkyOS to known OS list
 [tg, RT] Support Minix in its variants Minix 3 and Ninix 3 better
 [tg] Drop some Android-specific unused code (lsmod builtin)
 [tg, RT, lewellyn] Support QNX and various versions of BSD/OS better
 [tg] More code cleanup and new developer-only debugging functions
 [tg, Andrew Kudryashov] Fix some tab completion related escaping bugs
 [tg, draenog] Honour COLUMNS and LINES from the environment in scripts
 [tg, winstonw] The sleep built-in utility now blocks more signals
 [tg] Warn when using another deprecated function that will be removed
2012-05-13 18:46:35 +00:00
bsiegert
d18c97fb44 Update mksh to R40d.
Changes: essentially bugfixes.

  # [tg] New test.sh `-f' option (same as `-C fastbox')
  # [tg] Drop using set -o noglob inside pushd/popd/dirs
  # [tg] Use += more in dot.mkshrc and keep strings shorter
  # [tg] Correct interworking between local and set -A
  # [tg] Fix out-of-bounds memory access on strings of 32 KiB length
  # [tg] MKSH_DISABLE_DEPRECATED (for integrators)
  # [tg, Jilles Tjoelker] test(1) built-in behaves exactly as POSIX says
  # [tg] Move compile-time assertions to Build.sh from misc.c#ifdef DEBUG
  # [tg] Invocation documentation is at the bottom of Build.sh
  # [tg] test.sh: verbosely look for perl(1) interpreter to use
  # [tg] New tests for integers (base 1#36, base unspecified, base OOB)
  # [tg] Correct error paths for typeset -n global state
  # [tg] Deprecate interpreting "010" as octal number, will go
  # [tg] Improvements re. integer handling; more explicit manpage text
  # [tg] Do not use caddr_t on Linux, so dietlibc stops bitching
  # [tg, Jilles Tjoelker] Catch division/modulo overflow 0x80000000/-1
  # [tg] Emacs mode ^O regression fix when the fetched lines are edited
2012-02-06 20:23:15 +00:00
bsiegert
83bfffeb63 Update mksh to 40c.
* [tg, Wouter Verhelst] Fix ${foo%\?} in -o sh
* [jonthn, Snader_LB] Fix spelling mistakes
* [cnuke] Fix bugs spotted during porting to OPENSTEP
* [tg, jg71] Unbreak building stristr with MKSH_ASSUME_UTF8 defined
* [tg] Fix most of the issues Jerker Bäck encountered on Interix
* [tg] Wrap access(2) as it may return false positive for X_OK on root
* [OpenBSD] Upper bound Emacs mode command repeat by input line length
* [tg] Improve CPPFLAGS mangling in Build.sh
* [Snader_LB] Several comment, documentation and website fixes/updates
* [tg] Avoid identifiers and cpp(1) macros with two underscores in a row,
  and those with a trailing underscore; they are reserved for the OS
* [tg] Fix accidental behavioural change wrt some built-in parameters
* [RT, Chris “ir0nh34d” Sutcliffe] Port to MSYS
* [tg, Markus Duft, Bruno Haible] Interix select(2) bug workaround
* [tg] Manpage fixes
* [tg] Deprecate the “command line begins with ‘!’ for fc -e -” wbx hack
* [tg] Promote x=(a b); x+=(c d) to a core mksh(1) feature
* [tg] Testsuite fixes for Hurd, MSYS; warning fixes for dietlibc
* [tg] Fix R40 regression misparsing $(case x in (x) :; esac)
2011-11-22 19:37:34 +00:00
bsiegert
acf44f339d Update mksh to R40.
Many changes and improvements. For a full list, see
http://www.mirbsd.org/mksh.htm#clog .
2011-07-09 15:42:27 +00:00
is
9c5e6fdd19 Update to mksh-39c on suggestion from Thorsten Glaser. 2010-05-28 12:26:49 +00:00
jmmv
9a786011ff Bump PKGREVISION to reflect the recent change in pkginstall/shells to use
etcutils to update /etc/shells.
2010-05-07 12:02:43 +00:00
ahoka
2aaae24f73 mksh R39 evolved into these through various means:
[tg] Shut up a bogus gcc warning during configuration process
[tg] Spell AT&T consistently in the source code
[tg] Tweak mksh(1) manual page, from wbx@ and «lewellyn:#ksh»
[tg] dot.mkshrc: fix $@ vs. $* mix-up
[tg] dot.mkshrc: add DJB cdb hash function
[tg] Sync with oksh: fix Vi editing mode word erase handling, again
[tg] Skip whitespace between POSIX style shell function name and its definition parenthesēs during detection if an alias of the same name already exists to be more robust (Debian Closes: #535970)
[tg] Build system improvements for ACK and nwcc, both on Debian sid
[tg] Fix spelling error in changelog discovered by Lintian
[tg] Aligh “set -o nounset” / “set -u” behaviour with future POSIX standard, as discussed with GNU bash maintainers, David Korn from AT&T ksh93, and The Open Group; prompted by use in Debian; Closes: #539538
[tg] add an unsupported way to make printf(1) a builtin
[tg] Build system and regression test code and comment improvements: better and more comments matching reality better; more reliability w.r.t. passed CPPFLAGS; more of the MKSH_SMALL changes may be overridden, all of them are now enumerated on the webpage; fixed some breakage; portability
[tg] MKSH_NOPWNAM and MKSH_SMALL will now both disable the ~fac/ (homedir) expansion code wholly if defined, not just getpwnam(3) calls
[tg] shells without job control no longer define the standard “stop” and “suspend” aliases (they are pointless anyway); regression tests know
[tg] use system RCS ID macros on MirBSD if decent enough
[tg] shut up bogus gcc 4.5/trunk warnings caused by over-optimisation
[tg] restore ANSI C compilability broken in R38 (speed up, even)
[tg] use memcpy(3) ipv strlcpy(3) if possible and safe and secure
2009-12-05 13:31:18 +00:00
joerg
f0bbd1517d Remove @dirrm entries from PLISTs 2009-06-14 18:13:25 +00:00
ahoka
6db67b0c01 mksh R38c contains the following fixes:
*  [tg] Fix regression tests on OSes insisting on a shebang (Cygwin)
    *  [Sean Boudreau] QNX 6.4.2 ed(1) is said to have the bugs fixed
    *  [tg] Build.sh bugfixes: -DMKSH_BINSHREDUCED can also
        be given without -DMKSH_SMALL; allow HAVE_REALPATH=x and
        HAVE_REVOKE=x in the environment to re-enable these even if
        -DMKSH_SMALL disables them by default, like mknod already did
    *  [tg] -DMKSH_ASSUME_UTF8=0 skips the environment checks, like
        -DMKSH_ASSUME_UTF8=1, but disables the utf8-mode
    *  [tg] Apply some more KNF – style(9) – to the source; clean it up
        and further optimise for small size
    *  [OpenBSD] Fix segfaults caused by missing check for end of input
        in the tokeniser on “let --” and other input
    *  [OpenBSD] Make Vi editing mode ^W behave like Emacs mode’s
    *  [tg] If no killpg(3) is avaiable, use kill(2) and hope it works
    *  [tg] -DMKSH_NO_LIMITS skips trying to build the ulimit code
2009-06-14 11:51:41 +00:00
ahoka
ec83379c75 Update to mksh R38b:
mksh R38b fixes the following problems:


    *  [André Wösten] Add __NO_EXT_QNX to avoid picking up the wrong
        waitfor() from <libutil.h> in (while porting to) QNX 6.4

    *  [tg] Plug memory corruption issue introduced in R38

    *  [tg] Amend dot.mkshrc with a base64 en-/decoder in shell

    *  [tg] Import a manpage fix via OpenBSD from Alan R. S. Bueno


mksh R38 comes with these changes and fixes applied:


    *  [tg] Improve regression test output debugging

    *  [tg] Fix <libutil.h> prerequisites on MidnightBSD in mirtoconf

    *  [tg] Mention that RedHat BZ#496791 cannot currently be fixed in the
        manpage by discouraging use of apostrophes in comments in comsubs; add
        appropriate (expected-fail) regression tests

    *  [tg] Sync with OpenBSD ksh (mostly a no-op)

    *  [James Butler] Add search-history-up and search-history-down keybindings
        (tcsh-like) to the Emacs command line editing mode

    *  [tg] Bind new search-history-{up,down} to ANSI PgUp and PgDn keys

    *  [tg] Document ANSI default keybindings (↑↓←→ Home End Del PgUp PgDn)
        in the mksh(1) manual page as well

    *  [tg] Optimise internal UTF-8 handling code for size and reusability

    *  [tg] Incompatible change: ${foo:1:2} and ${#foo} now
        operate on characters, not on bytes. Characters are octets (set +U)
        or (utf8-mode) MirOS OPTU-8 multibyte characters (set -U)

    *  [tg] Improve regression tests relating to ${foo:1:2} and
        ${#foo} and let wc=1#x and utf8-mode

    *  [tg] Use per-file copyright notices, move global text to manpage

    *  [tg] Expose new MKSH_MIDNIGHTBSD01ASH_COMPAT ifdef; change it to
        only trigger if FPOSIX (or MKSH_BINSHREDUCED and /bin/sh)

    *  [tg] Remove already-dead “#if 0” style debugging code

    *  [tg] Change some code into a more portable fashion, optimise

    *  [tg] Allow [[ $foo ]] (ksh93 extension) mentioned by pgas

    *  [tg] Clean up mksh and the contributed arc4random.c for some
        conversion, enum and other warnings for gcc-snapshot trunk r147610

    *  [tg] Ensure no function uses more than 768 bytes of stack either

    *  [tg, wbx] Add extension to make “!string” lines work like in GNU bash
2009-06-03 13:46:03 +00:00
ahoka
13684d66b6 mksh R37c provides these follow-up fixes:
.[tg] Improve præprocessor detection/work in Build.sh
.[tg] Decouple MKSH_CONSERVATIVE_FDS from MKSH_SMALL
.[tg] Enable MKSH_CONSERVATIVE_FDS by default on Minix 3
.[tg] Work around the (in-)famous ACK "const" bug
.[tg] Optimise structure alignment and padding; Closes: #522778
.[tg] Retain LOCPATH (for glibc locale) in check.pl
.[tg] Document, simplify and clean up the code better
.[tg] Use mirbsd.org eMail addresses consistently

mksh R37b comes with the following fixes on top:

.[tg] Clean up build system and dot.mkshrc some more
.[tg] Add getrusage(2) implementation using times(3) if none found
.[tg] Add jobless mode (for Minix 3, Plan 9, .)
.[tg] Detect the Amsterdam Compiler Kit in the build system
.[tg] If no RLIM_INFINITY don.t try to do ulimit
.[tg] Work around gcc4 strict warnings vs. broken system headers
.[tg] Work around systems with mmap(2) but no munmap(2)
.[tg] Fix (disallow) bind key macro recursion (instead of beeping and going into an endless loop), allow multi-line bind key macros (mostly from Alexander Hall), remove dead code (the beeping) and optimise
.[tg] Add (commented out, undesired, standards compliance breaking) compatibility code to MidnightBSD 0.1 /bin/sh for ctriv
.[tg] Clarify the mksh(1) manual page even more
.[tg] Port to Minix 3 + GCC

mksh R37 has major standards compliance improvements:

.[tg] Rename -o utf8-hack to -o utf8-mode
.[tg] Fix spacing mode error (pasto) in the mdoc(7) format manpage
.[tg] Implement $((#.)) unsigned arithmetic calculation, needed for arc4random_uniform(3)-in-korn-shell implementation
.[tg] Really preserve LD_LIBRARY_PATH in check.pl
.[tg] New Build.sh option .-combine. for building mksh(1) at once with .-fwhole-program --combine. (gcc4, llvm-gcc4) if available
.[tg] Always set COLUMNS and LINES trying as hard as we can, using TIOCGWINSZ even if used without FTALKING, and with the sane 80x24 default if the ioctl(2) fails
.[tg] Handle _POSIX_VDISABLE being undefined (e.g. Linux/klibc)
.[tg] <sys/file.h> is only required for flock(2)
.[tg] Fix multi-column output routine for the corner case if the screen is less wide than one output column; 10x Gábor Gergely
.[tg] Fix ${foo/@(%)/\\x} in UTF-8 mode (utf_widthadj for control characters U+0080.U+009F is slightly broken; this fix shifts the brokenness into the command line editing mode only)
.[tg] Introduce mksh_ari_t and mksh_uari_t internal types to limit arithmetics to 32 bit on all systems; currently depending on the already-used standard int32_t and uint32_t types. Future expansion to 64 bit possible. Document that shell integer variables use this type.
.[tg] The variables PGRP, PPID, RANDOM and USER_ID are now unsigned
.[tg] Fix two off-by-ones breaking PS1 ending with a newline; bug reported by Matthias Diener
.[tg] Just pass through C1 control characters for now
.[tg] Code and internal interfaces cleanup
.[tg] Regression test fixes for Cygwin env(1) being unsorted
.[tg] Replace the memory allocator by something equally simple and homegrown but optimised for use with mksh and free checking
.[tg] Import a couple of minor fixes (e.g. spelling) from oksh
.[tg] Fix problems with "set -e" for real; from oksh, Closes: #518359
.[tg] In "set -o posix" mode, have limited echo(1) to improve standards compliance; the exact feature set is open for discussion, e.g. with pkgsrc® people; for now, only -n as first arg
.[tg] Make test builtin operator precedence consistent; from oksh
.[tg] Revamp and fold and enhance the regression tests
.[tg] Document somewhat surprising behaviour in mksh(1) better; here: [ x -eq y ]; for gps23 from #ksh
.[tg] Reduce memory consumption by allocator simplification
.[tg] Fix bugs spotted by DEC ucode cc (ULTRIX) and gcc 1.42 (BSD/OS)
.[laffer1] Make mksh the default /bin/sh in MidnightBSD
2009-04-13 19:48:34 +00:00
ahoka
04f2d4187d Update to version R36.
Major changes:

* Digital UNIX (DEC OSF/1) V2.0 (MIPS) is now supported using the DEC C and ucode toolchain. (We could not run the testsuite, though.)
* The ‘-Q’ option to Build.sh is gone without replacement.
* A new option can be enabled by adding -DMKSH_BINSHREDUCED to $CPPFLAGS, intended mostly for Debian. This option adds extra code to determine whether mksh(1) is called as sh or -sh and switch to “set -o posix” mode if so, disabling brace expansion and some security features, because legacy scripts, such as debconf, depend on such reduced functionality /bin/shs.
* Input lines beginning with an IFS character of IFS white space are no longer pushed into the history. Some other, less surprising, changes were also made to both Emacs and Vi command line editing modes.
* The arc4random.c contributed file is now stored with the RCS version number appended, and has been updated.
2008-10-25 18:58:13 +00:00
ahoka
51e345d96d Update mksh to R35b.
mksh R35b comes with the following bug fixes:
IRIX also has no UTF-8 locale at all, confirmed by Elias Pipping
Fix regression test suite for MKSH_SMALL
Bring in latest changes from oksh (OpenBSD ksh, not DeliLinux crap)
Fix abuse and unsafe use of str_save() and str_nsave()
Optimise the implementations of str_save() and str_nsave()
If MKSH_AFREE_DEBUG is defined, guard against afree()ing a pointer which has not been allocated from the given pool, from Todd C. Miller
Fix attempt to free a pointer to stack (function-local) storage when redefining a function containing a call to the “time” built-in, discovered by Elias Pipping, patch by Jared Yanovich, help from Todd C. Miller
Protect a little against people not running “./test.sh -v” but calling it with, for instance, GNU bash (as homsn did…)
Honour $PERL environment variable in test.sh, improve scanning for Perl, do not use potentially undefined $^O, print Perl version
Add <sys/types.h> as <ulimit.h> requirement (dietlibc)
Work around bug in BSD/OS 3.1 /bin/ksh (PD KSH v5.2.8 96/08/19)
Add regression tests from OpenBSD’s <bsd.regress.mk> suite
Use better CPPFLAGS for AIX, Minix 3 (from pdksh)
Expose the “s ≠ NULL” str_[n]save_() API and use it where the string can never be NULL (local stack storage), from gcc-4.2 warnings
Clean up pointer-to-integer-cast warnings in the mirtoconf process

mksh R35 comes with helluva changes:
Simplify and refactor the ulimit builtin, partially from oksh
Some style cleanup; use appropriate integer types
Fix a bug in table (e.g. kill -l, tab completion) display: the width of non-ASCII characters is now honoured in the utf8-hack mode
Improve handling of invalid UTF-8 in certain areas, and multibyte (UTF-8 / CESU-8) in general
When using “typeset -Z«n»” on an integer variable with a base other than ten, zero-pad the value instead of the base – pdksh, oksh, zsh, and AT&T ksh93 are wrong here; GNU bash doesn’t even have typeset
Improve parsing of “set +o” output where done (dot.mkshrc, check.t)
Improve regression tests
Support for base-1 numbers: in non-utf8-hack mode, ‘1#x’ means the same as the ASCII code for ‘x’ (e.g. 78hex), where ‘x’ is any single octet (byte); in utf8-hack mode, ‘x’ is either a valid and minimalistically encoded UTF-8 multibyte character in the range 0000‥FFFD, or a single octet with no trailing octets (bytes), which will then be converted as if it were an ASCII value, or, if bit7 is set, be mapped into the PUA range of EF80‥EFFF assigned by CSUR for this purpose; this mapping is, in both cases, bidirectional; the planned base-0 number support is not possible with the code, so use base-1 (with utf8-hack disabled, or & 0xFF) instead (while it is recommended to parse only single octets, there is a regression test showing correct and safe multibyte parsing, which however is error-prone to implement and thusly not recommended) – “genial” replaced@TNG, “this sounds fun” ggergely, agreed bsiegert@ and others
Pull in more current versions of supplied files; use Unicode 5.0
Clean up unused definitions in build system; document MKSH_CLS_STRING
Remove advertising clause from copyright file; while we’d be pleased to be mentioned if something contains our code, tg@ will no longer enforce the requirement to advertise with that specific formula, and we’d prefer if people remember the OpenHAL vs ath5k incident and that they cannot simply change licencing of existing code; patches sent to the MirOS Project for inclusion shall be accepted if they’re agreed to match this licence
Simplify dot.mkshrc sample file: licence is merged into the main copyright file; AT&T ksh93 compatibility was improved
Fix a display problem regarding fullwidth characters (e.g. CJK)
Set the “C” locale in Build.sh for tool execution; otherwise, certain OEs behave strange; thanks to Adam “replaced” Hoka for spotting
Use en_US.utf8 as UTF-8 locale for the testsuite for now
If setlocale(LC_CTYPE, "") is not available, look at the environment variables ourselves – brings UTF-8 support to poor OSes
Remove some now-dead code; speed up configuration process; shrink
Default to no setlocale(3) due to stubbed or missing locale support on GNU/Cygwin, OpenBSD, OSF/1 in Build.sh; a few more that are quite unlikely to have a UTF-8 locale: BSD/OS, Interix, Minix, PW32, Ultrix, AT&T UWIN; default to always UTF-8 on Plan 9
Fix for testsuite unexpected failure if running as root in one case
Initialise all shell integer variables (OPTIND, PPID, RANDOM, SECONDS, TMOUT) to base 10
Reintroduce from mksh pre-R24 shell integer variable PGRP set to the PID of the process group leader via getpgrp(2)
New shell integer variable USER_ID set to the geteuid(2) and used by dot.mkshrc to speed up logins, saves a spawn of id(1), mentioned by and realisation planned with Andreas "gecko2" Gockel
Fix dot.mkshrc tilde replacement in both $PS1 and the pushd/popd/dirs implementation when the home directory is empty, the root directory, or ends with a slash (disable replacement in that case)
Support dietlibc, force it into providing a BSDish caddr_t
Do not use LDFLAGS and LIBS while compiling with -c
Add realpath(3) builtin, to further speed up logins and chdirs
Optimise the code somewhat by making use of possible assumptions
Set the “C” locale in test.sh as well to quell warnings
Split the regression tests that use locale between en_US.utf8 and en_US.UTF-8, since not all OSes support either one, and make only HP-UX and GNU use the latter
Fix kill, mknod(8) builtin usage msg, from Igor Sobrado via oksh
Use proper ptrdiff_t casts for pointer arithmetics, inspired by an oksh commit from Federico Schwindt
Remove check category “pdksh” from check.t and test script
Improve Darwin, OSF/1, HP aCC, SUNpro version reporting
Support GNU bash “&>” extension, even better than they do, suggested by Lukas “smultron” Upton from MidnightBSD
Basic support for LLVM+clang in the build system with experimental “ccc” compiler driver; llvm-gcc worked as-is before already
Better support for contributed arc4random.c file
Do not spin if unlink(2) fails on $HISTFILE, from Decklin Foster
Dump the perl(1) $^O variable in test.sh to logs
Pull in latest changes from oksh
Allow white space between a here string indicator and the string, accidentally discovered by twkm (#ksh, freenode)
Allow fd specifications outside the 0‥9 range for I/O redirections, and bounds check them to be lower than the FDBASE definition, currently still 10 if MKSH_SMALL, 24 otherwise (unportable)
Improve the regression test suite: for one test, we had a bizarre constraint telling it won’t work on UWIN, which was based upon false assumptions, but Tru64 would fail it since its cat(1) unexpectedly outputs some error messages (fix by closing stderr for cat); another test would unexpectedly print no error message on Solaris (fix by making the error message optional in the perlre(1) used)
Switch back to en_US.UTF-8 for glibc, Debian can do both, Mandriva fails on en_US.utf8 (XXX no libc5 auto-detection to disable it)
2008-10-06 21:22:31 +00:00
wiz
aaf474cc3a Update to R33d:
No changes in mksh R33c except for Ultrix support. None in R33d.

In mksh R33b, much more compilers are detected, even if not all of
them are supported. The OE (OS and CC/LD) versions are now dumped
too. Instead of #error, forced link failures are now used as the
mechanism to auto-detect some things in the target environment.
Features are now much better detected, and some annoying warnings
don't show up any longer due to this.  Less tools are required to
build.

Please be reminded that you should run ./test.sh -v inside an
environment with /dev/tty available (as device node) and usable
(e.g. use script(1) or GNU screen if you're doing auto-builds
detached from controlling terminal). Use -v to see failures.

No surprises in mksh R33 either, but the build system now gives
more detailed output on the version actually built, to aid tracking
down FTBFSen (build errors) with access to only the build logs.
Regression tests now work with Intel's compiler on SLES too, which
requires a custom LD_LIBRARY_PATH formerly stripped by the script.
2008-04-17 05:55:50 +00:00
bjs
7ac931559a Update from version R30 to R32, with myriad changes:
R32:
     * Make checks for symbol declarations compile checks instead of link
       checks, as the binding may not succeed due to different symbol types,
       for instance on AIX, if the declaration does not match
     * Widen the range of array indices to [0..2^3ý-1], with negative values
       being mapped into the high-bit31 range for simplicity
     * Fix the pipeline-as-coprocess internal error
     * Do not require certain integer types to be defined any more
R31d:
     * Support pcc (the ragge version of the Portable C Compiler)
     * Add pushd/popd/dirs functions (csh) and precmd/chpwd hooks (zsh) to
       dot.mkshrc which now requires readlink(1) with -f; requested by many
       (e.g. some Gentoo users; XTaran of symlink.ch)
     * Enable colour escapes in dot.mkshrc since almost nobody groks how to
       do it right from the manual
     * Remove -DMKSH_NEED_MKNOD checks from Build.sh, people should use the
       HAVE_MKNOD environment variable
     * Implement parallel make in Build.sh
     * Fix another busy-loop spinning problem introduced by an icc warning,
       thanks to spaetzle@freewrt.org for keeping to bug me to look for it,
       as it affected GNU/Linux most, followed by Solaris, rarely BSD
     * Improve standard integer type detection in Build.sh
     * Cleanups in code, build script and manual page
R31b:
     * Fix typo (blsk -> bksl) in check.t test naming
     * Autoscan for uint32_t, u_int etc. presence
     * Fix some memory leaks, mostly by NetBSD(R) via OpenBSD
     * The "unset" builtin always returns zero, even if the variable was
       already unset, as per SUSv3 (reported by Arkadiusz Miskiewicz via
       pld-linux -> oksh)
     * In tab-completion, escape the question mark, reminded by
       cbiere@netbsd.org, via oksh
     * Fix a busy-loop problem, Debian #296446 via oksh
     * Fix a few display output problems in the build script
     * Shut up some gcc warnings on Fedora; beautify some code
     * Support OSF/1 with gcc2.8, thanks to Jupp Schugt
     * Fix gcc4 detection of __attribute__() on non-SSP targets
R31:
     * Support the TenDRA compiler (possibly also Ten15, not tried)
     * Begin supporting Fabrice Bellard's Tiny C Compiler (tcc on Debian
       cannot link due to duplicate symbols in GNU libc, thus unfinished)
     * Improve some mirtoconf checks (most notably, mknod(2) and macros)
     * Add new emacs editing command "clear-screen" (ESC ^L) as requested by
       D. Adam Karim <archite@midnightbsd.org>
     * Support building for MidnightBSD
     * Add new shell alias "source", semantics like the GNU bash builtin
     * Add new shell option "set ño arc4random", controlling whether rand(3)
       or arc4random(3) is used for the $RANDOM value, use
       arc4random_pushb(3)
     * Add new builtin "rename" (just calls rename(2) on its arguments)
     * Fix the inofficial OpenBSD port, from D. Adam "Archite" Karim, 10x
     * Disable the less(1) history file by default (privacy issues) in the
       sample dot.mkshrc file; mention other things in etc_profile
     * Fix a syntax error in Build.sh checking for TenDRA
2007-11-23 07:58:57 +00:00
rillig
d49c1dac9c Removed the MD5, SHA256 and TIGER checksums. How did they get in here? 2007-08-18 16:47:48 +00:00
jlam
096522cddc Update shells/mksh to version 30. Changes from version 29.6 include:
* If the basename of argv[0] starts with "sh", activate FPOSIX early,
  preventing some typical ksh aliases from being defined.

* If FPOSIX, don't pre-define aliases (except integer and local) to
  benefit operating environments that never heard of the great Korn Shell.

* Support x=(a b c) bash-like array initialisation
* Support ${foo:2:3} bash-like substring expansion

* Don't try to execute ELF, a.out, COFF, gzip or MZ binaries, e.g.
  mksh /bin/sh.

* Prefer well-known signal names to alphabetically earlier ones

* Fix a bug delivering ERR and EXIT pseudo-signals to traps combined
  with "set -e".

Update from mirabilos#pkgsrc with small fixups by me.
2007-08-07 19:38:11 +00:00
joerg
ac24d53756 Maintainer/author update to mksh-R29f to fix a regression in the last
version. Some other small bugfixes and portability fixes are included
as well. From Thorsten Glaser.
2007-06-20 17:20:45 +00:00
joerg
d8a79343a1 Update to mksh-R29e. Fixes a number of display bugs, cursor positioning
bugs and issues shown by Coverity Prevent. From Thorsten Glaser.

Add DESTDIR support.
2007-05-23 11:02:32 +00:00
wiz
6e2c35c083 pkglint cleanup; update HOMEPAGE/MASTER_SITES.
From Sergey Svishchev in private mail.
2007-02-22 19:01:13 +00:00
joerg
f260bb8026 Import mksh. From Thorsten Glaser in private mail.
From DESCR:
mksh is the MirBSD enhanced version of the Public Domain Korn
shell (pdksh), a bourne-compatible shell which is largely si-
milar to the original AT&T Korn shell.  It includes bug fixes
and feature improvements in order to produce a modern, robust
shell good for interactive and especially script use.
2006-09-15 13:00:37 +00:00