From fceff74eae7daf2026a515448f62eb99ba1b83d6 Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Fri, 18 Nov 2016 21:35:52 -0800 Subject: Allow building lpeg into vis If lpeg is built statically, this allows for a completely static vis binary that still supports syntax highlighting. --- Makefile | 2 ++ vis-lua.c | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/Makefile b/Makefile index 962fb7e..2311f3d 100644 --- a/Makefile +++ b/Makefile @@ -16,6 +16,7 @@ MANPREFIX ?= ${PREFIX}/man VERSION = $(shell git describe --always 2>/dev/null || echo "0.2") CONFIG_LUA ?= 1 +CONFIG_BUILTIN_LPEG ?= 0 CONFIG_ACL ?= 0 CONFIG_SELINUX ?= 0 @@ -28,6 +29,7 @@ CFLAGS_VIS = $(CFLAGS_AUTO) $(CFLAGS_TERMKEY) $(CFLAGS_CURSES) $(CFLAGS_ACL) \ CFLAGS_VIS += -DVIS_PATH=\"${SHAREPREFIX}/vis\" CFLAGS_VIS += -DCONFIG_LUA=${CONFIG_LUA} +CFLAGS_VIS += -DCONFIG_BUILTIN_LPEG=${CONFIG_BUILTIN_LPEG} CFLAGS_VIS += -DCONFIG_SELINUX=${CONFIG_SELINUX} CFLAGS_VIS += -DCONFIG_ACL=${CONFIG_ACL} CFLAGS_VIS += ${CFLAGS_DEBUG} diff --git a/vis-lua.c b/vis-lua.c index 29e94ef..95cfe6e 100644 --- a/vis-lua.c +++ b/vis-lua.c @@ -1889,6 +1889,15 @@ void vis_lua_init(Vis *vis) { vis->lua = L; luaL_openlibs(L); +#if CONFIG_BUILTIN_LPEG + extern int luaopen_lpeg(lua_State *L); + lua_getglobal(L, "package"); + lua_getfield(L, -1, "preload"); + lua_pushcfunction(L, luaopen_lpeg); + lua_setfield(L, -2, "lpeg"); + lua_pop(L, 2); +#endif + /* remove any relative paths from lua's default package.path */ vis_lua_path_strip(vis); -- cgit v1.2.3