Upgrade to mksh 50e.
Change-Id: I341673d83c67f83761aa02c8372da6bbc419286f
diff --git a/src/mksh.1 b/src/mksh.1
index 480184e..5ad143c 100644
--- a/src/mksh.1
+++ b/src/mksh.1
@@ -1,9 +1,9 @@
-.\" $MirOS: src/bin/mksh/mksh.1,v 1.344 2014/10/07 15:30:12 tg Exp $
-.\" $OpenBSD: ksh.1,v 1.153 2014/08/17 07:15:41 jmc Exp $
+.\" $MirOS: src/bin/mksh/mksh.1,v 1.344.2.3 2015/03/01 15:43:03 tg Exp $
+.\" $OpenBSD: ksh.1,v 1.156 2015/01/16 15:32:32 schwarze Exp $
.\"-
.\" Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-.\" 2010, 2011, 2012, 2013, 2014
-.\" Thorsten Glaser <tg@mirbsd.org>
+.\" 2010, 2011, 2012, 2013, 2014, 2015
+.\" Thorsten “mirabilos” Glaser <tg@mirbsd.org>
.\"
.\" Provided that these terms and disclaimer and all copyright notices
.\" are retained or reproduced in an accompanying document, permission
@@ -74,7 +74,7 @@
.\" with -mandoc, it might implement .Mx itself, but we want to
.\" use our own definition. And .Dd must come *first*, always.
.\"
-.Dd $Mdocdate: October 7 2014 $
+.Dd $Mdocdate: March 1 2015 $
.\"
.\" Check which macro package we use, and do other -mdoc setup.
.\"
@@ -673,11 +673,11 @@
.It Xo case Ar word No in
.Oo Op \&(
.Ar pattern
-.Op \*(Ba Ar pat
+.Op \*(Ba Ar pattern
.No ... Ns )
.Ar list
-.Op ;; \*(Ba ;&\& \*(Ba ;\*(Ba\ \&
-.Oc ... esac
+.Ic terminator
+.Oc No ... esac
.Xc
The
.Ic case
@@ -707,9 +707,11 @@
and
.Ic esac
e.g.\&
-.Ic case $foo { *) echo bar;; } .
+.Ic case $foo { *) echo bar ;; } .
.Pp
-The list terminators are:
+The list
+.Ic terminator Ns s
+are:
.Bl -tag -width 4n
.It Ql ;;
Terminate after the list.
@@ -2923,6 +2925,10 @@
.It
The EXIT trap, if set in a function, will be executed after the function
returns.
+.It
+Shell options
+.Pq Ic set Fl o
+have local scope, i.e. changes inside a function are reset upon its exit.
.El
.Ss Command execution
After evaluation of command-line arguments, redirections, and parameter
@@ -3370,9 +3376,25 @@
.Pp
.It Xo
.Ic exec
+.Op Fl a Ar argv0
+.Op Fl c
.Op Ar command Op Ar arg ...
.Xc
The command is executed without forking, replacing the shell process.
+This is currently absolute, i.e.\&
+.Ic exec
+never returns, even if the
+.Ar command
+is not found.
+The
+.Fl a
+option permits setting a different
+.Li argv[0]
+value, and
+.Fl c
+clears the environment before executing the child process, except for the
+.Ev _
+variable and direct assignments.
.Pp
If no command is given except for I/O redirection, the I/O redirection is
permanent and the shell is
@@ -6457,6 +6479,17 @@
instead, but be aware that, in POSIX, it's legal for the OS to make
.Li print $((2147483647 + 1))
delete all files on your system, as it's Undefined Behaviour.
+.Pp
+.Nm mksh
+provides a consistent, clear interface normally.
+This may deviate from POSIX in optional or opinionated places, such
+as whether leading-digit-zero numbers should be interpreted as octal.
+.Ic set \-o posix
+will cause the shell (either
+.Nm mksh
+or
+.Nm lksh )
+to behave more like the standard expects.
.Sh BUGS
Suspending (using \*(haZ) pipelines like the one below will only suspend
the currently running part of the pipeline; in this example,
@@ -6468,16 +6501,19 @@
.Ed
.Pp
This document attempts to describe
-.Nm mksh\ R50
+.Nm mksh\ R50e
and up,
compiled without any options impacting functionality, such as
.Dv MKSH_SMALL ,
when not called as
.Pa /bin/sh
which, on some systems only, enables
+.Ic set \-o posix
+or
.Ic set \-o sh
automatically (whose behaviour differs across targets),
for an operating environment supporting all of its advanced needs.
+.Pp
Please report bugs in
.Nm
to the