SYNOPSIS
	object 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.
	It 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.

	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());

SEE ALSO
	connect(M), disconnect(M), logon(A), interactive(E)
