X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=elpher.el;h=11444b95692f4bf8b5040ca2f44bec664572f815;hb=3416632554bfddf6dcdc7afbcf6b7295848944b7;hp=3fb2183200005430cb19c098fbb6f1781183e513;hpb=7a1ad18494427d307351f666f54c10645d3a6252;p=elpher.git diff --git a/elpher.el b/elpher.el index 3fb2183..11444b9 100644 --- a/elpher.el +++ b/elpher.el @@ -4,7 +4,7 @@ ;; Author: Tim Vaughan ;; Created: 11 April 2019 -;; Version: 1.4.3 +;; Version: 1.4.5 ;; Keywords: comm gopher ;; Homepage: https://github.com/tgvaughan/elpher ;; Package-Requires: ((emacs "25")) @@ -26,24 +26,26 @@ ;;; Commentary: -;; Elpher aims to provide a practical gopher client for GNU Emacs. -;; It supports: +;; Elpher aims to provide a practical and friendly gopher client +;; for GNU Emacs. It supports: -;; - intuitive keyboard and mouse-driven interface, -;; - caching of visited sites (both content and cursor position), +;; - intuitive keyboard and mouse-driven browsing, +;; - out-of-the-box compatibility with evil-mode, +;; - clickable web and gopher links *in plain text*, +;; - caching of visited sites, ;; - pleasant and configurable colouring of Gopher directories, ;; - direct visualisation of image files, -;; - (m)enu key support, similar to Emacs' info browser, -;; - clickable web and gopher links in plain text, ;; - a simple bookmark management system, -;; - support for TLS gopherholes. +;; - connections using TLS encryption. ;; To launch Elpher, simply use 'M-x elpher'. This will open a start ;; page containing information on key bindings and suggested starting ;; points for your gopher exploration. -;; Faces, caching and other options can be configured via -;; the Elpher customization group in Applications. +;; Further instructions can be found in the Elpher info manual. + +;; Elpher is under active development. Any suggestions for +;; improvements are welcome! ;;; Code: @@ -55,7 +57,7 @@ ;;; Global constants ;; -(defconst elpher-version "1.4.3" +(defconst elpher-version "1.4.5" "Current version of elpher.") (defconst elpher-margin-width 6 @@ -114,7 +116,7 @@ (?p elpher-get-image-node "img" elpher-image) (?I elpher-get-image-node "img" elpher-image) (?d elpher-get-node-download "doc" elpher-binary) - (?h elpher-get-url-node "web" elpher-url) + (?h elpher-get-url-node "url" elpher-url) (bookmarks elpher-get-bookmarks-node "#" elpher-index) (start elpher-get-start-node "#" elpher-index)) "Association list from types to getters, margin codes and index faces.") @@ -192,6 +194,13 @@ Otherwise, use the system browser via the BROWSE-URL function." "If non-nil, display current node information in buffer header." :type '(boolean)) +(defcustom elpher-auto-disengage-TLS nil + "If non-nil, automatically disengage TLS following an unsuccessful connection. +While enabling this may seem convenient, it is also potentially dangerous as it +allows switching from an encrypted channel back to plain text without user input." + :type '(boolean)) + + ;;; Model ;; @@ -496,9 +505,11 @@ up to the calling function." (error (if (and (consp the-error) (eq (car the-error) 'gnutls-error) - (not (elpher-address-use-tls-p address))) + (not (elpher-address-use-tls-p address)) + (or elpher-auto-disengage-TLS + (yes-or-no-p "Could not establish encrypted connection. Disable TLS mode? "))) (progn - (message "Could not establish TLS connection. Disengaging TLS mode.") + (message "Disengaging TLS mode.") (setq elpher-use-tls nil) (elpher-get-selector address after)) (elpher-process-cleanup) @@ -1062,7 +1073,7 @@ host, selector and port." (error "No link selected")))) (defun elpher-bookmarks () - "Visit bookmarks." + "Visit bookmarks page." (interactive) (switch-to-buffer "*elpher*") (elpher-visit-node @@ -1198,7 +1209,11 @@ host, selector and port." "Keymap for gopher client.") (define-derived-mode elpher-mode special-mode "elpher" - "Major mode for elpher, an elisp gopher client.") + "Major mode for elpher, an elisp gopher client. + +This mode is automatically enabled by the interactive +functions which initialize the gopher client, namely +`elpher', `elpher-go' and `elpher-bookmarks'.") (when (fboundp 'evil-set-initial-state) (evil-set-initial-state 'elpher-mode 'motion))