summaryrefslogtreecommitdiffstats
path: root/main/lua-augeas/0001-support-for-Lua-5.2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/lua-augeas/0001-support-for-Lua-5.2.patch')
-rw-r--r--main/lua-augeas/0001-support-for-Lua-5.2.patch93
1 files changed, 93 insertions, 0 deletions
diff --git a/main/lua-augeas/0001-support-for-Lua-5.2.patch b/main/lua-augeas/0001-support-for-Lua-5.2.patch
new file mode 100644
index 000000000..257dbb821
--- /dev/null
+++ b/main/lua-augeas/0001-support-for-Lua-5.2.patch
@@ -0,0 +1,93 @@
+From a6eace5116d1a711218a7c9086a4e3c4db88ee57 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 19 Jun 2013 14:52:00 +0200
+Subject: [PATCH] support for Lua 5.2
+
+---
+ Makefile | 2 +-
+ laugeas.c | 21 +++++++++++++++++----
+ 2 files changed, 18 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index e79a48c..22dca18 100644
+--- a/Makefile
++++ b/Makefile
+@@ -10,7 +10,7 @@ else
+ FULL_VERSION := $(VERSION)
+ endif
+
+-LUAPC := $(shell for pc in lua lua5.1; do \
++LUAPC := $(shell for pc in lua lua5.2 lua5.1; do \
+ $(PKGCONFIG) --exists $$pc && echo $$pc && break; \
+ done)
+
+diff --git a/laugeas.c b/laugeas.c
+index 05b99c3..11a8736 100644
+--- a/laugeas.c
++++ b/laugeas.c
+@@ -4,6 +4,7 @@
+ -- In general, the functions map straight to the C library. See the
+ -- descriptions below for details.
+ */
++#include <assert.h>
+ #include <stdlib.h>
+
+ #include <lua.h>
+@@ -21,6 +22,18 @@
+
+ #define LUA_FILEHANDLE "FILE*"
+
++#if LUA_VERSION_NUM < 502
++# define luaL_newlib(L,l) (lua_newtable(L), luaL_register(L,NULL,l))
++# define luaL_setfuncs(L,l,n) (assert(n==0), luaL_register(L,NULL,l))
++#else
++static int luaL_typerror (lua_State *L, int narg, const char *tname)
++{
++ const char *msg = lua_pushfstring(L, "%s expected, got %s",
++ tname, luaL_typename(L, narg));
++ return luaL_argerror(L, narg, msg);
++}
++#endif
++
+ struct aug_flagmap {
+ const char *name;
+ int value;
+@@ -286,7 +299,7 @@ static int Paug_error_details(lua_State *L)
+ return 1;
+ }
+
+-static const luaL_reg Paug_methods[] = {
++static const luaL_Reg Paug_methods[] = {
+ /*
+ --- Initializes the library.
+ --
+@@ -363,7 +376,7 @@ function print(augobj, path, file_handle)
+ {NULL, NULL}
+ };
+
+-static const luaL_reg Luag_meta_methods[] = {
++static const luaL_Reg Laug_meta_methods[] = {
+ {"__gc", Paug_close},
+ {NULL, NULL}
+ };
+@@ -372,7 +385,7 @@ static const luaL_reg Luag_meta_methods[] = {
+ LUALIB_API int luaopen_augeas(lua_State *L)
+ {
+ struct aug_flagmap *f = Taug_flagmap;
+- luaL_register(L, LIBNAME, Paug_methods);
++ luaL_newlib(L, Paug_methods);
+ lua_pushliteral(L, "version");
+ lua_pushliteral(L, VERSION);
+ lua_settable(L, -3);
+@@ -385,7 +398,7 @@ LUALIB_API int luaopen_augeas(lua_State *L)
+ }
+
+ luaL_newmetatable(L, PAUG_META);
+- luaL_register(L, NULL, Luag_meta_methods);
++ luaL_setfuncs(L, Laug_meta_methods, 0);
+ lua_pushliteral(L, "__index");
+ lua_pushvalue(L, -3);
+ lua_rawset(L, -3);
+--
+1.8.3.1
+