History log of /external/mksh/src/main.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c2036115102d80c026b70846812a42204522f9ac 13-Apr-2017 Sandeep Patil <sspatil@google.com> install copy of shell in vendor partition

This is to be used by vendor processes. Particularly, vendor shell
scripts that get launched as init services. The shell is restricted from
running as interactive mode in SEPolicy. Unless it is launched from rooted
system shell. The change also adds the ability to override the default
$PATH regardless of the environment.

Bug: 36463595
Test: Boot sailfish with new shell and ensure all init services exit
with status 0

Change-Id: I1eaf2c8a8f6905caf00d53e067add67eaea00e09
Signed-off-by: Sandeep Patil <sspatil@google.com>
/external/mksh/src/main.c
966dd55b233982d9657c50b971cfa754d0315c19 09-Dec-2016 Elliott Hughes <enh@google.com> Upgrade to mksh R40.

From the release notes...

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

I've continued to disable the cat, realpath, and sleep builtins,
and added print to the list (now I've realized it's unrelated to
the print on the desktop).

Bug: N/A
Test: manual
Change-Id: Iead4c1b572c6f288b2ab2b884125dcb606f1e356
/external/mksh/src/main.c
77740fcd3dfcd2a78a8ad0ea0f0314dd6b23ecb6 13-Aug-2016 Elliott Hughes <enh@google.com> Upgrade to mksh R53a.

Note that we skipped R52c because it wouldn't build with clang (thanks to
the "Shave 200 bytes off .text by revisiting string pooling" change).

From the release notes:

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

Change-Id: Ife475b25acae5a85277757cfe9f14c6575eac0cd
/external/mksh/src/main.c
fc0307d88e2ab13777f102dc63c0d1c968dc8bb2 03-Feb-2016 Elliott Hughes <enh@google.com> Upgrade to mksh R52b.

From the release notes:

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

Change-Id: I3d875b5c648c60cc6203c964f11d8cbd42648d9c
/external/mksh/src/main.c
96b43632c2aa206ac1ec0eb70b34847d58d52633 17-Jul-2015 Elliott Hughes <enh@google.com> Upgrade to mksh 51.

Bug: http://b/22413333
Change-Id: Id86d5bf463af540b84d03a7b8fe092d23702f414
/external/mksh/src/main.c
b27ce95e41e941ad22b3dc392d8328251d3a057e 21-Apr-2015 Elliott Hughes <enh@google.com> Upgrade to mksh 50f.

Bug: http://b/20101805
Change-Id: Ic311851b31217517f6c201b5ec68a0668577eddf
/external/mksh/src/main.c
50012061ca3ad8e8a7f88c72130a5e22d797897e 11-Mar-2015 Elliott Hughes <enh@google.com> Upgrade to mksh 50e.

Change-Id: I341673d83c67f83761aa02c8372da6bbc419286f
/external/mksh/src/main.c
56b517d46cdf4f6ccd6b62b207110e2afc3db30b 06-Oct-2014 Elliott Hughes <enh@google.com> Upgrade to mksh 50c.

Bug: 17814343
Change-Id: I06cbd6e9ef127c6a654d201ebfb6005cbb2ed3b0
/external/mksh/src/main.c
737fdce098f804459a925438e48dd711c31bbc9e 07-Aug-2014 Elliott Hughes <enh@google.com> Upgrade to mksh 50.

Bug: 16569301
Change-Id: I0560d52066198e25d3f0e5f3e4b0b7a5cd4f60b4
/external/mksh/src/main.c
811a575c0f6a5ef00a921d14c1830ef5ae1bd796 25-Jul-2013 Thorsten Glaser <tg@mirbsd.org> Update to mksh R48

Change-Id: I4d1bef9bf8ddc7899cfb32a6f2fa9e6f632bc53f
/external/mksh/src/main.c
c2dc5def5e2273bb1d78b4ba032a3903dd0f980c 19-Feb-2013 Thorsten Glaser <tg@mirbsd.org> Update mksh to R43 (formal release, from tarball)

The files in src/ are just the unmodified mksh release .tgz
and is Not a Contribution to Android, it’s the upstream code
project. ChangeLog: https://www.mirbsd.org/mksh.htm#clog

Changes, other than upstream mksh code:
• update Copyright years
• sync with moving to a different AOSP project and other AOSP changes
• mkmf.sh: add test compilation mode
• be conservative in filedescriptor usage
• don’t compile the $MirOS$ RCS IDs into the binary to save space
• enable UTF-8 mode, to match reality
• help memory leak debugging by adding -DDEBUG_LEAKS
• update rest of mkmf.sh to work with updated AOSP and mksh
• use ro.product.device property as default hostname in mkshrc
(originally submitted by John Michelau <john.michelau@motorola.com>)
• do not export PS1 in mkshrc (cross-shell developers agreed on this)
• add “more” function to mkshrc to get a simplistic pager
• add “hd” and “setenv” functions to mkshrc for better UX
• mention Launchpad as upstream bugtracker as comment in mkshrc
• change TMPDIR to /data/local/tmp for now, as /sqlite_stmt_journals is gone
(although this is still no full replacement, it’s better than before)
• address the segfaults seen by DONG-DONG YANG

Change-Id: I2d4d175bc5163b3d6f5098024f98f316fe812e55
/external/mksh/src/main.c
03ebf06f4e1112a0e9533b93062d169232c4cbfe 13-Oct-2011 Geremy Condra <gcondra@google.com> Updated mksh to ToT as of 12 October 2011.

This includes several security fixes and brings us in
line with upstream, who has included fixes for a
number of issues originally reported by the Android
team.

Change-Id: I1e0f3adf292b86fa7679b3364a774e5b6004beb8
/external/mksh/src/main.c
5155f1c7438ef540d7b25eb70aa1639579795b07 16-Jun-2011 Jean-Baptiste Queru <jbq@google.com> Move mksh to a separate project.

This was originally in system/core/mksh

commit ba2627c6cdb3aaa40aebd362170c382b55b7b511
Author: Thorsten Glaser <tg@mirbsd.org>
Date: Tue Aug 24 18:21:37 2010 +0200

Add mksh from CVS 2010/08/24 as system/core/mksh module

Both shells (ash from system/core/sh, and mksh) are built by
default but only the one where $(TARGET_SHELL) is set to is
actually installed (the shell and the mkshrc configuration
file are tagged shell_mksh for this to work).

commit f41986bbc79055a4feed7266cac5c1b540296daf
Author: Jeff Hamilton <jham@android.com>
Date: Fri Sep 10 10:46:06 2010 -0500

Don't alias 'stop' to 'kill -STOP'

Android has already has a stop command used
to stop the main runtime and the alias
interferes with testing tools that expect
stop to kill the runtime.

Change-Id: I5ddf28dbd0221148d3b8f55eaf4f1e7d046c9288
/external/mksh/src/main.c