From 3f1f1a8ebf2294ed07eadbb32b1f05879e9d44f0 Mon Sep 17 00:00:00 2001 From: jsalmon3 <> Date: Wed, 22 Jan 2003 18:20:35 +0000 Subject: [PATCH] Some cleanup of save replay menu --- src/ui/menus.cpp | 47 +++++++++++++++++++---------------------------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/src/ui/menus.cpp b/src/ui/menus.cpp index 574efc0ae..6e465a57f 100644 --- a/src/ui/menus.cpp +++ b/src/ui/menus.cpp @@ -2213,7 +2213,6 @@ local void SaveReplay(void) menu->items[1].d.input.nch = 0; menu->items[1].d.input.maxch = 28; - EndMenu(); ProcessMenu("menu-save-replay", 1); } @@ -2237,46 +2236,38 @@ local void SaveReplayEnterAction(Menuitem *mi, int key) */ local void SaveReplayOk(void) { - char filename[128]; - char tmpname[128]; - FILE *tmpfile; - FILE *newfile; + FILE *fd; Menu *menu; char *buf; struct stat s; + char *ptr; menu = FindMenu("menu-save-replay"); #ifdef WIN32 - sprintf(tmpname,"logs"); + sprintf(TempPathBuf, "logs/"); #else - sprintf(tmpname,"%s/%s",getenv("HOME"),FREECRAFT_HOME_PATH); - strcat(tmpname,"/logs"); + sprintf(TempPathBuf, "%s/%s", getenv("HOME"), FREECRAFT_HOME_PATH); + strcat(TempPathBuf, "/logs/"); #endif - strcpy(filename, tmpname); - strcat(filename,"/"); - strncat(filename, menu->items[1].d.input.buffer, - menu->items[1].d.input.nch); + ptr = TempPathBuf + strlen(TempPathBuf); + sprintf(ptr, "log_of_freecraft_%d.log", ThisPlayer->Player); - if (!strstr(menu->items[1].d.input.buffer + menu->items[1].d.input.nch - 4, - ".log")) - { - strcat(filename, ".log"); - } - - sprintf(tmpname,"%s/log_of_freecraft_%d.log",tmpname,ThisPlayer->Player); - - stat(tmpname, &s); + stat(TempPathBuf, &s); buf = (char*)malloc(s.st_size); + fd = fopen(TempPathBuf, "rb"); + fread(buf, s.st_size, 1, fd); + fclose(fd); - tmpfile = fopen(tmpname,"rb"); - newfile = fopen(filename,"wb"); + strncpy(ptr, menu->items[1].d.input.buffer, menu->items[1].d.input.nch); + ptr[menu->items[1].d.input.nch] = '\0'; + if (!strcasestr(menu->items[1].d.input.buffer, ".log\0")) { + strcat(ptr, ".log"); + } - fread(buf, s.st_size, 1, tmpfile); - fwrite(buf, s.st_size, 1, newfile); - - fclose(tmpfile); - fclose(newfile); + fd = fopen(TempPathBuf, "wb"); + fwrite(buf, s.st_size, 1, fd); + fclose(fd); EndMenu(); }