aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authormitchell <70453897+667e-11@users.noreply.github.com>2011-12-15 11:16:50 -0500
committermitchell <70453897+667e-11@users.noreply.github.com>2011-12-15 11:16:50 -0500
commit83eabf083b695a296556b35b30be052afd76ee0c (patch)
tree7bee81144b0cd57d96496a50e55d13cc5114ebd7 /core
parent4379015de5be80ac8a4ec280390960fe7f249c11 (diff)
downloadtextadept-83eabf083b695a296556b35b30be052afd76ee0c.tar.gz
textadept-83eabf083b695a296556b35b30be052afd76ee0c.zip
Add support for compiling with LuaJIT.
Diffstat (limited to 'core')
-rw-r--r--core/compat.lua19
-rw-r--r--core/init.lua1
2 files changed, 20 insertions, 0 deletions
diff --git a/core/compat.lua b/core/compat.lua
new file mode 100644
index 00000000..245233b3
--- /dev/null
+++ b/core/compat.lua
@@ -0,0 +1,19 @@
+-- Copyright 2007-2011 Mitchell mitchell<att>caladbolg.net. See LICENSE.
+
+-- When using LuaJIT try to retain backwards compatibility (Lua 5.1).
+-- LuaJIT is compiled with LUAJIT_ENABLE_LUA52COMPAT for some Lua 5.2 features.
+
+-- In Lua 5.1, `xpcall` did not accept function arguments.
+local xpcall51 = xpcall
+function xpcall(f, error, ...)
+ local args = {...}
+ return xpcall51(function() f(unpack(args)) end, error)
+end
+
+-- In Lua 5.1, `load` did not take mode and environment parameters.
+local load51 = load
+function load(ld, source, mode, env)
+ local f, err = load51(ld, source)
+ if f and env then return setfenv(f, env) end
+ return f, err
+end
diff --git a/core/init.lua b/core/init.lua
index 18077169..cd1c9546 100644
--- a/core/init.lua
+++ b/core/init.lua
@@ -5,6 +5,7 @@ _RELEASE = "Textadept 4.3"
package.path = _HOME..'/core/?.lua;'..package.path
os.setlocale('C', 'collate')
+if jit then require 'compat' end
_SCINTILLA = require 'iface'
args = require 'args'
locale = require 'locale'