changeset 14084:fb4726ae5f67 draft

(svn r18631) -Fix [FS#3419]: when making a screenshot from the console the currently executed command would be shown twice
author rubidium <rubidium@openttd.org>
date Fri, 25 Dec 2009 19:17:36 +0000
parents 32a19322a6f8
children a39b48478e66
files src/console_gui.cpp
diffstat 1 files changed, 10 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/console_gui.cpp
+++ b/src/console_gui.cpp
@@ -145,7 +145,7 @@
 static inline void IConsoleResetHistoryPos() {_iconsole_historypos = ICON_HISTORY_SIZE - 1;}
 
 
-static void IConsoleHistoryAdd(const char *cmd);
+static const char *IConsoleHistoryAdd(const char *cmd);
 static void IConsoleHistoryNavigate(int direction);
 
 /** Widgets of the console window. */
@@ -279,13 +279,13 @@
 				IConsoleSwitch();
 				break;
 
-			case WKC_RETURN: case WKC_NUM_ENTER:
+			case WKC_RETURN: case WKC_NUM_ENTER: {
 				IConsolePrintF(CC_COMMAND, "] %s", _iconsole_cmdline.buf);
-				IConsoleHistoryAdd(_iconsole_cmdline.buf);
+				const char *cmd = IConsoleHistoryAdd(_iconsole_cmdline.buf);
+				IConsoleClearCommand();
 
-				IConsoleCmdExec(_iconsole_cmdline.buf);
-				IConsoleClearCommand();
-				break;
+				if (cmd != NULL) IConsoleCmdExec(cmd);
+			} break;
 
 			case WKC_CTRL | WKC_RETURN:
 				_iconsole_mode = (_iconsole_mode == ICONSOLE_FULL) ? ICONSOLE_OPENED : ICONSOLE_FULL;
@@ -412,14 +412,15 @@
  * Add the entered line into the history so you can look it back
  * scroll, etc. Put it to the beginning as it is the latest text
  * @param cmd Text to be entered into the 'history'
+ * @return the command to execute
  */
-static void IConsoleHistoryAdd(const char *cmd)
+static const char *IConsoleHistoryAdd(const char *cmd)
 {
 	/* Strip all spaces at the begin */
 	while (IsWhitespace(*cmd)) cmd++;
 
 	/* Do not put empty command in history */
-	if (StrEmpty(cmd)) return;
+	if (StrEmpty(cmd)) return NULL;
 
 	/* Do not put in history if command is same as previous */
 	if (_iconsole_history[0] == NULL || strcmp(_iconsole_history[0], cmd) != 0) {
@@ -430,6 +431,7 @@
 
 	/* Reset the history position */
 	IConsoleResetHistoryPos();
+	return _iconsole_history[0];
 }
 
 /**