Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/efun/exec b/doc/efun/exec
new file mode 100644
index 0000000..c86d3e0
--- /dev/null
+++ b/doc/efun/exec
@@ -0,0 +1,39 @@
+SYNOPSIS
+ int exec(object new, object old)
+
+DESCRIPTION
+ exec() switches the connection from the interactive object old
+ to the object new. If the new object is also interactive, it's
+ connection will be transferred to the old object, thus
+ exchaning the two connections between the object. If the new
+ object is not interactive, the old will not be interactive
+ anymore after the exec call succeeded.
+
+ The result is 1 on success, and 0 on failure.
+
+ exec() is used to load different "user objects" or to reconnect
+ link dead users.
+
+ To provide security mechanisms, the interpreter calls
+ master->valid_exec(current_program, new, old), which must
+ return anything other than 0 to allow this exec() invocation.
+
+ After the exec(), if arg 2 was this_player(), this_player()
+ becomes arg 1, else vice versa. Ditto for this_interactive().
+
+ Take care when writing a simul-efun around exec(): the
+ 'current_program' passed to the valid_exec() function will be
+ that of the simul-efun object. To get around this, use
+ bind_lambda() to bind #'exec to the real object and funcall()
+ the resulting closure.
+
+EXAMPLE
+ ob = clone_object("std/player");
+ exec(ob, this_object());
+ destruct(this_object());
+
+HISTORY
+ LDMud 3.2.9 added the switchover of this_interactive().
+
+SEE ALSO
+ connect(M), disconnect(M), logon(A), interactive(E)