branch: externals/vc-jj
commit bfb119cc36267466e80512241d65212b461c0f90
Author: Rudi Schlatte <[email protected]>
Commit: Rudi Schlatte <[email protected]>
vc-dir hotfix on Emacs <= 30
Only use the `display-state` slot of the `vc-dir-fileinfo` structure
if it's defined.
Fixes #193
---
vc-jj.el | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/vc-jj.el b/vc-jj.el
index 71a0e80102..66ffabb34e 100644
--- a/vc-jj.el
+++ b/vc-jj.el
@@ -87,6 +87,7 @@
(require 'cl-lib)
(require 'seq)
(require 'vc)
+(require 'vc-dir)
(require 'vc-git)
(require 'log-view)
(require 'log-edit)
@@ -796,12 +797,6 @@ parents.map(|c| concat(
;;;; dir-printer
-(autoload 'vc-dir-fileinfo->directory "vc-dir")
-(autoload 'vc-dir-fileinfo->display-state "vc-dir")
-(autoload 'vc-dir-fileinfo->state "vc-dir")
-(autoload 'vc-dir-fileinfo->extra "vc-dir")
-(autoload 'vc-dir-fileinfo->name "vc-dir")
-(autoload 'vc-dir-fileinfo->marked "vc-dir")
(defvar vc-dir-status-mouse-map)
(defvar vc-dir-filename-mouse-map)
@@ -816,7 +811,8 @@ FILEENTRY contains information about a given repository
file."
;; `vc-git-dir-printer'
(let* ((isdir (vc-dir-fileinfo->directory fileentry))
(display-state (cond (isdir "")
- ((vc-dir-fileinfo->display-state fileentry))
+ ;; the `display-state' slot only exists in Emacs
>= 31
+ ((and (functionp
'vc-dir-fileinfo->display-state) (vc-dir-fileinfo->display-state fileentry)))
((vc-dir-fileinfo->state fileentry))))
(filename (vc-dir-fileinfo->name fileentry))
(extra (vc-dir-fileinfo->extra fileentry))