anchor.diff:  
   (defun kill-buffer (buffer)
     (setf (buffer-list *editor*) (remove buffer (buffer-list *editor*)))
  +  (when (eql buffer (last-buffer *editor*))
  +    (setf (last-buffer *editor*) nil))
     (when (eql buffer (current-buffer *editor*))
       (switch-to-buffer
        (if (buffer-list *editor*)
  
positive.code: (defun previous-line-command ()
    (move-line (current-buffer *editor*) -1))
  
  (defun move-beginning-of-line-command ()
    (move-beginning-of-line (current-buffer *editor*)))
  
  
negative.code:                    (make-mark (last-line buffer) (line-length (last-line buffer))))
      (dolist (b (buffer-list *editor*))
        (insert buffer (buffer-property b 'name))
        (insert buffer #\Newline))
      (setf (buffer-modified buffer) nil)))
  
  (defun switch-to-buffer-command ()
    (let* ((default-buffer (or (last-buffer *editor*)
                               (current-buffer *editor*)))
           (name (string-trim " " (read-from-minibuffer (format nil "Buffer (default ~A): " (buffer-property default-buffer 'name)))))
           (other-buffer (if (zerop (length name))
                             default-buffer
                             (get-buffer-create name))))
      (when (not (eql (current-buffer *editor*) other-buffer))
        (setf (last-buffer *editor*) (current-buffer *editor*))
        (switch-to-buffer other-buffer))))
  
  (defun kill-buffer-command ()
    (let* ((name (read-from-minibuffer (format nil "Buffer (default ~A): " (buffer-property (current-buffer *editor*) 'name))))
  