anchor.diff:      (run-hooks *post-command-hook*)))
   
   (defun do-commandloop-function (function)
  -  (do ((*curr-flags* (%make-flags) (%make-flags))
  -       (*last-flags* (%make-flags) *curr-flags*))
  -      (nil)
  -    (let ((*interactive-p* t))
  -      (funcall function))))
  +  (loop :for *last-flags* := nil :then *curr-flags*
  +        :for *curr-flags* := nil
  +        :do (let ((*interactive-p* t))
  +              (funcall function))))
   
   (defmacro with-error-handler (() &body body)
     `(handler-case-bind ((lambda (condition)
  
positive.code:           *post-command-hook*
            *exit-editor-hook*
            interactive-p
            add-continue-flag
            continue-flag
            pop-up-backtrace))
  
  
negative.code: (defvar *last-flags* nil)
  (defvar *curr-flags* nil)
  
  (defun continue-flag (flag)
    (prog1 (cdr (assoc flag *last-flags*))
      (push (cons flag t) *last-flags*)
  