From cc026cf5d2a66cc70728add95db0ab4b4d9f1019 Mon Sep 17 00:00:00 2001
From: Alam Ed Arias <alam@srb2.org>
Date: Thu, 27 Mar 2025 13:30:50 -0400
Subject: [PATCH] Emscripten: disable TERMIOS support

---
 src/sdl/i_system.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c
index 1e0fe874cd..76e2f37d7e 100644
--- a/src/sdl/i_system.c
+++ b/src/sdl/i_system.c
@@ -103,6 +103,10 @@ typedef LPVOID (WINAPI *p_MapViewOfFile) (HANDLE, DWORD, DWORD, DWORD, SIZE_T);
 #endif
 #endif
 
+#ifdef __EMSCRIPTEN__
+#undef HAVE_TERMIOS // do not read on /dev/tty, JavaScript alert() are blocking
+#endif
+
 #if defined(UNIXCOMMON)
 #include <poll.h>
 #endif
@@ -799,6 +803,11 @@ static inline void I_StartupConsole(void)
 
 	framebuffer = M_CheckParm("-framebuffer");
 
+#ifdef __EMSCRIPTEN__
+	framebuffer = SDL_FALSE;
+	consolevent = SDL_TRUE;
+#endif
+
 	if (framebuffer)
 		consolevent = SDL_FALSE;
 }
@@ -972,7 +981,9 @@ void I_OutputMsg(const char *fmt, ...)
 #endif
 
 	if (!framebuffer)
+	{
 		fprintf(stderr, "%s", txt);
+	}
 #ifdef HAVE_TERMIOS
 	if (consolevent && txt[len-1] == '\n')
 	{
-- 
GitLab