diff --git a/src/gemini-viewer.lisp b/src/gemini-viewer.lisp index f3ecf57..d5168b2 100644 --- a/src/gemini-viewer.lisp +++ b/src/gemini-viewer.lisp @@ -137,7 +137,20 @@ (port (or (quri:uri-port parsed-uri) gemini-client:+gemini-default-port+))) (handler-case - (progn + (flet ((get-user-input (hide-input host prompt) + (flet ((on-input-complete (input) + (when (string-not-empty-p input) + (db-utils:with-ready-database (:connect nil) + (request (gemini-parser:make-gemini-uri host + path + input + port)))))) + (ui:ask-string-input #'on-input-complete + :hide-input hide-input + :prompt (format nil + (_ "Server ~s asks: ~s ") + host + prompt))))) (multiple-value-bind (status code-description meta response socket) (gemini-client:request host path @@ -161,22 +174,9 @@ (_ "Redirects to ~s, follows redirect? [y/N] ") meta)))) ((gemini-client:response-input-p status) - (flet ((on-input-complete (input) - (when (string-not-empty-p input) - (db-utils:with-ready-database (:connect nil) - (request (gemini-parser:make-gemini-uri host - path - input - port)))))) - (ui:ask-string-input #'on-input-complete - :prompt - (format nil - (_ "Server ~s asks: ~s ") - host - meta)))) + (get-user-input nil host meta)) ((gemini-client:response-sensitive-input-p status) - (error 'conditions:not-implemented-error - :text "Sensitive input not implemented")) + (get-user-input t host meta)) ((streamp response) (let ((stream response)) (if (gemini-client:mime-gemini-p meta) diff --git a/src/tui-utils.lisp b/src/tui-utils.lisp index 79c3865..e56b666 100644 --- a/src/tui-utils.lisp +++ b/src/tui-utils.lisp @@ -384,27 +384,3 @@ latter has a length equals to `total-size'")) (ui:notify (format nil (_ "Error: ~a") e) :life (* (swconf:config-notification-life) 5) :as-error t)))) - -(defun make-tui-char (char - &key - (attributes nil) - (fgcolor nil) - (bgcolor nil)) - "Make a `complex-char'" - (make-instance 'complex-char - :simple-char char - :attributes attributes - :fgcolor fgcolor - :bgcolor bgcolor)) - -(defun make-tui-string (string - &key - (attributes nil) - (fgcolor nil) - (bgcolor nil)) - "Make a `complex-string' using `string' for text contents" - (make-instance 'complex-string - :string string - :attributes attributes - :fgcolor fgcolor - :bgcolor bgcolor))