From 7c86575b02d4f80539bcd2da3bef8195b963fa92 Mon Sep 17 00:00:00 2001 From: Joseph Bisch Date: Thu, 6 Apr 2017 20:27:39 -0400 Subject: [PATCH] Don't allow command history to wrap around This changes the behavior of the command history to avoid wrapping back to the bottom once the top of the history is reached. --- src/fe-common/core/command-history.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/fe-common/core/command-history.c b/src/fe-common/core/command-history.c index 405700e5..f957d385 100644 --- a/src/fe-common/core/command-history.c +++ b/src/fe-common/core/command-history.c @@ -113,11 +113,9 @@ const char *command_history_prev(WINDOW_REC *window, const char *text) pos = history->pos; if (pos != NULL) { - history->pos = history->pos->prev; - if (history->pos == NULL) - history->over_counter++; - } else if (history->lines == 0) { - history->over_counter++; + /* don't go past the first entry (no wrap around) */ + if (history->pos->prev != NULL) + history->pos = history->pos->prev; } else { history->pos = g_list_last(history->list); } @@ -128,7 +126,7 @@ const char *command_history_prev(WINDOW_REC *window, const char *text) command_history_add(history, text); } - return history->pos == NULL ? "" : history->pos->data; + return history->pos == NULL ? text : history->pos->data; } const char *command_history_next(WINDOW_REC *window, const char *text) @@ -141,10 +139,6 @@ const char *command_history_next(WINDOW_REC *window, const char *text) if (pos != NULL) history->pos = history->pos->next; - else if (history->over_counter > 0) { - history->over_counter--; - history->pos = history->list; - } if (*text != '\0' && (pos == NULL || g_strcmp0(pos->data, text) != 0)) {