From 4889373f1f3cd0e7277b5c3a52ff80bdcbf86b4e Mon Sep 17 00:00:00 2001 From: Vasilij Schneidermann Date: Mon, 8 Jun 2020 15:38:17 +0200 Subject: Fix nov-history-back/-forward for relative links --- nov.el | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'nov.el') 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) -- cgit v1.2.3