summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonas Fonseca <jonas.fonseca@gmail.com>2014-03-08 11:50:06 -0500
committerJonas Fonseca <jonas.fonseca@gmail.com>2014-03-08 11:50:06 -0500
commit152bf0b542d31ce34bc91cd02fc7cafad448b4f2 (patch)
treee77e99ccc941a3ccafcd41eae97a472c75e79ea4
parentd0b2b352f2f4a4da4b551f845fea9fc771c3dff9 (diff)
Fix prompt-based searching to always use initial search request
-rw-r--r--src/tig.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/tig.c b/src/tig.c
index fbcf40ba..3b3c0428 100644
--- a/src/tig.c
+++ b/src/tig.c
@@ -674,8 +674,13 @@ run_prompt_command(struct view *view, char *cmd)
return get_keybinding(&view->ops->keymap, &input);
} else if (cmd[0] == '/' || cmd[0] == '?') {
- string_ncopy(view->env->search, cmd + 1, strlen(cmd + 1));
- return cmd[0] == '/' ? REQ_FIND_NEXT : REQ_FIND_PREV;
+ const char *search = cmd + 1;
+
+ if (!strcmp(search, view->env->search))
+ return cmd[0] == '/' ? REQ_FIND_NEXT : REQ_FIND_PREV;
+
+ string_ncopy(view->env->search, search, strlen(search));
+ return cmd[0] == '/' ? REQ_SEARCH : REQ_SEARCH_BACK;
} else if (cmd[0] == '!') {
struct view *next = VIEW(REQ_VIEW_PAGER);