anchor.diff:        (setf (buffer-directory buffer) filename)
         (setf (buffer-read-only-p buffer) t)
         (buffer-disable-undo buffer)
  -      (update))
  +      (update buffer))
       (let ((prev-buffer (current-buffer)))
         (setf (current-buffer) buffer)
         (move-to-start-point)
  
positive.code: (define-key *dired-mode-keymap* "+" 'dired-mkdir)
  
  (defun move-to-file-column ()
    (move-to-column (get-bvar 'start-file-column :default 0)))
  
  (defun move-to-start-point ()
    (setf (current-linum) *start-line-number*)
    (move-to-file-column))
  
  (define-command dired-update-buffer () ()
    (save-excursion
      (update)))
  
  (define-command dired-up-directory () ()
    (switch-to-buffer
  
negative.code:         (list (get-file))
          (nreverse files))))
  
  (defun get-line-property (property-name)
    (lem::text-property-at (lem::character-offset (lem::line-start (copy-marker (current-marker)
                                                                                :temporary))
                                                  1)
                           property-name))
  
  (defun get-file ()
    (get-line-property 'file))
  
  (defun get-type ()
    (get-line-property 'type))
  
  (defun ls-output-string (filename)
    (with-output-to-string (stream)
      (uiop:run-program (format nil "ls -al ~A" filename) :output stream)))
  
  (defun update (buffer)
    (with-buffer-read-only buffer nil
      (buffer-erase buffer)
      (let ((dirname (probe-file (buffer-directory buffer))))
        (lem::with-marker ((cur-marker (lem::buffer-point-marker buffer) :left-inserting))
          (lem::insert-string-at cur-marker
                                 (lem.text-property::make-text-property
                                  (namestring dirname)
                                  :attribute *header-attribute*))
          (lem::insert-char-at cur-marker #\newline 2)
          (let ((output-string (ls-output-string dirname)))
            (lem::insert-string-at cur-marker output-string)
            (lem::buffer-start cur-marker)
            (lem::line-offset cur-marker (1- *start-line-number*))
            (loop
              (let ((string (lem::line-string-at cur-marker)))
                (multiple-value-bind (start end start-groups end-groups)
                    (ppcre:scan "^(\\S*)\\s+(\\d+)\\s+(\\S*)\\s+(\\S*)\\s+(\\d+)\\s+(\\S+\\s+\\S+\\s+\\S+)\\s+(.*?)(?: -> .*)?$"
                                string)
                  (declare (ignorable start end start-groups end-groups))
                  (when start
                    (lem::insert-string-at cur-marker "  ")
                    (let* ((index (1- (length start-groups)))
                           (filename (merge-pathnames
                                      (subseq string
                                              (aref start-groups index)
                                              (aref end-groups index))
                                      dirname))
                           (start-file-charpos (+ 2 (aref start-groups index))))
                      (lem::with-marker ((start-marker (lem::line-start cur-marker))
                                         (end-marker (lem::line-end cur-marker)))
                        (case (char string 0)
                          (#\l
                           (lem::put-text-property start-marker end-marker 'type :link)
                           (lem::character-offset (lem::line-start cur-marker) start-file-charpos)
                           (lem::put-text-property cur-marker end-marker :attribute *link-attribute*))
                          (#\d
                           (lem::put-text-property start-marker end-marker 'type :directory)
                           (lem::character-offset (lem::line-start cur-marker) start-file-charpos)
                           (lem::put-text-property cur-marker end-marker :attribute *directory-attribute*))
                          (#\-
                           (lem::put-text-property start-marker end-marker 'type :file)))
                        (lem::put-text-property start-marker end-marker 'file filename)))
                    (lem::line-offset cur-marker 1)
                    (when (lem::end-line-p cur-marker)
                      (return)))))))))))
  
  (defun update-all ()
    (dolist (buffer (buffer-list))
      (when (eq 'dired-mode (buffer-major-mode buffer))
        (update buffer)))
    (redraw-display))
  
  (defun dired-buffer (filename)
  