foxygit / doom Log in
commit df1837c1210b85ebc4ec84e42b5edb2001c66463
Author:     Fabian Greffrath <fabian@greffrath.com>
AuthorDate: Thu Oct 29 15:01:56 2020 +0100
Commit:     GitHub <noreply@github.com>
CommitDate: Thu Oct 29 15:01:56 2020 +0100

    hexen: allow for arbitrarily long demo file names (#1329)
---
 src/hexen/g_game.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/hexen/g_game.c b/src/hexen/g_game.c
index f9dca481..9854cf9c 100644
--- a/src/hexen/g_game.c
+++ b/src/hexen/g_game.c
@@ -92,7 +92,7 @@ int consoleplayer;              // player taking events and displaying
 int displayplayer;              // view being displayed
 int levelstarttic;              // gametic at level start

-char demoname[32];
+char *demoname;
 boolean demorecording;
 boolean longtics;               // specify high resolution turning in demos
 boolean lowres_turn;
@@ -1952,6 +1952,7 @@ void G_WriteDemoTiccmd(ticcmd_t * cmd)
 void G_RecordDemo(skill_t skill, int numplayers, int episode, int map,
                   const char *name)
 {
+    size_t demoname_size;
     int i;
     int maxsize;

@@ -1978,8 +1979,9 @@ void G_RecordDemo(skill_t skill, int numplayers, int episode, int map,

     G_InitNew(skill, episode, map);
     usergame = false;
-    M_StringCopy(demoname, name, sizeof(demoname));
-    M_StringConcat(demoname, ".lmp", sizeof(demoname));
+    demoname_size = strlen(name) + 5;
+    demoname = Z_Malloc(demoname_size, PU_STATIC, NULL);
+    M_snprintf(demoname, demoname_size, "%s.lmp", name);
     maxsize = 0x20000;

     //!