Don't save duplicate consecutive commands to history

If the entered command is the same as the last command, don't save
it to history.
This commit is contained in:
Daniel Gibson 2012-09-16 16:21:39 +02:00
parent 04266eee5e
commit aedc76b50e

View file

@ -631,10 +631,17 @@ void idConsoleLocal::KeyDownEvent( int key ) {
cmdSystem->BufferCommandText( CMD_EXEC_APPEND, consoleField.GetBuffer() ); // valid command
cmdSystem->BufferCommandText( CMD_EXEC_APPEND, "\n" );
// copy line to history buffer
historyEditLines[nextHistoryLine % COMMAND_HISTORY] = consoleField;
nextHistoryLine++;
// copy line to history buffer, if it isn't the same as the last command
if ( idStr::Cmp( consoleField.GetBuffer(),
historyEditLines[(nextHistoryLine + COMMAND_HISTORY - 1) % COMMAND_HISTORY].GetBuffer()) != 0 )
{
historyEditLines[nextHistoryLine % COMMAND_HISTORY] = consoleField;
nextHistoryLine++;
}
historyLine = nextHistoryLine;
// clear the next line from old garbage, else the oldest history entry turns up when pressing DOWN
historyEditLines[nextHistoryLine % COMMAND_HISTORY].Clear();
consoleField.Clear();
consoleField.SetWidthInChars( LINE_WIDTH );