branch: elpa/hyperdrive
commit a4c847b5a7e13eb8f8e1481e6ff499e1310f9539
Author: Joseph Turner <jos...@ushin.org>
Commit: Joseph Turner <jos...@ushin.org>

    Fix: (h/dir--entry-at-point) Return nil when hyperdrive is empty
    
    Previously, when the hyperdrive was empty and point was below the
    column headers, h/dir--entry-at-point returned
    hyperdrive-current-entry.  Now, hyperdrive-current-entry is only
    returned when point is on the column header.
---
 hyperdrive-dir.el | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/hyperdrive-dir.el b/hyperdrive-dir.el
index 42cbe790ba..a0181a74d6 100644
--- a/hyperdrive-dir.el
+++ b/hyperdrive-dir.el
@@ -224,21 +224,20 @@ To be used as the pretty-printer for `ewoc-create'."
 
 (defun h/dir--entry-at-point (&optional no-error)
   "Return entry at point.
-With point on header, returns directory entry.
-With point below last entry or on column headers, signal error.
-With non-nil NO-ERROR, return nil in that case."
+With point on header, returns directory entry.  If directory ewoc
+is empty, or point is below last entry or on column headers,
+signal error.  With non-nil NO-ERROR, return nil in that case."
   (let ((current-line (line-number-at-pos))
         (last-entry (ewoc-nth h/ewoc -1)))
-    (cond ((or (not last-entry) (= 1 current-line))
-           ;; Hyperdrive is empty or point is on header line
+    (cond ((= 1 current-line) ; Point is on header line.
            h/current-entry)
-          ((or (> current-line (line-number-at-pos (ewoc-location last-entry)))
+          ((or (not last-entry)
+               (> current-line (line-number-at-pos (ewoc-location last-entry)))
                (= 2 current-line))
-           ;; Point is below the last entry or on column headers
+           ;; Ewoc is empty, or point is below last entry or on column headers.
            (unless no-error
              (h/user-error "No file/directory at point")))
-          (t
-           ;; Point on a file entry: return its entry.
+          (t ; Point on a file entry: return its entry.
            (ewoc-data (ewoc-locate h/ewoc))))))
 
 ;;;; Mode

Reply via email to