Hello, I'm sending two patches with an idea to solve this problem. It's a proof of concept that I'm offering to develop and complete, although I have very little free time. The first patch works with the latest dillo release (3.3.0) but also works with the current repository. It implements changes in dillo, download.dpi, and the file and data DPIs as examples. The second patch works with the latest gopher.dpi repository. The main idea is that the DPIs that handle protocols save the URL and write the file themselves, coordinating with download.dpi and dillo. To do this, they implement a new DPI command: `save_url` d_cmd = a_Dpip_build_cmd("cmd=%s url=%s destination=%s", "save_url", url, dl_dest); Dillo initiates a download, sending it to download.dpi as before. If it's HTTP* or FTP*, it downloads directly as it does now. Otherwise, it will send a `save_url` command to Dillo to coordinate. This allows Dillo to notify the user, verify the security of the change, etc.Currently, Dillo only checks if there's a DPI that handles the requested protocol. (A new function (`a_Dpiapi_is_service_handled(server_str)`) queries `dpid` without executing the DPI. No code is modified in `dpid`. Modifying `dpid` or executing the DPI would allow querying the capabilities of the DPIs, but it doesn't seem necessary.) - If a DPI is present, it sends the `save_url` command to the DPI that coordinates with `download.dpi` via a secondary channel so that downloads can continue even if all Dillo windows are closed. - If the protocol isn't handled, it notifies download.dpi through the secondary channel (this reduces the amount of code). The next step would be to implement `save_url` in other protocol DPIs. A possible change to download.dpi once all is done is to leave download.dpi it as just a GUI for DPIs and extract the code to download HTTP to a DPI. (There's already ftp.dpi) One last thing: can you recommend a simple Git manual? Saludos Diego. El lun, 25 may 2026 a las 21:23, Rodrigo Arias (<rodarima@gmail.com>) escribió:
Hi,
On Mon, May 25, 2026 at 09:25:58AM -0700, Ben Collver wrote:
Good day,
I am using dillo 3.3.0 on Slackware64 15.0.
If I open a gopher directory, right-click on an item, and click Save link as..., this opens a file save dialog. If i click OK, it dismisses the dialog. I expected it to save something, but it creates no new files.
Gopher URI: gopher://gopher.pglaf.org/1/4/0/2/8/40282/ Top item: 40282-0
I found the following workaround:
* Left click 40282-0 * Click Save button in browser toolbar
This creates a new file as expected.
Yes, this is a known limitation of the downloads in Dillo. Using the "Save link as" to fetch a new resource will use wget under the hood, which only allows http(s). You can see the message in the console:
UIcmd_save: /tmp/40282-0.txt ** WARNING **: Ignoring download request for 'gopher://gopher.pglaf.org/0/4/0/2/8/40282/40282-0.txt': not in cache and not downloadable.
Browsing to the target file makes the gopher plugin fetch the file and place it in the Dillo cache (you can see it in about:cache). Then saving the current page (or going back and clicking the "Save link as" entry) works because it fetches it from the cache.
It is planned to solve this some time in the future, but involves complex changes. In the meanwhile, you can use this workaround.
Best, Rodrigo. _______________________________________________ Dillo-dev mailing list -- dillo-dev@mailman3.com To unsubscribe send an email to dillo-dev-leave@mailman3.com