1
0
Fork 0

Compare commits

..

No commits in common. "76a11da2fc251e6fa2504f6ede747f507fd5223e" and "d5f5bad33c1b1eb9e4149f9454692b70705690c4" have entirely different histories.

4 changed files with 13 additions and 19 deletions

View File

@ -406,8 +406,8 @@
(if (not (downloading-allowed-p wrapper-object)) (if (not (downloading-allowed-p wrapper-object))
(ui:notify (_ "Gemini document downloading aborted")) (ui:notify (_ "Gemini document downloading aborted"))
(progn (progn
(maybe-render-toc)
(ui:notify (_ "Gemini document downloading completed")) (ui:notify (_ "Gemini document downloading completed"))
(maybe-render-toc)
(setf (stream-status wrapper-object) :completed))) (setf (stream-status wrapper-object) :completed)))
;; (allow-downloading wrapper-object) ;; (allow-downloading wrapper-object)
(gemini-client:close-ssl-socket download-socket)))))))) (gemini-client:close-ssl-socket download-socket))))))))
@ -770,8 +770,7 @@
(defun load-gemini-url (url &key (defun load-gemini-url (url &key
(priority program-events:+standard-event-priority+) (priority program-events:+standard-event-priority+)
(give-focus-to-message-window t) (give-focus-to-message-window t)
(use-cached-file-if-exists nil) (use-cached-file-if-exists nil))
(enqueue nil))
"Load `url', that is a web resource or a local file. This function "Load `url', that is a web resource or a local file. This function
can be used only when the event polling is enabled (e.g. from user can be used only when the event polling is enabled (e.g. from user
command) otherwise te actual code to get the resource will never be command) otherwise te actual code to get the resource will never be
@ -780,6 +779,5 @@ executed."
:give-focus-to-message-window give-focus-to-message-window :give-focus-to-message-window give-focus-to-message-window
:priority priority :priority priority
:use-cached-file-if-exists use-cached-file-if-exists :use-cached-file-if-exists use-cached-file-if-exists
:enqueue enqueue :url url)))
:url url)))
(program-events:push-event event))) (program-events:push-event event)))

View File

@ -546,7 +546,9 @@
(loop for i from (- level 2 ) downto 0 (loop for i from (- level 2 ) downto 0
when (= (elt toc-number i) 0) do when (= (elt toc-number i) 0) do
(setf (elt toc-number i) 1)) (setf (elt toc-number i) 1))
(list :header (first (gemini-parser:lines header)) (list :header (regex-replace "^\\P{Letter}+"
(first (gemini-parser:lines header))
"")
:group-id gid :group-id gid
:number (subseq toc-number :number (subseq toc-number
0 0

View File

@ -84,9 +84,8 @@
(db:gemlog-mark-as-seen url) (db:gemlog-mark-as-seen url)
(gemini-viewer:ensure-just-one-stream-rendering) (gemini-viewer:ensure-just-one-stream-rendering)
(program-events:push-event event) (program-events:push-event event)
(gemini-viewer:load-gemini-url url (gemini-viewer:request url :enqueue enqueue
:enqueue enqueue :use-cached-file-if-exists t)))
:use-cached-file-if-exists t)))
((fs:dirp decoded-path) ((fs:dirp decoded-path)
(let ((program-events:*process-events-immediately* t) (let ((program-events:*process-events-immediately* t)
(event (make-instance 'program-events:gemini-push-behind-downloading-event (event (make-instance 'program-events:gemini-push-behind-downloading-event

View File

@ -1002,18 +1002,13 @@
:initform t :initform t
:initarg :give-focus-to-message-window :initarg :give-focus-to-message-window
:reader give-focus-to-message-window-p :reader give-focus-to-message-window-p
:writer (setf give-focus-to-message-window)) :writer (setf give-focus-to-message-window))))
(enqueue
:initform nil
:initarg :enqueue
:accessor enqueue)))
(defmethod process-event ((object gemini-request-event)) (defmethod process-event ((object gemini-request-event))
(tui:with-notify-errors (tui:with-notify-errors
(with-accessors ((url url) ; if a local file *not* percent encoded (with-accessors ((url url) ; if a local file *not* percent encoded
(give-focus-to-message-window-p give-focus-to-message-window-p) (give-focus-to-message-window-p give-focus-to-message-window-p)
(use-cached-file-if-exists use-cached-file-if-exists) (use-cached-file-if-exists use-cached-file-if-exists)) object
(enqueue enqueue)) object
(let ((window specials:*message-window*) (let ((window specials:*message-window*)
(local-path (if (text-utils:percent-encoded-p url) (local-path (if (text-utils:percent-encoded-p url)
(complete:tilde-expand-string (text-utils:percent-decode url)) (complete:tilde-expand-string (text-utils:percent-decode url))
@ -1026,9 +1021,7 @@
((text-utils:string-empty-p url) ((text-utils:string-empty-p url)
(ui:error-message (_ "Empty address"))) (ui:error-message (_ "Empty address")))
((gemini-client:absolute-gemini-url-p url) ((gemini-client:absolute-gemini-url-p url)
(gemini-viewer:request url (gemini-viewer:request url :use-cached-file-if-exists use-cached-file-if-exists))
:enqueue enqueue
:use-cached-file-if-exists use-cached-file-if-exists))
((fs:dirp local-path) ((fs:dirp local-path)
(let* ((index-path (uri:normalize-path (fs:prepend-pwd local-path))) (let* ((index-path (uri:normalize-path (fs:prepend-pwd local-path)))
(all-paths (mapcar #'uri:normalize-path (all-paths (mapcar #'uri:normalize-path
@ -1133,6 +1126,8 @@
(when (and (gemini-viewer:downloading-allowed-p wrapper-object) (when (and (gemini-viewer:downloading-allowed-p wrapper-object)
(not (skip-rendering-p object)) (not (skip-rendering-p object))
(message-window:display-gemini-text-p win)) (message-window:display-gemini-text-p win))
(setf (windows:keybindings win)
keybindings:*gemini-message-keymap*)
(refresh-gemini-message-window links source ir-line append-text) (refresh-gemini-message-window links source ir-line append-text)
(windows:draw win)))))) (windows:draw win))))))