Commit Briefs
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.
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.
update telescope to make use of mailcap
Change telescope to make use of mailcap entries. Commands are no longer prompted for how to handle an unknown mime-type. Commands are now executed via execvp(), and the mailcap handling assumes this as part of its interface.
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@.
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.
move includes back to the root directory
Splitting stuff into sub-directories was just a big mistake.