Add declaration to avoid compiler warning.
[elpher.git] / elpher.el
index 2b24bcf..0391d21 100644 (file)
--- a/elpher.el
+++ b/elpher.el
@@ -5,6 +5,7 @@
 ;; Copyright (C) 2021 Christopher Brannon <chris@the-brannons.com>
 ;; Copyright (C) 2021 Omar Polo <op@omarpolo.com>
 ;; Copyright (C) 2021 Noodles! <nnoodle@chiru.no>
+;; Copyright (C) 2021 Abhiseck Paira <abhiseckpaira@disroot.org>
 ;; Copyright (C) 2020-2021 Alex Schroeder <alex@gnu.org>
 ;; Copyright (C) 2020 Zhiwei Chen <chenzhiwei03@kuaishou.com>
 ;; Copyright (C) 2020 condy0919 <condy0919@gmail.com>
@@ -19,7 +20,7 @@
 
 ;; Author: Tim Vaughan <plugd@thelambdalab.xyz>
 ;; Created: 11 April 2019
-;; Version: 3.0.0
+;; Version: 3.1.0
 ;; Keywords: comm gopher
 ;; Homepage: https://thelambdalab.xyz/elpher
 ;; Package-Requires: ((emacs "27.1"))
@@ -84,7 +85,7 @@
 ;;; Global constants
 ;;
 
-(defconst elpher-version "3.0.0"
+(defconst elpher-version "3.1.0"
   "Current version of elpher.")
 
 (defconst elpher-margin-width 6
   (defvar ansi-color-context)
   (defvar bookmark-make-record-function)
   (defvar mu4e~view-beginning-of-url-regexp)
+  (defvar eww-use-browse-url)
   (defvar thing-at-point-uri-schemes)
   (defvar xterm-color-preserve-properties))
 
@@ -587,6 +589,7 @@ previously-visited pages,unless NO-HISTORY is non-nil."
 
 (defmacro elpher-with-clean-buffer (&rest args)
   "Evaluate ARGS with a clean *elpher* buffer as current."
+  (declare (debug (body))) ;; Allow edebug to step through body
   `(with-current-buffer elpher-buffer-name
      (unless (eq major-mode 'elpher-mode)
        ;; avoid resetting buffer-local variables
@@ -1128,13 +1131,16 @@ If ADDRESS is not supplied or nil the record is rendered as an
   (if (not data)
       nil
     (if (display-images-p)
-        (progn
-          (let ((image (create-image
-                        data
-                        nil t)))
-            (elpher-with-clean-buffer
-             (insert-image image)
-             (elpher-restore-pos))))
+        (let* ((image (create-image
+                       data
+                       nil t))
+               (window (get-buffer-window elpher-buffer-name)))
+          (when window
+            (setf (image-property image :max-width) (window-pixel-width window))
+            (setf (image-property image :max-height) (window-pixel-height window)))
+          (elpher-with-clean-buffer
+           (insert-image image)
+           (elpher-restore-pos)))
       (elpher-render-download data))))
 
 ;; Search retrieval and rendering
@@ -2016,6 +2022,12 @@ supports the old protocol elpher, where the link is self-contained."
 (setq mu4e~view-beginning-of-url-regexp
       "\\(?:https?\\|gopher\\|finger\\|gemini\\)://\\|mailto:")
 
+;;; eww:
+
+;; Let elpher handle gemini, gopher links in eww buffer.
+(setq eww-use-browse-url
+      "\\`mailto:\\|\\(\\`gemini\\|\\`gopher\\|\\`finger\\)://")
+
 ;;; Interactive procedures
 ;;