(lambda (s)
(let ((_xterm-color-render nil))
(xterm-color-filter s)))
- 'ansi-color-filter-apply)
+ #'ansi-color-filter-apply)
"A function to filter out ANSI escape sequences.")
(defalias 'elpher-color-apply
(if (fboundp 'xterm-color-filter)
- 'xterm-color-filter
- 'ansi-color-apply)
+ #'xterm-color-filter
+ #'ansi-color-apply)
"A function to apply ANSI escape sequences.")
;;; Global constants
"Association list from types to getters, renderers, margin codes and index faces.")
-;;; Internal variables
-;;
-
-;; buffer-local
-(defvar elpher--gemini-page-headings nil
- "List of headings on the page.")
-
-
;;; Declarations to avoid compiler warnings.
;;
(eval-when-compile
- (defvar bookmark-make-record-function)
+ (declare-function ansi-color-filter-apply "ansi-color")
+ (declare-function ansi-color-apply "ansi-color")
(declare-function bookmark-store "bookmark")
(declare-function org-link-store-props "ol")
(declare-function org-link-set-parameters "ol")
- (defvar thing-at-point-uri-schemes)
- (defvar mu4e~view-beginning-of-url-regexp))
+ (defvar ansi-color-context)
+ (defvar bookmark-make-record-function)
+ (defvar mu4e~view-beginning-of-url-regexp)
+ (defvar thing-at-point-uri-schemes))
;;; Customization group
"Create an ADDRESS object corresponding to the given special address symbol TYPE."
type)
-(defun elpher-make-start-page ()
- "Create the start page."
- (elpher-make-page "Elpher Start Page"
- (elpher-make-special-address 'start)))
-
(defun elpher-address-to-url (address)
"Get string representation of ADDRESS, or nil if ADDRESS is special."
(if (elpher-address-special-p address)
"Create a page with DISPLAY-STRING and ADDRESS."
(list display-string address))
+(defun elpher-make-start-page ()
+ "Create the start page."
+ (elpher-make-page "Elpher Start Page"
+ (elpher-make-special-address 'start)))
+
(defun elpher-page-display-string (page)
"Retrieve the display string corresponding to PAGE."
(elt page 0))
(unless (eq major-mode 'elpher-mode)
;; avoid resetting buffer-local variables
(elpher-mode))
- (let ((inhibit-read-only t))
+ (let ((inhibit-read-only t)
+ (ansi-color-context nil)) ;; clean ansi interpreter state
(setq-local network-security-level
(default-value 'network-security-level))
(erase-buffer)
(insert (propertize display-string 'face 'elpher-unknown)))
(insert "\n"))))
+(defvar elpher--gemini-page-headings nil
+ "List of headings on the page.")
+
(defun elpher-gemini-insert-header (header-line)
"Insert header described by HEADER-LINE into a text/gemini document.
The gemini map file line describing the header is given