GESCHUETZT
SYNOPSIS
        int exec(object new, object old);

BESCHREIBUNG
        exec() schaltet die Verbindung um vom interaktiven Objekt <old> zum
        Objekt <old>. Wenn <new> ebenfalls interaktiv ist, wird dessen
        Verbindung zum Objekt <old> uebertragen, die Verbindungne von <old>
        und <new> werden also ausgetauscht. Wenn <new> nicht interaktiv ist,
        ist <old> nach der Ausfuehrung von exec() nicht mehr interaktiv.

        Das Resultat von exec() ist 1 bei Erfolg, 0 sonst.

        exec() wird verwendet, um unterschiedliche "user objects" zu laden
        oder um User mit totem Netz wieder zu verbinden.

        Um Sicherheitsmechanismen zu gewaehrleisten, wird im Masterobjekt
        valid_exec(<laufendes Programm>, <new>, <old>) aufgerufen. Dieser
        Aufruf muss etwas von 0 verschiedenes liefern, um den Aufruf von
        exec() zu erlauben.

        Wenn <old> this_player() war, enthaelt this_player() nach dem Aufruf
        von exec() <new> und umgekehrt. Gleiches gilt fuer this_interactive().

        Vorsicht ist geboten, wenn eine simul-efun() um exec() herum gebaut
        wird: das <laufende Programm>, das an valid_exec() uebergeben wird,
        ist das simul-efun Objekt. Um dieses Problem zu umgehen, kann mittels
        bind_lambda() #'exec an das richtige Objekt gebunden und anschliessend
        mit funcall() aufgerufen werden.

BEISPIEL
        ob = clone_object("std/player");
        exec(ob, this_object());
        destruct(this_object());

AENDERUNGEN
        LDMud 3.2.9 fuehrte den Austauschprozess fuer this_interactive() ein.

SIEHE AUCH
        connect(M), disconnect(M), logon(A), interactive(E)
