Undo (Wikipedia)
Wikipedia’s article on the undo interaction pattern.
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
Key points
- First computer-based undo credited to Brown University’s FRESS (1968); Xerox PARC’s Bravo text editor had one by 1974; Apple’s Macintosh guidelines mandated “Undo” as the first Edit-menu command, standardizing its location industry-wide.
- Linear undo (a strict last-in-first-out stack) vs. non-linear undo (arbitrary-order reversal, with named sub-models: script, undo/redo-and-selective, triadic, selective-undo).
- Two implementation approaches: the Command pattern (execute/un-execute action objects) and the Memento pattern (external state capture/restore).
- Multi-level undo needs a capacity limit in practice — Adobe Photoshop defaults to 20 (adjustable), Microsoft Paint expanded from 3 to 50 starting in its Windows 7 version; the simplest “flip undo model” has no separate redo at all, treating undo itself as undoable.