fzy
terminal fuzzy finder picker
git clone https://9o.is/git/fzy.git
commit dfbc1e2732d106de6a6710cafb887ed22b4a830c parent 6568ff3acd3430cb5b15d2adedb9e9a09fd35031 Author: John Hawthorn <john@hawthorn.email> Date: Sun, 17 Jun 2018 11:30:11 -0700 Initialize tty before reading choices It's possible for user input to arrive while fzy was still reading choices from stdin. Previously, this would happen before the correct termios were set, causing fzy to misinterpret Enter as Ctrl-J for example. Fixes #81 Diffstat:
| M | src/fzy.c | | | 5 | ++++- |
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/fzy.c b/src/fzy.c @@ -20,16 +20,17 @@ int main(int argc, char *argv[]) { choices_t choices; choices_init(&choices, &options); - choices_fread(&choices, stdin); if (options.benchmark) { if (!options.filter) { fprintf(stderr, "Must specify -e/--show-matches with --benchmark\n"); exit(EXIT_FAILURE); } + choices_fread(&choices, stdin); for (int i = 0; i < options.benchmark; i++) choices_search(&choices, options.filter); } else if (options.filter) { + choices_fread(&choices, stdin); choices_search(&choices, options.filter); for (size_t i = 0; i < choices_available(&choices); i++) { if (options.show_scores) @@ -41,6 +42,8 @@ int main(int argc, char *argv[]) { tty_t tty; tty_init(&tty, options.tty_filename); + choices_fread(&choices, stdin); + if (options.num_lines > choices.size) options.num_lines = choices.size;