diff options
Diffstat (limited to 'nov.el')
-rw-r--r-- | nov.el | 23 |
1 files changed, 12 insertions, 11 deletions
@@ -646,17 +646,18 @@ the HTML is rendered with `nov-render-html-function'." (defun nov-visit-relative-file (filename target) "Visit the document as specified by FILENAME and TARGET." - (when (not (zerop (length filename))) - (let* ((current-path (cdr (aref nov-documents nov-documents-index))) - (directory (file-name-directory current-path)) - (path (file-truename (nov-make-path directory filename))) - (index (nov-find-document - (lambda (doc) (equal path (file-truename (cdr doc))))))) - (when (not index) - (error "Couldn't locate document")) - (setq nov-documents-index index))) - (let ((shr-target-id target)) - (nov-goto-document nov-documents-index)) + (let (index) + (when (not (zerop (length filename))) + (let* ((current-path (cdr (aref nov-documents nov-documents-index))) + (directory (file-name-directory current-path)) + (path (file-truename (nov-make-path directory filename))) + (match (nov-find-document + (lambda (doc) (equal path (file-truename (cdr doc))))))) + (when (not match) + (error "Couldn't locate document")) + (setq index match))) + (let ((shr-target-id target)) + (nov-goto-document (or index nov-documents-index)))) (when target (let ((pos (next-single-property-change (point-min) 'shr-target-id))) (when (not pos) |