summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordominik <dominik@openttd.org>2004-12-13 20:45:55 +0000
committerdominik <dominik@openttd.org>2004-12-13 20:45:55 +0000
commit9aeb0e1d3064ca32e9ed182cde4daa35e4761b57 (patch)
tree2e4fc9cb7fb2001f14a2c572517e09e897692008
parentdef5fc3ff7bc5ffc8d3705b467261d8c94047437 (diff)
downloadopenttd-9aeb0e1d3064ca32e9ed182cde4daa35e4761b57.tar.xz
(svn r1073) - condebugger extended a bit [shows the commandline] (sign_de)
- fixed handling of aliases with parameters (sign_de)
-rw-r--r--console.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/console.c b/console.c
index bee1ef813..626c062cf 100644
--- a/console.c
+++ b/console.c
@@ -603,7 +603,8 @@ void IConsoleAliasExec(const char* cmdline, char* tokens[20], byte tokentypes[20
i++;
if (cmdline[i] == '+') {
t=1;
- while ((tokens[t]!=NULL) && (t<20)) {
+ while ((tokens[t]!=NULL) && (t<20) &&
+ ((tokentypes[t] == ICONSOLE_VAR_STRING) || (tokentypes[t] == ICONSOLE_VAR_UNKNOWN))) {
int l2 = strlen(tokens[t]);
*linestream = '"';
linestream++;
@@ -621,9 +622,13 @@ void IConsoleAliasExec(const char* cmdline, char* tokens[20], byte tokentypes[20
t = ((byte)cmdline[i]) - 64;
if ((t<20) && (tokens[t]!=NULL)) {
l2 = strlen(tokens[t]);
+ *linestream = '"';
+ linestream++;
memcpy(linestream,tokens[t],l2);
- x += l2;
linestream += l2;
+ *linestream = '"';
+ linestream++;
+ x += l2+2;
}
}
} else if (cmdline[i] == '\\') {
@@ -659,9 +664,11 @@ void IConsoleAliasExec(const char* cmdline, char* tokens[20], byte tokentypes[20
*linestream = '\0';
}
- free(linestream_s);
+ for (i=0; i<c; i++) {
+ IConsoleCmdExec(lines[i]);
+ }
- for (i=0; i<c; i++) IConsoleCmdExec(lines[i]);
+ free(linestream_s);
}
void IConsoleVarInsert(_iconsole_var* item_new, const char* name)
@@ -1035,6 +1042,9 @@ void IConsoleCmdExec(const char* cmdstr)
int i;
int l;
+ if (_stdlib_con_developer)
+ IConsolePrintF(_iconsole_color_debug, "CONDEBUG: execution_cmdline: %s", cmdstr);
+
//** clearing buffer **//
for (i = 0; i < 20; i++) {