history: remember the list of executed commands across sessions

Signed-off-by: Marco Diego Aurélio Mesquita <marcodiegomesquita@gmail.com>
master
Marco Diego Aurélio Mesquita 2017-09-14 20:02:24 -03:00 committed by Benno Schulenberg
parent 5f70229c7e
commit a75bf0a1d1
1 changed files with 7 additions and 3 deletions

View File

@ -2828,8 +2828,11 @@ void load_history(void)
/* Encode any embedded NUL as 0x0A. */
unsunder(line, read);
update_history(history, line);
} else
} else if (history == &search_history)
history = &replace_history;
else
history = &execute_history;
}
fclose(hist);
@ -2871,7 +2874,7 @@ void save_history(void)
/* If the histories are unchanged or empty, don't bother saving them. */
if (!history_has_changed() || (searchbot->lineno == 1 &&
replacebot->lineno == 1))
replacebot->lineno == 1 && executebot->lineno == 1))
return;
searchhist = histfilename();
@ -2888,7 +2891,8 @@ void save_history(void)
/* Don't allow others to read or write the history file. */
chmod(searchhist, S_IRUSR | S_IWUSR);
if (!writehist(hist, searchage) || !writehist(hist, replaceage))
if (!writehist(hist, searchage) || !writehist(hist, replaceage) ||
!writehist(hist, executetop))
fprintf(stderr, _("Error writing %s: %s\n"), searchhist,
strerror(errno));