mirror of
https://github.com/RTimothyEdwards/magic.git
synced 2026-08-29 09:30:46 +02:00
Glue between the null display driver and the rest of Magic so that running with -d null does not require any process-level resources (signals, timers, stdin, an X display, or a Tcl interpreter). * utils/signals.c — gate setitimer, fcntl-based file watches, kill and the legacy sigsetmask/sigaction setup behind #ifdef __EMSCRIPTEN__. Every signals path becomes a no-op in WASM. Also fixes DBWriteBackup() being called with one argument when its real prototype takes three. * windows/windDisp.c — WindUpdate() returns immediately when GrDisplayStatus == DISPLAY_SUSPEND. This is the runtime counterpart to the null driver's DISPLAY_SUSPEND state. * extflat/EFargs.c — EFArgs() with a missing input name no longer jumps to "usage:" in headless WASM (which would call MainExit and kill the process); it sets *err_result and returns NULL so the caller can decide what to do. Native MAGIC_WRAPPER and native non-MAGIC_WRAPPER builds keep their original behavior. * dbwind/DBWcommands.c — registers exttosim / ext2sim / exttospice / ext2spice in non-MAGIC_WRAPPER builds. Without this, WASM users could not invoke these commands at all (they were previously inside an #ifdef MAGIC_WRAPPER block). The C implementations (CmdExtToSim / CmdExtToSpice) are linked unconditionally outside modular builds. * textio/txCommands.c, textio/textio.h — TxDispatchString(), a new library-style command entry point that parses a single string, dispatches it through WindSendCommand and returns a status code. This is what magic_wasm_run_command() calls from JavaScript.