Upstream changes:
-----------------
=== v0.9.16 14/08/2013 ===
* Added support to login script. Thank you Laurent Debacker for the patch.
* Fixed auto-complete failing with "-"
* Fixed bug where forbidden commands still execute if strict=1
* Fixed auto-completion complete of forbidden paths
* Fixed wrong parsing &, | or ; characters
* Added urandom function definition for python 2.3 compat
* Corrected env variable expansion
* Add support for cd command in aliases
* Split lshellmodule in multiple files under the lshell directory
* Fixed check_secure function to ignore quoted text
* Fixed multiple spaces escaping forbidden filtering
* Fixed log file permissions 644 -> 600
* Added possibility to override config file option via command-line
* Enabled job control when executing command
* Code cleanup
=== v0.9.15.2 08/05/2012 ===
* Corrected mismatch in aliaskey variable.
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;}
are replaced with .include "../../devel/readline/buildlink3.mk", and
USE_GNU_READLINE are removed,
* .include "../../devel/readline/buildlink3.mk" without USE_GNU_READLINE
are replaced with .include "../../mk/readline.buildlink3.mk".
- Bump version 0.3.14 to 0.12.
- Add LICENSE= as gnu-gpl-v2.
patches/patch-a[ab]
- comment added from old cvs log
Following lines are recent changes from ChangeLog. For full
ChangeLog, see:
https://launchpad.net/debian/+source/posh/+changelog
--------
posh (0.12)
* Fix shell flag handling, broken since 0.9.1. closes: #707778.
posh (0.10.2)
* Fix "nostrip" build. closes: #674703.
* Fix Italian Language-Team email address. closes: #660020.
* Don't segfault when bi_errorf(NULL) is called. closes: #674701.
* Bump to Standards-Version 3.9.3.
posh (0.10) unstable; urgency=low
* Do not treat a bad signal passed to the trap builtin as a fatal/syntax error.
posh (0.8.5) unstable; urgency=low
* Apply bugfix from mksh overhauling the code for substitutions
such as ${foo:-bar} and "${foo+bar}" for standards compliance
and pull the test cases that go with it.
* Bump to Standards-Version 3.8.4.
* Switch to 3.0 (native) source format.
---------
to fix segmentation fault just after invocation, at least on
NetBSD/amd64 6.1, which is reported as PR pkg/47917.
The problem was also reported by gcc (4.5.3) as:
main.c: In function 'main':
main.c:206:15: warning: assignment makes pointer from integer without a cast
At following location:
203 char *simplified;
....
206 simplified = canonicalize_file_name(current_wd);
to address issues with NetBSD-6(and earlier)'s fontconfig not being
new enough for pango.
While doing that, also bump freetype2 dependency to current pkgsrc
version.
Suggested by tron in PR 47882
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.
Should patch the configure script to respect the environment setting
of CC_FOR_GETHOST (or CC_FOR_BUILD or something), but this is less
work and will do for now.
Patch it up to use compile-tests rather than run-tests in autoconf
for many of its tests (OS-independently). Teach it about the few
remaining properties for NetBSD in particular.
ok agc
* [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
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
Changelog:
Changes since 5.0.0
-------------------
Numeric constants encountered in mathematical expressions (but not other
contexts) can contain underscores as separators that will be ignored on
evaluation, as allowed in other scripting languages. For example,
0xFFFF_FFFF, or 3.141_592_654.
"functions -T" turns on tracing for the specified function(s) only,
similar to "functions -t" except that tracing is turned off for any
functions called from the specified one(s) that don't also have the -t
or -T flag.
In file completion, the recursive-files style can be set to an array of
patterns to match against "$PWD/". In any matched location, it is
possibly to complete files in arbitrarily deep subdirectories without
needing to type the directory prefix. See example in the zshcompsys
manual.
The _user_expand completer now allows expansion functions in the
user-expand files to return a string in REPLY that will be used to name
the set of expansions returned.
Adam Hoka and hugor.
fish is a user friendly command line shell for UNIX-like operating
systems, written mainly with interactive use in mind. It differs
from other shells in that it only provides as few commands as
built-ins as possible and has a daemon which allows it to have
shared variables and command-line history between shell instances.
It also features feature-rich tab-completion and has command-line
syntax highlighting.