Commits


code: add wrappers for common failure cases Certain calls to well-known functions sometimes result in similar error handling across the code base. Sometimes there's a need to centralise the failure case. Achieve this for common wrappers to often-used functions. The transformation is achieved via coccinelle, commited with this patch. Note that coccinelle can be told to ignore code blocks with comment delimiters. This transformation applies just to telescope's code, and not any of the bundled depdencies in telescope (libgrapheme).


feature: remove external-cmd Now that telescope understands mailcap, there's no need for the use of external-cmd any longer.


add mini-edit-external it's bound by default to C-x in the minibuffer keymap. It'll open an external editor to edit the content of the minibuffer. When the editor exits, we'll call the completion function with the content of the file. Stuff inputted with an external editor are not persisted to the history thought. That would require the UI to handle multiline strings which is currently impossible.


ui: add capability to run external cmds When telescope encounters a file type which it cannot display it prompts the user whether they wish to save the file, or not. This patch extends this idea -- if the file is saved, then the user is prompted to run a command against that downloaded file. This controllable via the 'external-cmd' setting. It defaults to 'xdg-open'. This is based off work originally started by op@.


cmd: introduce toggle-styling This adds a new command `toggle-styling` which toggles the formatting between the defaults (or anything specified in a configuration file), and the "raw" prefixes as defined in the gemini file.


search: update links to new gemcap According to gemini://geminispace.info, the search engine ha been shut down: The search provider geminispace.info has been shut down on 1st June 2024. Indeed, this seems to have happened prematurely but it is no longer serving requests. Therefore, switch to a different one.


change default patch/diff colours to magenta and cyan red/green is not a great choice for diff colours: it's a bad combo for (some) colour-blind people, and they may also carry an implicit meaning of 'good' and 'bad', or 'ok' and 'not ok'. Instead, just like tog and gotwebd, use a combo of purple and cyan, which was choosen by a colour-blind user (I'm told).


support gopher urls for search; document default-search-engine


add cmd_search to search using a search engine This adds a new command `search', bound by default to `s', that prompts for a query and loads and consult the ``oracle'' (the search engine) using default_search_engine (which will be made customizable.) It also temporarly supports only gemini URLs. Feature requested by -fab-, thanks!


some headers cleanup try to not include headers from headers, and remove some redundant include. This helps in modularizing the codebase and also helps during incremental compilations.


include cmd.h only where it is really needed


add default-protocol knob So that now one can decide to assume a finger:// or gopher:// protocol instead of gemini:// for load-url.


simplify if/elseif/else


add boolean variables The 'if zero/nonzero then...' is a bit annoying. Add proper booleans to the grammar of the config and use them when appropriate. Makes the description and the review of configuration files easier. This means that the old set olivetti-mode = 1 can now be written as set olivetti-mode = true Compatibility with the previous integer values will be kept for a while.


sort vars


add the up, root and home commands These navigates respectively one level up in the path hierarchy, to the root directory and to the "home". The home is considered to be the first path component in the form of ~username. `home' is yet to be implemented.


add load-url-use-heuristic knob This is still WIP and may change before the next release. It could be worthwile to resolve the URLs in load-url using the current page as base, so that while browsing <gemini://a.org/b/c>, using load-url to go to "/" would load <gemini://a.org/> instead of <file:///>. The new option `load-url-use-heuristic', if unset, provides exactly this behaviour. It is still a bit rough to use, as for e.g. loading <d.net> would now yield <gemini://a.org/b/d.net> instead of <gemini://d.net>. Will need more work in-tree, but for now add it so we can reason about it. See github issue #10


fmt


replace has_prefix with strncmp


fmt


add mini-kill-whole-line


bind write-buffer to C-x C-w and add `w' alias


reply-last-input: reply input requests on demand Telescope now remebers the last URL (per tab!) that replied with 1X (input request.) The new command reply-last-input allows to resend a query to that URL. It's particularly useful with capsules that make a heavy uses of 10 replies (search engines or similar, interactive pages, etc) because it both saves a network roundtrip and the user from looking for the "search" link all across the page ;-) idea from a conversation with thfr@, thanks!


move util.c declarations in utils.h it's not spelled `util.h' because otherwise it'd get included instead of /usr/include/util.h


simplify the fringe vline print_vline can handle a NULL .line, so I can avoid the long comment and the ugly cast.