SDL-1.2: atari:events: use this instead of global pointer

From 7061a93f66e72e832af31ea5716a631001382ac1 Mon Sep 17 00:00:00 2001
From: Miro Kropacek <[EMAIL REDACTED]>
Date: Sat, 29 Jun 2024 11:35:26 +0200
Subject: [PATCH] atari:events: use this instead of global pointer

---
 src/video/ataricommon/SDL_atarievents.c   | 15 +++++++--------
 src/video/ataricommon/SDL_atarievents_c.h |  5 +----
 src/video/ataricommon/SDL_ikbdevents.c    |  2 +-
 src/video/ataricommon/SDL_ikbdevents_c.h  |  2 +-
 src/video/ataricommon/SDL_xbiosevents.c   |  2 +-
 src/video/ataricommon/SDL_xbiosevents_c.h |  2 +-
 src/video/xbios/SDL_xbios.c               |  2 +-
 src/video/xbios/SDL_xbios.h               |  3 +++
 8 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/src/video/ataricommon/SDL_atarievents.c b/src/video/ataricommon/SDL_atarievents.c
index a6946910a..aa23d1e8b 100644
--- a/src/video/ataricommon/SDL_atarievents.c
+++ b/src/video/ataricommon/SDL_atarievents.c
@@ -35,6 +35,8 @@
 #include "../../events/SDL_events_c.h"
 #include "../../timer/SDL_timer_c.h"
 
+#include "../xbios/SDL_xbios.h"	/* XBIOS SDL_PrivateVideoData */
+
 #include "SDL_atarikeys.h"
 #include "SDL_atarievents_c.h"
 #include "SDL_xbiosevents_c.h"
@@ -52,8 +54,6 @@ static SDLKey keymap[ATARIBIOS_MAXKEYS];
 static const char *keytab_normal;
 static const char *keytab_shift;
 
-void (*Atari_ShutdownEvents)(void);
-
 static void Atari_InitializeEvents(_THIS)
 {
 	const char *envr;
@@ -62,11 +62,11 @@ static void Atari_InitializeEvents(_THIS)
 		/* Fall back to hardware (TOS 1.x) */
 		this->InitOSKeymap=AtariIkbd_InitOSKeymap;
 		this->PumpEvents=AtariIkbd_PumpEvents;
-		Atari_ShutdownEvents=AtariIkbd_ShutdownEvents;
+		XBIOS_ShutdownEvents=AtariIkbd_ShutdownEvents;
 	} else {
 		this->InitOSKeymap=AtariXbios_InitOSKeymap;
 		this->PumpEvents=AtariXbios_PumpEvents;
-		Atari_ShutdownEvents=AtariXbios_ShutdownEvents;
+		XBIOS_ShutdownEvents=AtariXbios_ShutdownEvents;
 	}
 
 	envr = SDL_getenv("SDL_ATARI_EVENTSDRIVER");
@@ -78,13 +78,13 @@ static void Atari_InitializeEvents(_THIS)
 	if (SDL_strcmp(envr, "ikbd") == 0) {
 		this->InitOSKeymap=AtariIkbd_InitOSKeymap;
 		this->PumpEvents=AtariIkbd_PumpEvents;
-		Atari_ShutdownEvents=AtariIkbd_ShutdownEvents;
+		XBIOS_ShutdownEvents=AtariIkbd_ShutdownEvents;
 	}
 
 	if (SDL_strcmp(envr, "xbios") == 0) {
 		this->InitOSKeymap=AtariXbios_InitOSKeymap;
 		this->PumpEvents=AtariXbios_PumpEvents;
-		Atari_ShutdownEvents=AtariXbios_ShutdownEvents;
+		XBIOS_ShutdownEvents=AtariXbios_ShutdownEvents;
 	}
 }
 
@@ -155,8 +155,7 @@ void Atari_PumpEvents(_THIS)
 }
 
 /* Atari to Unicode charset translation table */
-
-Uint16 SDL_AtariToUnicodeTable[256]={
+const static Uint16 SDL_AtariToUnicodeTable[256]={
 	/* Standard ASCII characters from 0x00 to 0x7e */
 	/* Unicode stuff from 0x7f to 0xff */
 
diff --git a/src/video/ataricommon/SDL_atarievents_c.h b/src/video/ataricommon/SDL_atarievents_c.h
index 04fec5a6a..0eba476bb 100644
--- a/src/video/ataricommon/SDL_atarievents_c.h
+++ b/src/video/ataricommon/SDL_atarievents_c.h
@@ -30,6 +30,7 @@
 #ifndef _SDL_ATARI_EVENTS_H_
 #define _SDL_ATARI_EVENTS_H_
 
+#include "SDL_keyboard.h"
 #include "../SDL_sysvideo.h"
 
 /* Hidden "this" pointer for the video functions */
@@ -37,8 +38,6 @@
 
 #define ATARIBIOS_MAXKEYS 128
 
-extern void (*Atari_ShutdownEvents)(void);
-
 extern void Atari_InitOSKeymap(_THIS);
 extern void Atari_PumpEvents(_THIS);
 
@@ -46,8 +45,6 @@ extern void SDL_Atari_InitInternalKeymap(_THIS);
 
 extern void SDL_AtariMint_BackgroundTasks(void);
 
-/* Atari to Unicode charset translation table */
-extern Uint16 SDL_AtariToUnicodeTable[256];
 SDL_keysym *SDL_Atari_TranslateKey(int scancode, SDL_keysym *keysym,
 	SDL_bool pressed, short kstate);
 
diff --git a/src/video/ataricommon/SDL_ikbdevents.c b/src/video/ataricommon/SDL_ikbdevents.c
index 060743435..9bfbfe45c 100644
--- a/src/video/ataricommon/SDL_ikbdevents.c
+++ b/src/video/ataricommon/SDL_ikbdevents.c
@@ -178,7 +178,7 @@ void AtariIkbd_PumpEvents(_THIS)
 	}
 }
 
-void AtariIkbd_ShutdownEvents(void)
+void AtariIkbd_ShutdownEvents(_THIS)
 {
 	Supexec(SDL_AtariIkbd_Restore);
 }
diff --git a/src/video/ataricommon/SDL_ikbdevents_c.h b/src/video/ataricommon/SDL_ikbdevents_c.h
index 753e777de..7af15f3c6 100644
--- a/src/video/ataricommon/SDL_ikbdevents_c.h
+++ b/src/video/ataricommon/SDL_ikbdevents_c.h
@@ -37,6 +37,6 @@
 
 extern void AtariIkbd_InitOSKeymap(_THIS);
 extern void AtariIkbd_PumpEvents(_THIS);
-extern void AtariIkbd_ShutdownEvents(void);
+extern void AtariIkbd_ShutdownEvents(_THIS);
 
 #endif /* _SDL_ATARI_IKBDEVENTS_H_ */
diff --git a/src/video/ataricommon/SDL_xbiosevents.c b/src/video/ataricommon/SDL_xbiosevents.c
index 5ea9693ba..12c5602b2 100644
--- a/src/video/ataricommon/SDL_xbiosevents.c
+++ b/src/video/ataricommon/SDL_xbiosevents.c
@@ -78,7 +78,7 @@ void AtariXbios_PumpEvents(_THIS)
 	SDL_AtariXbios_PostMouseEvents(this, SDL_TRUE);
 }
 
-void AtariXbios_ShutdownEvents(void)
+void AtariXbios_ShutdownEvents(_THIS)
 {
 	SDL_AtariXbios_RestoreVectors();
 }
diff --git a/src/video/ataricommon/SDL_xbiosevents_c.h b/src/video/ataricommon/SDL_xbiosevents_c.h
index 55482d338..e983c9957 100644
--- a/src/video/ataricommon/SDL_xbiosevents_c.h
+++ b/src/video/ataricommon/SDL_xbiosevents_c.h
@@ -43,7 +43,7 @@ extern SDL_bool SDL_AtariXbios_enabled;
 
 extern void AtariXbios_InitOSKeymap(_THIS);
 extern void AtariXbios_PumpEvents(_THIS);
-extern void AtariXbios_ShutdownEvents(void);
+extern void AtariXbios_ShutdownEvents(_THIS);
 
 extern void SDL_AtariXbios_InstallVectors(int vectors_mask);
 extern void SDL_AtariXbios_RestoreVectors(void);
diff --git a/src/video/xbios/SDL_xbios.c b/src/video/xbios/SDL_xbios.c
index a6b85b2ca..965832101 100644
--- a/src/video/xbios/SDL_xbios.c
+++ b/src/video/xbios/SDL_xbios.c
@@ -719,7 +719,7 @@ static void XBIOS_VideoQuit(_THIS)
 {
 	int i,j;
 
-	Atari_ShutdownEvents();
+	(*XBIOS_ShutdownEvents)(this);
 
 	/* Restore video mode and palette */
 #ifndef DEBUG_VIDEO_XBIOS
diff --git a/src/video/xbios/SDL_xbios.h b/src/video/xbios/SDL_xbios.h
index ba4c22403..96758a3e8 100644
--- a/src/video/xbios/SDL_xbios.h
+++ b/src/video/xbios/SDL_xbios.h
@@ -81,6 +81,8 @@ struct SDL_PrivateVideoData {
 	void (*freeVbuffers)(_THIS);	/* Free video buffers */
 
 	void (*updRects)(_THIS, int numrects, SDL_Rect *rects);	/* updateRects to use when video ready */
+
+	void (*ShutdownEvents)(_THIS);	/* Shut down related XBIOS/IKBD events driver */
 };
 
 /* _VDO cookie values */
@@ -135,6 +137,7 @@ enum {
 #define XBIOS_freeVbuffers	(this->hidden->freeVbuffers)
 
 #define XBIOS_updRects		(this->hidden->updRects)
+#define XBIOS_ShutdownEvents	(this->hidden->ShutdownEvents)
 
 /*--- Functions prototypes ---*/