From: notaz Date: Sun, 10 Sep 2023 19:06:56 +0000 (+0300) Subject: libretro: allow unlimited cheat length X-Git-Tag: r24l~189 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=59a0eb99afce1337cea26923ac6de678c5531098;p=pcsx_rearmed.git libretro: allow unlimited cheat length notaz/pcsx_rearmed#306 --- diff --git a/frontend/libretro.c b/frontend/libretro.c index b64c3cae..4fe86376 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -995,12 +995,13 @@ void retro_cheat_reset(void) void retro_cheat_set(unsigned index, bool enabled, const char *code) { - char buf[256]; - int ret; + int ret = -1; + char *buf; - // cheat funcs are destructive, need a copy.. - strncpy(buf, code, sizeof(buf)); - buf[sizeof(buf) - 1] = 0; + // cheat funcs are destructive, need a copy... + buf = strdup(code); + if (buf == NULL) + goto finish; //Prepare buffered cheat for PCSX's AddCheat fucntion. int cursor = 0; @@ -1026,10 +1027,12 @@ void retro_cheat_set(unsigned index, bool enabled, const char *code) else ret = AddCheat("", buf); +finish: if (ret != 0) SysPrintf("Failed to set cheat %#u\n", index); else if (index < NumCheats) Cheats[index].Enabled = enabled; + free(buf); } // just in case, maybe a win-rt port in the future?