Subject: Re: bug#74781: [PATCH] Add `browse-url-qutebrowser'

From: Robert Pluim <[email-masked]>
Date: Wed, 11 Dec 2024 10:58:30 +0100

>>>>> On Wed, 11 Dec 2024 10:07:08 +0100, Daniel Mendler <[email-masked]> said:

    Daniel> Hi Robert,
    Daniel> thank you for looking at the patch. I have a few questions.

    Daniel> +(defcustom browse-url-qutebrowser-program "qutebrowser"
    Daniel> +  "The name by which to invoke Qutebrowser."
    Daniel> +  :type 'string)
    Daniel> +
    Daniel> +(defcustom browse-url-qutebrowser-arguments nil
    Daniel> +  "A list of strings to pass to Qutebrowser when it starts up."
    Daniel> +  :type '(repeat (string :tag "Argument")))
    Daniel> +
    >> :version tags please

    Daniel> Other similar variables have been added recently and lack the version
    Daniel> tags. I didn't add the tags for consistency with the other variables. I
    Daniel> wonder if the Emacs help system does recognize automatically when
    Daniel> variables got added?

Then those should be fixed as well.

The emacs help system applies heuristics which are not always
accurate, and donʼt always return an answer, hence the version tags.

    Daniel> (defcustom browse-url-new-window-flag nil
    Daniel> "Non-nil means always open a new browser window with appropriate browsers.
    Daniel> Passing an interactive argument to \\[browse-url], or specific browser
    Daniel> @@ -1294,6 +1308,60 @@ browse-url-epiphany-sentinel
    Daniel> browse-url-epiphany-program
    Daniel> (append browse-url-epiphany-startup-arguments (list url))))))
    Daniel> +(defun browse-url-qutebrowser-send (cmd)
    Daniel> +  "Send CMD to Qutebrowser via IPC."
    Daniel> +  (let* ((dir (getenv "XDG_RUNTIME_DIR"))
    >> 
    >> We have `xdg-runtime-dir' in xdg.el

    Daniel> The goal was to avoid loading `xdg.el' unnecessarily for this trivial
    Daniel> function, which is just a wrapper around `getenv'. Do you suggest to use
    Daniel> `declare-function' and require xdg inside `browse-url-qutebrowser-send'?

That would work.

    >> Perhaps Iʼm being paranoid, but maybe you should check the status of
    >> `proc' before sending it a string.

    Daniel> `process-send-string' throwns an error if opening the file failed, so a
    Daniel> status check won't be beneficial. Also note that `make-network-process'
    Daniel> fails if opening the socket file fails. Thanks again.

OK, so I was too paranoid 😀

Robert
--