Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 371142 Details for
Bug 498124
dev-lua/luaexpat-1.2.0-r1 with =dev-lang/lua-5.2*: src/lxplib.c:520:30: error: array type has incomplete element type
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
The patch from the luaexpat repository
e981a82571cf.patch.1 (text/plain), 5.56 KB, created by
Stefan Huber
on 2014-02-23 21:56:03 UTC
(
hide
)
Description:
The patch from the luaexpat repository
Filename:
MIME Type:
Creator:
Stefan Huber
Created:
2014-02-23 21:56:03 UTC
Size:
5.56 KB
patch
obsolete
> ># HG changeset patch ># User Tom?s Guisasola Gorham <tomas@tecgraf.puc-rio.br> ># Date 1343430908 -3600 ># Node ID e981a82571cf5c54d5e84f73fbcad7214f699c03 ># Parent 5dfed844930e6ccd981d44290fe51d20255388bc >Add compatibility with Lua 5.2 > >diff -r 5dfed844930e -r e981a82571cf src/lxp/lom.lua >--- a/src/lxp/lom.lua Fri Jul 27 22:03:24 2012 +0100 >+++ b/src/lxp/lom.lua Sat Jul 28 00:15:08 2012 +0100 >@@ -1,13 +1,11 @@ > -- See Copyright Notice in license.html > -- $Id: lom.lua,v 1.6 2005/06/09 19:18:40 tuler Exp $ > >-require "lxp" >+local lxp = require "lxp" > >-local tinsert, tremove, getn = table.insert, table.remove, table.getn >+local tinsert, tremove = table.insert, table.remove > local assert, type, print = assert, type, print >-local lxp = lxp > >-module ("lxp.lom") > > local function starttag (p, tag, attr) > local stack = p:getcallbacks().stack >@@ -19,14 +17,14 @@ > local stack = p:getcallbacks().stack > local element = tremove(stack) > assert(element.tag == tag) >- local level = getn(stack) >+ local level = #stack > tinsert(stack[level], element) > end > > local function text (p, txt) > local stack = p:getcallbacks().stack >- local element = stack[getn(stack)] >- local n = getn(element) >+ local element = stack[#stack] >+ local n = #element > if type(element[n]) == "string" then > element[n] = element[n] .. txt > else >@@ -34,7 +32,7 @@ > end > end > >-function parse (o) >+local function parse (o) > local c = { StartElement = starttag, > EndElement = endtag, > CharacterData = text, >@@ -47,7 +45,7 @@ > status, err = p:parse(o) > if not status then return nil, err end > else >- for l in o do >+ for l in pairs(o) do > status, err = p:parse(l) > if not status then return nil, err end > end >@@ -58,3 +56,4 @@ > return c.stack[1][1] > end > >+return { parse = parse } >diff -r 5dfed844930e -r e981a82571cf src/lxplib.c >--- a/src/lxplib.c Fri Jul 27 22:03:24 2012 +0100 >+++ b/src/lxplib.c Sat Jul 28 00:15:08 2012 +0100 >@@ -13,14 +13,16 @@ > > #include "lua.h" > #include "lauxlib.h" >-#if ! defined (LUA_VERSION_NUM) || LUA_VERSION_NUM < 501 >-#include "compat-5.1.h" >-#endif > > > #include "lxplib.h" > > >+#if !defined(lua_pushliteral) >+#define lua_pushliteral(L, s) \ >+ lua_pushstring(L, "" s, (sizeof(s)/sizeof(char))-1) >+#endif >+ > > enum XPState { > XPSpre, /* parser just initialized */ >@@ -66,7 +68,7 @@ > > > static void lxpclose (lua_State *L, lxp_userdata *xpu) { >- lua_unref(L, xpu->tableref); >+ luaL_unref(L, LUA_REGISTRYINDEX, xpu->tableref); > xpu->tableref = LUA_REFNIL; > if (xpu->parser) > XML_ParserFree(xpu->parser); >@@ -225,7 +227,7 @@ > child->parser = XML_ExternalEntityParserCreate(p, context, NULL); > if (!child->parser) > luaL_error(L, "XML_ParserCreate failed"); >- lua_getref(L, xpu->tableref); /* child uses the same table of its father */ >+ lua_rawgeti(L, LUA_REGISTRYINDEX, xpu->tableref); /*lua_getref(L, xpu->tableref); */ /* child uses the same table of its father */ > child->tableref = luaL_ref(L, LUA_REGISTRYINDEX); > lua_pushstring(L, base); > lua_pushstring(L, systemId); >@@ -449,7 +451,7 @@ > xpu->state = XPSok; > xpu->b = &b; > lua_settop(L, 2); >- lua_getref(L, xpu->tableref); /* to be used by handlers */ >+ lua_rawgeti(L, LUA_REGISTRYINDEX, xpu->tableref); /*lua_getref(L, xpu->tableref);*/ /* to be used by handlers */ > status = XML_Parse(xpu->parser, s, (int)len, s == NULL); > if (xpu->state == XPSstring) dischargestring(xpu); > if (xpu->state == XPSerror) { /* callback error? */ >@@ -517,7 +519,12 @@ > return 1; > } > >-static const struct luaL_reg lxp_meths[] = { >+#if !defined LUA_VERSION_NUM >+/* Lua 5.0 */ >+#define luaL_Reg luaL_reg >+#endif >+ >+static const struct luaL_Reg lxp_meths[] = { > {"parse", lxp_parse}, > {"close", lxp_close}, > {"__gc", parser_gc}, >@@ -530,7 +537,7 @@ > {NULL, NULL} > }; > >-static const struct luaL_reg lxp_funcs[] = { >+static const struct luaL_Reg lxp_funcs[] = { > {"new", lxp_make_parser}, > {NULL, NULL} > }; >@@ -541,25 +548,48 @@ > */ > static void set_info (lua_State *L) { > lua_pushliteral (L, "_COPYRIGHT"); >- lua_pushliteral (L, "Copyright (C) 2003-2007 Kepler Project"); >+ lua_pushliteral (L, "Copyright (C) 2003-2012 Kepler Project"); > lua_settable (L, -3); > lua_pushliteral (L, "_DESCRIPTION"); > lua_pushliteral (L, "LuaExpat is a SAX XML parser based on the Expat library"); > lua_settable (L, -3); > lua_pushliteral (L, "_VERSION"); >- lua_pushliteral (L, "LuaExpat 1.2.0"); >+ lua_pushliteral (L, "LuaExpat 1.3.0"); > lua_settable (L, -3); > } > > >+#if !defined LUA_VERSION_NUM || LUA_VERSION_NUM==501 >+/* >+** Adapted from Lua 5.2.0 >+*/ >+static void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) { >+ luaL_checkstack(L, nup, "too many upvalues"); >+ for (; l->name != NULL; l++) { /* fill the table with given functions */ >+ int i; >+ for (i = 0; i < nup; i++) /* copy upvalues to the top */ >+ lua_pushvalue(L, -nup); >+ lua_pushstring(L, l->name); >+ lua_pushcclosure(L, l->func, nup); /* closure with those upvalues */ >+ lua_settable(L, -(nup + 3)); >+ } >+ lua_pop(L, nup); /* remove upvalues */ >+} >+#endif >+ >+ > int luaopen_lxp (lua_State *L) { >- luaL_newmetatable(L, ParserType); >- lua_pushliteral(L, "__index"); >- lua_pushvalue(L, -2); >- lua_rawset(L, -3); >- luaL_openlib (L, NULL, lxp_meths, 0); >- luaL_openlib (L, "lxp", lxp_funcs, 0); >- set_info (L); >+ luaL_newmetatable(L, ParserType); > >- return 1; >+ lua_pushliteral(L, "__index"); >+ lua_pushvalue(L, -2); >+ lua_rawset(L, -3); >+ >+ luaL_setfuncs (L, lxp_meths, 0); >+ lua_pop (L, 1); /* remove metatable */ >+ >+ lua_newtable (L); >+ luaL_setfuncs (L, lxp_funcs, 0); >+ set_info (L); >+ return 1; > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 498124
:
367874
|
367876
| 371142