summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon <simon@hardwired.org.uk>2011-01-30 23:20:12 (GMT)
committer Simon <simon@hardwired.org.uk>2011-01-30 23:20:12 (GMT)
commit61292f5355bb85b3e6e293c5c5b0a2de10d0cd2d (patch)
tree91722142361954dc6a3d0ea6e140311edf1f1ba0 /src
parentbcbcb0063b1f3451b4e329b69d275bcabadc788a (diff)
parent6aaa9e78cd8ce2e11b6696f979a17d92e1c7fc40 (diff)
downloadpowder-61292f5355bb85b3e6e293c5c5b0a2de10d0cd2d.zip
powder-61292f5355bb85b3e6e293c5c5b0a2de10d0cd2d.tar.gz
Fix bugs with console.
Diffstat (limited to 'src')
-rw-r--r--src/interface.c5
-rw-r--r--src/main.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/src/interface.c b/src/interface.c
index 0d963e0..23359ed 100644
--- a/src/interface.c
+++ b/src/interface.c
@@ -3883,7 +3883,7 @@ char *console_ui(pixel *vid_buf,char error[255]) { //TODO: error messages, show
currentcommand->prev_command = last_command;
currentcommand->command = mystrdup(ed.str);
last_command = currentcommand;
- return ed.str;
+ return currentcommand->command;
}
if (sdl_key==SDLK_ESCAPE || sdl_key==SDLK_BACKQUOTE)
{
@@ -3898,6 +3898,7 @@ char *console_ui(pixel *vid_buf,char error[255]) { //TODO: error messages, show
if(ci==-1)
{
strcpy(ed.str, "");
+ ed.cursor = strlen(ed.str);
}
else
{
@@ -3910,11 +3911,13 @@ char *console_ui(pixel *vid_buf,char error[255]) { //TODO: error messages, show
currentcommand = currentcommand->prev_command;
}
strcpy(ed.str, currentcommand->command);
+ ed.cursor = strlen(ed.str);
}
else
{
ci = -1;
strcpy(ed.str, "");
+ ed.cursor = strlen(ed.str);
}
}
}
diff --git a/src/main.c b/src/main.c
index e6f29b4..ac439ba 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1121,7 +1121,7 @@ int main(int argc, char *argv[])
pixel *pers_bg=calloc((XRES+BARSIZE)*YRES, PIXELSIZE);
void *http_ver_check;
char *ver_data=NULL, *tmp;
- char error[255];
+ char error[255] = "";
int i, j, bq, fire_fc=0, do_check=0, old_version=0, http_ret=0, major, minor, old_ver_len;
#ifdef INTERNAL
int vs = 0;
@@ -1707,6 +1707,7 @@ int main(int argc, char *argv[])
//char error[255] = "error!";
sys_pause = 1;
console = console_ui(vid_buf,error);
+ console = mystrdup(console);
strcpy(error,"");
if(console && strcmp(console, "")!=0 && strncmp(console, " ", 1)!=0)
{
@@ -1716,6 +1717,7 @@ int main(int argc, char *argv[])
console5 = strtok(NULL, " ");
if(strcmp(console2, "quit")==0)
{
+ free(console);
break;
}
else if(strcmp(console2, "load")==0 && console3)
@@ -1955,6 +1957,7 @@ int main(int argc, char *argv[])
else
sprintf(error, "Invalid Command", console2);
}
+ free(console);
if(!console_mode)
hud_enable = 1;
}