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