Commit ccf7aa52aad631e1db1bbda8f3a3784ef3cd182b

Authored by ths
1 parent 6240d646

Handle history additions properly, by Andreas Schwab.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3835 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 2 additions and 2 deletions
readline.c
@@ -267,7 +267,7 @@ static void term_hist_add(const char *cmdline) @@ -267,7 +267,7 @@ static void term_hist_add(const char *cmdline)
267 new_entry = hist_entry; 267 new_entry = hist_entry;
268 /* Put this entry at the end of history */ 268 /* Put this entry at the end of history */
269 memmove(&term_history[idx], &term_history[idx + 1], 269 memmove(&term_history[idx], &term_history[idx + 1],
270 - &term_history[TERM_MAX_CMDS] - &term_history[idx + 1]); 270 + (TERM_MAX_CMDS - idx + 1) * sizeof(char *));
271 term_history[TERM_MAX_CMDS - 1] = NULL; 271 term_history[TERM_MAX_CMDS - 1] = NULL;
272 for (; idx < TERM_MAX_CMDS; idx++) { 272 for (; idx < TERM_MAX_CMDS; idx++) {
273 if (term_history[idx] == NULL) 273 if (term_history[idx] == NULL)
@@ -280,7 +280,7 @@ static void term_hist_add(const char *cmdline) @@ -280,7 +280,7 @@ static void term_hist_add(const char *cmdline)
280 /* Need to get one free slot */ 280 /* Need to get one free slot */
281 free(term_history[0]); 281 free(term_history[0]);
282 memcpy(term_history, &term_history[1], 282 memcpy(term_history, &term_history[1],
283 - &term_history[TERM_MAX_CMDS] - &term_history[1]); 283 + (TERM_MAX_CMDS - 1) * sizeof(char *));
284 term_history[TERM_MAX_CMDS - 1] = NULL; 284 term_history[TERM_MAX_CMDS - 1] = NULL;
285 idx = TERM_MAX_CMDS - 1; 285 idx = TERM_MAX_CMDS - 1;
286 } 286 }