From e8bfdef6d901431c1d69ef4d70a26451dca6e084 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sun, 13 Sep 2015 07:15:22 -0700 Subject: linenoise: suppress duplicates in Ctrl-R search. * linenoise/linenoise.c (history_search): Don't step through identical lines, which looks as if Ctrl-R is being ignored. --- linenoise/linenoise.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'linenoise') diff --git a/linenoise/linenoise.c b/linenoise/linenoise.c index 5af71ed0..44f88211 100644 --- a/linenoise/linenoise.c +++ b/linenoise/linenoise.c @@ -473,8 +473,14 @@ static int history_search(lino_t *l) } { - int ni = next_hist_match(l, hpat, hp, &dp); - + int ni, sp = hp; + + do { + ni = next_hist_match(l, hpat, sp, &dp); + sp = ni - 1; + } while (ni >= 0 && hi < l->history_len && + ni != hi && + strcmp(l->history[hi], l->history[ni]) == 0); if (ni < 0) break; -- cgit v1.2.3