Commits


make forward_line() keep the same column We should probably instead introduce the concept of ``target column'' but for now this brings back the behaviour pre-point_offset introduction, even if it gets it wrong when tabulator characters are involved.


update vline len after character delete


ensure vline len is correctly accounted for


clean up utf8.h includes that are no longer needed


use a byte offset to track the point in the line Instead of using a code-point offset, use a raw byte offset and navigate backward and forward by means of graphemes. This gives a correct "visual" backward/forward navigation through characters.


cmd.c: add unistd.h for getpid()


move exec routines to their own file This leaves the room open to further improvements and tries to keep it apart from the UI itself.


minibuffer: assume exit_minibuffer as abortfn


minibuffer: redesign enter_minibuffer and fix regression use a struct to pass the arguments to enter_minibuffer since they're so many. While here, also allow to pass a printf(3)-like format string for the prompt and specify the initial input. Also, fix a regression: if we don't set vline.cplen we can't properly handle the input, so do that in enter_minibuffer to avoid having to fix all the callers.


make yornp data be a void pointer instead of a tab


untangle a bit buffers and parsers Now buffers have a nicer interface, taking explicitly the buffer where they push stuff, and the code that deals with buffers doesn't need to peek into the parsers. The parsers now are 'pure' structs without state attached to them, the state was moved to the buffer.


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.


minibuffer: pass the string to the donefn() This avoids the callback to have to use the (private) minibuffer_compl_text() to get the string. It'll simplifies a follow-up changes, too.


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@.


wip'n'crude: open downloads with xdg-open


mini-kill-whole-line: recompute completions When issuing the mini-kill-whole-line command, make sure we recompute the completions in the minibuffer, otherwise completions don't work as intended. Noticed by op@ on IRC.


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.


convert telescope to use ev instead of libevent libevent is a very cool library, I like the APIs and enjoy using it. However, telescope is not as large and doesn't have as many file descriptor, so libevent is quite ``too big'' for our needs. ev started as a small event loop on top of poll(2) for amused, and can be used here too, it just needed to grow the ability to handle several timers, as we need quite some on telescope (in fact, we use more timers than fds!)


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!


add client_cert_temp flag to the struct tab This way we can improve unload-certificate prompt. While here, move the cert handling in make_request().


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.


add unload-certificate to stop using a certificate


include cmd.h only where it is really needed


add client-certificate-info