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();
 }