Changeset - r11998:fc4347de05c4
[Not reviewed]
master
0 1 0
rubidium - 15 years ago 2009-05-23 22:40:14
rubidium@openttd.org
(svn r16409) -Change: don't add empty lines/duplicates of the previous command to the console's history
1 file changed with 14 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/console_gui.cpp
Show inline comments
 
@@ -332,7 +332,6 @@ void IConsoleGUIInit()
 
	IConsolePrint(CC_WHITE,  "use \"help\" for more information");
 
	IConsolePrint(CC_WHITE,  "");
 
	IConsoleClearCommand();
 
	IConsoleHistoryAdd("");
 
}
 

	
 
void IConsoleClearBuffer()
 
@@ -388,10 +387,20 @@ void IConsoleOpen()  {if (_iconsole_mode
 
 */
 
static void IConsoleHistoryAdd(const char *cmd)
 
{
 
	free(_iconsole_history[ICON_HISTORY_SIZE - 1]);
 
	/* Strip all spaces at the begin */
 
	while (IsWhitespace(*cmd)) cmd++;
 

	
 
	/* Do not put empty command in history */
 
	if (StrEmpty(cmd)) return;
 

	
 
	memmove(&_iconsole_history[1], &_iconsole_history[0], sizeof(_iconsole_history[0]) * (ICON_HISTORY_SIZE - 1));
 
	_iconsole_history[0] = strdup(cmd);
 
	/* Do not put in history if command is same as previous */
 
	if (_iconsole_history[0] == NULL || strcmp(_iconsole_history[0], cmd) != 0) {
 
		free(_iconsole_history[ICON_HISTORY_SIZE - 1]);
 
		memmove(&_iconsole_history[1], &_iconsole_history[0], sizeof(_iconsole_history[0]) * (ICON_HISTORY_SIZE - 1));
 
		_iconsole_history[0] = strdup(cmd);
 
	}
 

	
 
	/* Reset the history position */
 
	IConsoleResetHistoryPos();
 
}
 

	
 
@@ -401,6 +410,7 @@ static void IConsoleHistoryAdd(const cha
 
 */
 
static void IConsoleHistoryNavigate(int direction)
 
{
 
	if (_iconsole_history[0] == NULL) return; // Empty history
 
	int i = _iconsole_historypos + direction;
 

	
 
	/* watch out for overflows, just wrap around */
0 comments (0 inline, 0 general)