- (with-current-buffer buffer
- (dolist (entry entries)
- (cl-destructuring-bind (file state &rest) entry
- (let ((type (plist-get
- '(edited change added insert removed delete
- unregistered unknown)
- state)))
- (if (string-match "\\`\\([^/]+\\)/" file)
- (let* ((dir (match-string 1 file))
- (value (cdr (assoc dir dirs-alist))))
- (unless (eq value type)
- (if (null value)
- (push (cons dir type) dirs-alist)
- (setcdr (assoc dir dirs-alist) 'change))))
- (push (cons file type) files-alist)))))
- (unless more-to-come
- (diff-hl-dired-highlight-items (append dirs-alist
- files-alist))
- (diff-hl-dired-update-ignores backend def-dir))))
+ (when (buffer-live-p buffer)
+ (with-current-buffer buffer
+ (dolist (entry entries)
+ (cl-destructuring-bind (file state &rest) entry
+ (let ((type (plist-get
+ '(edited change added insert removed delete
+ unregistered unknown)
+ state)))
+ (if (string-match "\\`\\([^/]+\\)/" file)
+ (let* ((dir (match-string 1 file))
+ (value (cdr (assoc dir dirs-alist))))
+ (unless (eq value type)
+ (if (null value)
+ (push (cons dir type) dirs-alist)
+ (setcdr (assoc dir dirs-alist) 'change))))
+ (push (cons file type) files-alist)))))
+ (unless more-to-come
+ (diff-hl-dired-highlight-items (append dirs-alist
+ files-alist))
+ (diff-hl-dired-update-ignores backend def-dir)))))