From 61df098668a97f94877837419b8d9b81573d5ad8 Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Fri, 3 Apr 2020 00:52:51 +0000
Subject: [PATCH] Better attempt to fix taskmanager appname...

Add new ciolib_appname and call SDL_RegisterApp(ciolib_appname, 0, NULL)
when the symbols are loaded.
---
 src/conio/SDL_win32_main.c | 5 ++---
 src/conio/ciolib.c         | 1 +
 src/conio/ciolib.h         | 1 +
 src/conio/sdlfuncs.c       | 8 ++++++++
 4 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/conio/SDL_win32_main.c b/src/conio/SDL_win32_main.c
index dd6f9f3ba5..96f87f245a 100644
--- a/src/conio/SDL_win32_main.c
+++ b/src/conio/SDL_win32_main.c
@@ -15,7 +15,7 @@
 #define DIR_SEPERATOR TEXT("/")
 #include <direct.h>
 
-#include "SDL_main.h"			/* SDL_RegisterApp() which sets program name... */
+#include "ciolib.h"			/* ciolib_appname */
 
 /* Parse a command line buffer into arguments */
 static int ParseCommandLine(char *cmdline, char **argv)
@@ -95,8 +95,7 @@ static int console_main(int argc, char *argv[], char **env)
 	}
 	strncpy(bufp, appname, n);
 	bufp[n] = '\0';
-	appname = bufp;
-	SDL_RegisterApp(appname, 0, NULL);
+	ciolib_appname = bufp;
 
 	/* Run the application main() code */
 	n=CIOLIB_main(argc, argv);
diff --git a/src/conio/ciolib.c b/src/conio/ciolib.c
index 9455426dd6..24b0a99b93 100644
--- a/src/conio/ciolib.c
+++ b/src/conio/ciolib.c
@@ -81,6 +81,7 @@ CIOLIBEXPORT int hold_update=0;
 CIOLIBEXPORT int puttext_can_move=0;
 CIOLIBEXPORT int ciolib_xlat=0;
 CIOLIBEXPORT int ciolib_reaper=TRUE;
+CIOLIBEXPORT char *ciolib_appname=NULL;
 static int initialized=0;
 
 CIOLIBEXPORT int CIOLIBCALL ciolib_movetext(int sx, int sy, int ex, int ey, int dx, int dy);
diff --git a/src/conio/ciolib.h b/src/conio/ciolib.h
index 69f1ea4cfa..6d67d952f2 100644
--- a/src/conio/ciolib.h
+++ b/src/conio/ciolib.h
@@ -379,6 +379,7 @@ CIOLIBEXPORTVAR int ciolib_xlat;
 #define CIOLIB_XLAT_ALL		(CIOLIB_XLAT_CHARS | CIOLIB_XLAT_ATTR)
 
 CIOLIBEXPORTVAR int ciolib_reaper;
+CIOLIBEXPORTVAR char *ciolib_appname;
 
 #define _conio_kbhit()		kbhit()
 
diff --git a/src/conio/sdlfuncs.c b/src/conio/sdlfuncs.c
index 717d771697..2ae8d3cbbe 100644
--- a/src/conio/sdlfuncs.c
+++ b/src/conio/sdlfuncs.c
@@ -16,6 +16,8 @@ struct sdlfuncs sdl;
 #endif
 #include <xp_dl.h>
 
+#include "ciolib.h"
+
 static int sdl_funcs_loaded=0;
 static int sdl_initialized=0;
 static int sdl_audio_initialized=0;
@@ -228,6 +230,12 @@ int load_sdl_funcs(struct sdlfuncs *sdlf)
 		xp_dlclose(sdl_dll);
 		return(-1);
 	}
+	{
+		int (HACK_HACK_HACK *ra)(char *name, Uint32 style, void *hInst);
+		if ((ra = xp_dlsym(sdl_dll, SDL_RegisterApp)) != NULL) {
+			ra(ciolib_appname, 0, NULL);
+		}
+	}
 
 	sdlf->gotfuncs=1;
 	sdl_funcs_loaded=1;
-- 
GitLab