Support for C-u elpher to have multiple buffers
authorAlex Schroeder <alex@gnu.org>
Thu, 2 Jul 2020 09:19:55 +0000 (11:19 +0200)
committerAlex Schroeder <alex@gnu.org>
Thu, 2 Jul 2020 13:45:27 +0000 (15:45 +0200)
elpher.el

index b5f995b..26f574a 100644 (file)
--- a/elpher.el
+++ b/elpher.el
@@ -454,7 +454,7 @@ unless NO-HISTORY is non-nil."
               (equal (elpher-page-address elpher-current-page)
                      (elpher-page-address page)))
     (push elpher-current-page elpher-history))
-  (setq elpher-current-page page)
+  (setq-local elpher-current-page page)
   (let* ((address (elpher-page-address page))
          (type (elpher-address-type address))
          (type-record (cdr (assoc type elpher-type-map))))
@@ -521,6 +521,7 @@ unless NO-HISTORY is non-nil."
   "Evaluate ARGS with a clean *elpher* buffer as current."
   `(with-current-buffer elpher-buffer-name
      (unless (eq major-mode 'elpher-mode)
+       ;; avoid resetting buffer-local variables
        (elpher-mode))
      (let ((inhibit-read-only t))
        (setq-local network-security-level
@@ -1737,8 +1738,8 @@ When run interactively HOST-OR-URL is read from the minibuffer."
 (defun elpher-back-to-start ()
   "Go all the way back to the start page."
   (interactive)
-  (setq elpher-current-page nil)
-  (setq elpher-history nil)
+  (setq-local elpher-current-page nil)
+  (setq-local elpher-history nil)
   (let ((start-page (elpher-make-page "Elpher Start Page"
                                       (elpher-make-special-address 'start))))
     (elpher-visit-page start-page)))
@@ -2025,10 +2026,10 @@ buffer selected (or created)."
                     (get-buffer-create name)))))
     (pop-to-buffer-same-window buf)
     (unless (buffer-modified-p)
-      (let ((elpher-buffer-name (buffer-name)); for elpher-with-clean-buffer
-           (start-page (elpher-make-page "Elpher Start Page"
-                                          (elpher-make-special-address 'start))))
+      (elpher-mode)
+      (let ((start-page (elpher-make-page "Elpher Start Page"
+                                         (elpher-make-special-address 'start))))
        (elpher-visit-page start-page))
-      "Started Elpher."))) ; Otherwise (elpher) evaluates to start page string.
+      "Started Elpher."))); Otherwise (elpher) evaluates to start page string.
 
 ;;; elpher.el ends here