diff --git a/src/complete.lisp b/src/complete.lisp index 89fdd95..61db029 100644 --- a/src/complete.lisp +++ b/src/complete.lisp @@ -103,9 +103,14 @@ completed) and the common prefix of the completion string." (text-utils:string-starts-with-p hint a))) (defun contains-clsr (hint) - (let ((scanner (cl-ppcre:create-scanner hint))) - (lambda (a) - (cl-ppcre:scan scanner a)))) + (handler-case + (let ((scanner (cl-ppcre:create-scanner hint))) + (lambda (a) + (cl-ppcre:scan scanner a))) + (error () + (let ((scanner (cl-ppcre:create-scanner `(:sequence ,hint)))) + (lambda (a) + (cl-ppcre:scan scanner a)))))) (defun remove-if-hidden (candidates) (remove-if #'db:hidden-recipient-p candidates)) diff --git a/src/gemini-viewer.lisp b/src/gemini-viewer.lisp index 6ea490b..e310532 100644 --- a/src/gemini-viewer.lisp +++ b/src/gemini-viewer.lisp @@ -536,7 +536,7 @@ (certificate nil) (certificate-key nil) (use-cached-file-if-exists nil) - (do-nothing-if-exists-in-db t)) + (do-nothing-if-exists-in-db nil)) (labels ((get-user-input (hide-input url prompt) (multiple-value-bind (actual-iri host path query port fragment) (gemini-client:displace-iri (iri:iri-parse url)) @@ -743,7 +743,7 @@ (defun open-gemini-stream-window () (let* ((low-level-window (make-croatoan-window :enable-function-keys t))) - (setf *gemini-streams-window* + (setf *gemini-streams-window* (make-instance 'gemini-streams-window :top-row-padding 0 :title (_ "Current gemini streams") @@ -760,7 +760,8 @@ (defun load-gemini-url (url &key (priority program-events:+standard-event-priority+) - (give-focus-to-message-window t)) + (give-focus-to-message-window t) + (use-cached-file-if-exists nil)) "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 command) otherwise te actual code to get the resource will never be @@ -768,5 +769,6 @@ executed." (let* ((event (make-instance 'program-events:gemini-request-event :give-focus-to-message-window give-focus-to-message-window :priority priority + :use-cached-file-if-exists use-cached-file-if-exists :url url))) (program-events:push-event event))) diff --git a/src/ui-goodies.lisp b/src/ui-goodies.lisp index 6fc6e59..834e6cc 100644 --- a/src/ui-goodies.lisp +++ b/src/ui-goodies.lisp @@ -1779,6 +1779,7 @@ open-message-link-window:open-message-link" "Ask for a gemini address and try to load it" (flet ((on-input-complete (url) (gemini-viewer:load-gemini-url url + :use-cached-file-if-exists t :priority program-events:+maximum-event-priority+))) (let ((prompt (gemini-open-url-prompt)))