From 8f4e032c261e817f939ffd2c65e878d4f6eea0ec Mon Sep 17 00:00:00 2001 From: mitchell <70453897+667e-11@users.noreply.github.com> Date: Thu, 10 Apr 2014 11:01:06 -0400 Subject: Temporarily disable spawn in OSX due to GLib crashes. --- core/init.lua | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'core/init.lua') diff --git a/core/init.lua b/core/init.lua index 3ac9d131..f9b6a14c 100644 --- a/core/init.lua +++ b/core/init.lua @@ -16,15 +16,27 @@ keys = require('keys') _M = {} -- language modules table -- LuaJIT compatibility. if jit then module, package.searchers, bit32 = nil, package.loaders, bit end --- curses compatibility. -if CURSES then +-- curses and OSX compatibility. +if CURSES or OSX then + local spawn_ = spawn function spawn(argv, working_dir, stdout_cb, stderr_cb, exit_cb) - local current_dir = lfs.currentdir() - lfs.chdir(working_dir) - local p = io.popen(argv..' 2>&1') - stdout_cb(p:read('*all')) - exit_cb(select(3, p:close())) - lfs.chdir(current_dir) +-- if OSX then +-- -- Workaround for GLib abort caused by failed assertion. +-- local p, err = spawn_(argv, working_dir, stdout_cb, stderr_cb) +-- if not p then return p, err end +-- timeout(1, function() +-- if p:status() == 'running' then return true end +-- exit_cb('Process completed') +-- end) +-- else + local current_dir = lfs.currentdir() + lfs.chdir(working_dir) + local p = io.popen(argv..' 2>&1') + stdout_cb(p:read('*all')) + exit_cb(select(3, p:close())) + lfs.chdir(current_dir) + return p +-- end end end -- cgit v1.2.3