aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nov.el23
1 files changed, 12 insertions, 11 deletions
diff --git a/nov.el b/nov.el
index bb17cb2..1f509b1 100644
--- a/nov.el
+++ b/nov.el
@@ -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)