Go to the first, previous, next, last section, table of contents.


findRestart

Function: findRestart { restart event -> id }
file: 01-C-event.t
package: muf
status: alpha

This function is specified by CommonLisp and returns the most recent active restart matching the request, else nil.

The restart argument may be a symbol naming the restart, or a restart identifier such as returned by getNthRestart.

If event is nil it is ignored, otherwise only restarts matching it will be returned. (A restart "matches" a event if it has no test-function, or if that test-function returns non-nil on that event.)

This function is currently implemented as:

: findRestart { $ $ -> $ } -> event -> restart

    ( Over all available restarts: )
    0 -> i
    do{
        ( Fetch next restart: )
        i getNthRestart
        -> name
        -> fn
        -> tFn
        -> iFn
        -> rFn
        -> data
        -> id

        ( Done if no restart found: )
        id not if nil return fi

        ( If name matches id, return it: )
        id restart = if id return fi

        ( If names and maybe events match, return it: )
        name restart = if
            event not                 if id return fi
            tFn      not                 if id return fi
            event tFn call{ $ -> $ } if id return fi
        fi

        ( Next restart to try: )
        i 1 + -> i
    }
;
'findRestart export


Go to the first, previous, next, last section, table of contents.