From fd82450e42c96c514892a051f1e47d2f58ff9930 Mon Sep 17 00:00:00 2001 From: zeromus Date: Sun, 1 Nov 2009 23:44:44 +0000 Subject: [PATCH] fix ram watch recent --- src/drivers/win/config.cpp | 15 +++++++++++++-- src/drivers/win/ramwatch.cpp | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/drivers/win/config.cpp b/src/drivers/win/config.cpp index 546f13e1..d3ed3421 100644 --- a/src/drivers/win/config.cpp +++ b/src/drivers/win/config.cpp @@ -300,10 +300,12 @@ static CFGSTRUCT fceuconfig[] = { void SaveConfig(const char *filename) { + std::string rwtemp[5]; //adelikat: Hacky fix for Ram Watch recent menu for (int x = 0; x < 5; x++) { - strcpy(ramWatchRecent[x],rw_recent_files[x]); + rwtemp[x] = rw_recent_files[x]; + ramWatchRecent[x] = (char*)rwtemp[x].c_str(); } //----------------------------------- @@ -321,7 +323,16 @@ void LoadConfig(const char *filename) //adelikat:Hacky fix for Ram Watch recent menu for (int x = 0; x < 5; x++) { - strncpy(rw_recent_files[x], ramWatchRecent[x]); + if(ramWatchRecent[x]) + { + strncpy(rw_recent_files[x], ramWatchRecent[x], 1024); + free(ramWatchRecent[x]); + ramWatchRecent[x] = 0; + } + else + { + rw_recent_files[x][0] = 0; + } } //----------------------------------- } diff --git a/src/drivers/win/ramwatch.cpp b/src/drivers/win/ramwatch.cpp index fec47752..11a876dc 100644 --- a/src/drivers/win/ramwatch.cpp +++ b/src/drivers/win/ramwatch.cpp @@ -24,7 +24,7 @@ using namespace std; static HMENU ramwatchmenu; static HMENU rwrecentmenu; /*static*/ HACCEL RamWatchAccels = NULL; -char rw_recent_files[MAX_RECENT_WATCHES][1024]; +char rw_recent_files[MAX_RECENT_WATCHES][1024] = {"","","","",""}; //char Watch_Dir[1024]=""; bool RWfileChanged = false; //Keeps track of whether the current watch file has been changed, if so, ramwatch will prompt to save changes bool AutoRWLoad = false; //Keeps track of whether Auto-load is checked