From 905a2e9965fa32e14935741eb9d4e8e7d2420154 Mon Sep 17 00:00:00 2001 From: redsti Date: Sat, 4 Jul 2026 22:27:23 +0200 Subject: [PATCH] fix restarting on linux --- bbp/init.lua | 13 +++++++++++++ lovely/restart-game.toml | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/bbp/init.lua b/bbp/init.lua index 9666f3b..99fef2f 100644 --- a/bbp/init.lua +++ b/bbp/init.lua @@ -1,5 +1,18 @@ local bbp = {} +do + local osName = love.system.getOS() + if (osName ~= "Windows") and (osName ~= "OS X") then -- if Linux + local ffi = require("ffi") + ffi.cdef([[ + char *getenv(const char *name); + int unsetenv(const char* name); + ]]) + LD_PRELOAD = ffi.string(ffi.C.getenv("LD_PRELOAD")) + ffi.C.unsetenv("LD_PRELOAD") -- we don't want lovely being injected into anything else + end +end + bbp.utils = require("bbp.utils") bbp.gui = require("bbp.gui") bbp.loader = require("bbp.loader") diff --git a/lovely/restart-game.toml b/lovely/restart-game.toml index 2f09c9a..3f8a5c9 100644 --- a/lovely/restart-game.toml +++ b/lovely/restart-game.toml @@ -21,7 +21,7 @@ if BBP_doRestart then elseif osName == "OS X" then command = "open beatblock.app " .. launchArgs .. " &" else -- assume Linux - command = "./beatblock " .. launchArgs .. " &" + command = string.format('LD_PRELOAD="%s" exec %s %s &', LD_PRELOAD, arg[-2], launchArgs) end love.window.close()