home *** CD-ROM | disk | FTP | other *** search
- # --------------------------------------
- # - Beispielmakro fuer den Befehl call -
- # - Ruft sich mehrfach selbst auf. -
- # --------------------------------------
-
- # Protokollfensterausgaben ermoeglichen
- set PROTWIN = "on"
-
- # Makroname holen
- set Makroname = argv_0
-
- # CALL-Ebene holen, bei Aufruf ohne Parameter mit "0" vorbelegen
- set Ebene = "1"
-
- # wenn argc kleiner als "2", dann wurde das Makro nicht von
- # sich selbst aufgerufen
- ifless argc than "2" goto NoPara
-
- # Makro wurde von sich selbst aufgerufen => Ebene holen und hochzaehlen
- set Ebene = argv_1
- inc Ebene
- goto Start
-
- # Diesen Teil nur beim ersten Aufruf ausfuehren
- NoPara:
- debug "Makroname: ", argv_0, "\n"
-
- # Start-Hinweis ausgeben
- Start:
- debug "[", Ebene, "] Makro gestartet\n"
-
- # Irgendwann auch mal aufhoeren mit sich selbst aufrufen ...
- ifgreater Ebene than "9" goto Fertig
-
- # Makro ruft sich selbst auf
- call Makroname, Ebene
-
- # call-Befehl kehrt erst zurueck, wenn das aufgerufene Makro beendet ist
- # dann geht es hier weiter
- debug "[", Ebene, "] Erhaltener Rueckgabewert: ", CALLVAL, "\n"
-
- # Makro beenden
- Fertig:
- set RETVAL = "0", Ebene, "0"
- debug "[", Ebene, "] Setze Rueckgabewert: ", RETVAL, "\n"
- debug "[", Ebene, "] Makro beendet\n"
-
-