Changeset - r1827:25fd3dcd4baa
[Not reviewed]
master
0 3 0
Darkvater - 19 years ago 2005-05-16 13:46:26
darkvater@openttd.org
(svn r2332) - Feature: Add 'clear' command and CTRL+L to empty the console window
- Fix: do not execute emtpy commands anymore
3 files changed with 27 insertions and 4 deletions:
0 comments (0 inline, 0 general)
console.c
Show inline comments
 
@@ -151,6 +151,9 @@ static void IConsoleWndProc(Window* w, W
 
						SetWindowDirty(w);
 
					}
 
					break;
 
					case (WKC_CTRL | 'L'):
 
					IConsoleCmdExec("clear");
 
					break;
 
				case WKC_BACKSPACE: case WKC_DELETE:
 
					if (DeleteTextBufferChar(&_iconsole_cmdline, e->keypress.keycode)) {
 
						IConsoleResetHistoryPos();
 
@@ -222,13 +225,19 @@ void IConsoleInit(void)
 
	IConsoleHistoryAdd("");
 
}
 

	
 
void IConsoleClear(void)
 
void IConsoleClearBuffer(void)
 
{
 
	uint i;
 
	for (i = 0; i <= ICON_BUFFER; i++)
 
	for (i = 0; i <= ICON_BUFFER; i++) {
 
		free(_iconsole_buffer[i]);
 
		_iconsole_buffer[i] = NULL;
 
	}
 
}
 

	
 
static void IConsoleClear(void)
 
{
 
	free(_iconsole_cmdline.buf);
 
	IConsoleClearBuffer();
 
}
 

	
 
static void IConsoleWriteToLogFile(const char* string)
 
@@ -1022,6 +1031,8 @@ void IConsoleCmdExec(const char *cmdstr)
 
	bool longtoken = false;
 
	bool foundtoken = false;
 

	
 
	if (*cmdstr == '\0') return; // don't execute empty commands
 

	
 
	for (cmdptr = cmdstr; *cmdptr != '\0'; cmdptr++) {
 
		if (!IsValidAsciiChar(*cmdptr)) {
 
			IConsoleError("command contains malformed characters, aborting");
console.h
Show inline comments
 
@@ -114,8 +114,8 @@ VARDEF IConsoleModes _iconsole_mode;
 

	
 
// ** console functions ** //
 
void IConsoleInit(void);
 
void IConsoleClear(void);
 
void IConsoleFree(void);
 
void IConsoleClearBuffer(void);
 
void IConsoleResize(void);
 
void IConsoleSwitch(void);
 
void IConsoleClose(void);
console_cmds.c
Show inline comments
 
@@ -268,7 +268,6 @@ DEF_CONSOLE_CMD(ConChangeDirectory)
 
	return true;
 
}
 

	
 

	
 
DEF_CONSOLE_CMD(ConPrintWorkingDirectory)
 
{
 
	const char *path;
 
@@ -287,6 +286,18 @@ DEF_CONSOLE_CMD(ConPrintWorkingDirectory
 
	return true;
 
}
 

	
 
DEF_CONSOLE_CMD(ConClearBuffer)
 
{
 
	if (argc == 0) {
 
		IConsoleHelp("Clear the console buffer. Usage: 'clear'");
 
		return true;
 
	}
 

	
 
	IConsoleClearBuffer();
 
	InvalidateWindow(WC_CONSOLE, 0);
 
	return true;
 
}
 

	
 

	
 
// ********************************* //
 
// * Network Core Console Commands * //
 
@@ -1217,6 +1228,7 @@ void IConsoleStdLibRegister(void)
 
	IConsoleCmdRegister("ls",           ConListFiles);
 
	IConsoleCmdRegister("cd",           ConChangeDirectory);
 
	IConsoleCmdRegister("pwd",          ConPrintWorkingDirectory);
 
	IConsoleCmdRegister("clear",        ConClearBuffer);
 

	
 
	IConsoleAliasRegister("dir",      "ls");
 
	IConsoleAliasRegister("newmap",   "newgame");
0 comments (0 inline, 0 general)