
upd
---

 MAGIERKOMMANDO:
    upd [ -abdhfilmrv ] <datei> [...]

 ARGUMENTE:

     <datei> [...]
        die zu bearbeitende(n) Datei(en)

 BESCHREIBUNG:
    Dieses spezielle Kommando stellt ein dateibasiertes Update dar. Es
    zerstoert und/oder laedt geladene Objekte (Blueprints).

    Die Dateinamen koennen auch Muster wie * oder ? enthalten.

    Wird ein Objekt nicht nur zerstoert, sondern auch neu erzeugt, so wird
    Configure() benutzt, sofern es eines hat, d.h. die Objektdaten werden
    vor der Zerstoerung mittels Configure() abgerufen und im neuen Objekt mit
    Configure() wieder gesetzt.

    Zusaetzlich koennen folgende Flags angegeben werden:

     -a  Alle Instanzen (Clones) der Datei werden zerstoert. Da dazu die
         gesamte Objektliste durchsucht werden muss und diese Funktion
         entsprechend zeitaufwendig ist, sollte man dieses nur mit Bedacht
         benutzen.
     -b  Falls es beim Update einen Fehler gab, wird versucht, ein Backtrace
         aus `/<rechner>.debug.log' zu lesen.
     -C  Die Nutzung von Configure() wird erzwungen, d.h. Objekte, die kein
         oeffentliches Configure() haben, werden nicht zerstoert/ersetzt.
         (im Zusammenspiel mit -l oder -r, inkompatibel mit -c)
     -d  Beim Zerstoeren der Instanzen werden auch evtl. in ihnen vorhandene
         Objekte zerstoert. Nuetzlich, um z.B. NPCs samt ihrer Ausruestung zu
         entsorgen.
     -f  Alle Instanzen (Clones) der Datei werden gesucht.
     -h  Es wird kein remove versucht, sondern sofort destruct verwendet.
         Bitte nur in Ausnahmefaellen verwenden.
     -i  Nicht nur die Datei selbst wird zerstoert, sondern auch alle geerbten
         Klassen (soweit sie geladen sind).
     -l  Die Datei wird geladen (aehnlich wie beim Befehl load, allerdings
         wird das alte Objekt zerstoert, falls es schon geladen ist).
     -m  MAKE - wie -i, aber es werden nur Objekte zerstoert, die aelter sind
         als die Datei
     -r  Wenn ein Objekt zerstoert wurde, wird versucht, es neu zu laden.
     -s  Alle Erfolgsmeldungen untergeordneter Prozesse unterdruecken.
     -v  Der volle Abhaengigkeitsbaum wird ausgegeben (im Zusammenspiel mit
         -m)

    Es koennen auch Objekte angegeben werden, die nicht als Datei existieren,
    d.h. man kann auch Instanzen mit dem # im Namen zerstoeren. Ausserdem
    koennen nur Objekte, die man selbst schreiben darf, zerstoert/geladen
    werden.

    `upd' merkt sich das zuletzt geladene oder geclonte Objekt! Dies wirkt
    sich vor allem dann aus, wenn man ein Objekt zum testen immer wieder
    zerstoeren, updaten, laden und clonen muss. Diese Reihe von Kommandos wird
    durch `upd -mr' ohne Argument auf das zuletzt geladene oder gelonte Objekt
    vollzogen.

 BEISPIELE:

    > upd *.c
    > upd -r *
    > upd -mv test.c
    > upd -r test#12345
    > upd -ar /d/inseln/mandragon/meloran/obj/alle/meloran_obj

 SIEHE AUCH:
    destruct, load
    Configure()

Letzte Aenderung: 03.07.2025, Bugfix

