MTS 8: LISP and SLIP in MTS
June 1976
Command: UNDO [command]
The UNDO command reverses the last structure-modifying command. If
the optional argument "command" is given, it is compared with the
name of the command to be reversed, and reversal takes place only
if they are the same.
UNDO is itself a structure-modifying command, and may be UNDOne,
but UNDO commands are normally skipped by subsequent UNDO commands
unless a reversal is requested explicitly by UNDO UNDO.
Examples:
.?
:(A B C D E F)
.DELETE C : DELETE D : ?
:(A B E F)
.UNDO
:DELETE UNDONE
.?
:(A B D E F)
.UNDO
:DELETE UNDONE
.?
:(A B C D E F)
.UNDO
:NOTHING SAVED
.??
:UNDO UNDO
.UNDO UNDO
:UNDO UNDONE
.?
:(A B D E F)
Commands: TEST, !UNDO, UNBLOCK
These three commands can be used to make a set of tentative changes
to a structure. All of these changes can subsequently be reversed
at once. The TEST command places a block in the list of _____
structure-modifying commands. A block stops the execution of the
!UNDO command, which reverses all structural changes made since the
block (i.e., since the TEST command). If there is no block in the
list the !UNDO command reverses all changes made since the
invocation of the LISP editor. The UNBLOCK command removes the
most recent block from the list.
Note: A block also blocks the UNDO command. The UNDO command
skips the !UNDO command unless it is explicitly requested, but
!UNDO reverses all commands, including UNDO and !UNDO.
98 The LISP Editor