file: 01-C-event.t package: muf status: alpha
This function accepts a symbol naming a restart, or else a
restart identifier, which must have been obtained from
getNthRestart, either directly or indirectly (as
via findRestart) and invokes it.
If the :interactiveFunction value for the
restart is nil, it is assumed that the
:function takes no arguments, and it is invoked
directly; If the :interactiveFunction value for
the restart is not nil, it should be a function
which constructs an appropriate argument block for the
:function, typically using the
queryFor* functions -- See section user i/o functions.
The invokeRestartInteractively function
returns only if the restart :function itself
returns -- many will do a goto to some suitable
tag.
Example:
[ :name 'print
:function :: { [] -> } |pop -> text ]pop text , ;
:interactiveFunction :: [ "text to print" "" queryForString | ;
:reportFunction "Print something on standardOutput"
| ]withRestartDo{
'print invokeRestartInteractively
}
will prompt the user for text to print, print it, and return.
The invokeRestartInteractively function is
currently implemented as
: invokeRestartInteractively { $ -> ! } -> restart
restart symbol? if
restart nil findRestart -> restart
fi
restart getRestart
-> name
-> fn
-> tFn
-> iFn
-> rFn
-> data
-> id
iFn if
iFn call{ -> [] }
fn call{ [] -> }
else
fn call{ -> }
fi
;
'invokeRestartInteractively export
Go to the first, previous, next, last section, table of contents.