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))

Reply via email to