If a user defines an asynchronous 'put' command it will fetch an empty
list from the server since server file list is immediately cleared after
every 'put' command. Now that we move the clearing to the builtin 'put'
command, users need to explicitly clear server file list in their custom
'put' commands if they like.
* preserve mark order in f[sx] variables
* Revert "preserve mark order in f[sx] variables"
This reverts commit e02c5e8bb3ec58f7cefafc92419f14c51e6730ef.
* preserve mark order in f[sx], but more efficiently
credit to @gokcehan for the idea
This commit changes previous reading command implementation to an
asynchronous implementation. By the nature of this change, this commit
touches many places in the ui and evaluator. Aim is to fix the following
problems:
- There is no race condition anymore when reading commands and other
commands update the ui at the same time.
- Autocompletion and keymenu is now drawn in the main draw event. This
should fix some ui glitches when a new menu is smaller than the previous
one.
- Window resize event when reading a command is now properly handled.
- Readline actions are now regular commands. This should make it
possible to change the default keybindings for these actions in the
future.
Mentioned in #36.
* gofmt ui.go
* Refactor Nav API around symlinks handling (mostly)
1. Get both `Lstat` and `Stat` while reading the files. Stat info is
used by default, but we still can tell it's a link if needed.
2. Remove all other `Stat` calls from different places.
3. Handle hidden files while reading.
4. `currFile` now returns error if there are no files.
5. `currEmpty` and `currPath` not longer necessary, removed.
6. `open` now returns a named error ErrNotDir, where expected.
7. Side effect: Links that point at directories are now sorted among
"actual" directories.