From bb6d0f1179e74391764a274f2e8581f3fa50b0c6 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 9 Sep 2014 19:49:44 +0200 Subject: [PATCH] Update LuCI --- modules | 2 +- ...e.html-add-label-that-can-be-styled.patch} | 0 ...-field-mmap-to-the-more-generic-data.patch | 106 ------------- ...range-static-on-variable-declaration.patch | 17 --- ...ing-templates-to-the-template-parser.patch | 142 ------------------ ...ng-templates-to-luci.template-module.patch | 67 --------- 6 files changed, 1 insertion(+), 333 deletions(-) rename patches/packages/luci/{0005-fvalue.html-add-label-that-can-be-styled.patch => 0001-fvalue.html-add-label-that-can-be-styled.patch} (100%) delete mode 100644 patches/packages/luci/0001-libs-web-rename-template_parser-field-mmap-to-the-more-generic-data.patch delete mode 100644 patches/packages/luci/0002-libs-web-remove-strange-static-on-variable-declaration.patch delete mode 100644 patches/packages/luci/0003-libs-web-add-support-for-string-templates-to-the-template-parser.patch delete mode 100644 patches/packages/luci/0004-libs-web-add-support-for-string-templates-to-luci.template-module.patch diff --git a/modules b/modules index 04cac4ca..24370910 100644 --- a/modules +++ b/modules @@ -15,4 +15,4 @@ PACKAGES_ROUTING_COMMIT=1a999ad02b49a5ca1315d7f21555039372a6e4d5 PACKAGES_ROUTING_BRANCH=for-14.07 PACKAGES_LUCI_REPO=git://git.openwrt.org/project/luci.git -PACKAGES_LUCI_COMMIT=834961d9f34f5282f98a480196924a42541d1474 +PACKAGES_LUCI_COMMIT=108a146a38f3facc9bdfe1542e6144dc49a67317 diff --git a/patches/packages/luci/0005-fvalue.html-add-label-that-can-be-styled.patch b/patches/packages/luci/0001-fvalue.html-add-label-that-can-be-styled.patch similarity index 100% rename from patches/packages/luci/0005-fvalue.html-add-label-that-can-be-styled.patch rename to patches/packages/luci/0001-fvalue.html-add-label-that-can-be-styled.patch diff --git a/patches/packages/luci/0001-libs-web-rename-template_parser-field-mmap-to-the-more-generic-data.patch b/patches/packages/luci/0001-libs-web-rename-template_parser-field-mmap-to-the-more-generic-data.patch deleted file mode 100644 index dad16cfd..00000000 --- a/patches/packages/luci/0001-libs-web-rename-template_parser-field-mmap-to-the-more-generic-data.patch +++ /dev/null @@ -1,106 +0,0 @@ -From: Matthias Schiffer -Date: Fri, 16 May 2014 10:57:26 +0200 -Subject: libs/web: rename template_parser field "mmap" to the more generic "data" - -diff --git a/modules/base/src/template_parser.c b/modules/base/src/template_parser.c -index 6054451..fc8607b 100644 ---- a/modules/base/src/template_parser.c -+++ b/modules/base/src/template_parser.c -@@ -82,15 +82,15 @@ struct template_parser * template_open(const char *file) - goto err; - - parser->size = s.st_size; -- parser->mmap = mmap(NULL, parser->size, PROT_READ, MAP_PRIVATE, -+ parser->data = mmap(NULL, parser->size, PROT_READ, MAP_PRIVATE, - parser->fd, 0); - -- if (parser->mmap != MAP_FAILED) -+ if (parser->data != MAP_FAILED) - { -- parser->off = parser->mmap; -+ parser->off = parser->data; - parser->cur_chunk.type = T_TYPE_INIT; -- parser->cur_chunk.s = parser->mmap; -- parser->cur_chunk.e = parser->mmap; -+ parser->cur_chunk.s = parser->data; -+ parser->cur_chunk.e = parser->data; - - return parser; - } -@@ -108,8 +108,8 @@ void template_close(struct template_parser *parser) - if (parser->gc != NULL) - free(parser->gc); - -- if ((parser->mmap != NULL) && (parser->mmap != MAP_FAILED)) -- munmap(parser->mmap, parser->size); -+ if ((parser->data != NULL) && (parser->data != MAP_FAILED)) -+ munmap(parser->data, parser->size); - - if (parser->fd >= 0) - close(parser->fd); -@@ -121,7 +121,7 @@ void template_text(struct template_parser *parser, const char *e) - { - const char *s = parser->off; - -- if (s < (parser->mmap + parser->size)) -+ if (s < (parser->data + parser->size)) - { - if (parser->strip_after) - { -@@ -291,7 +291,7 @@ template_format_chunk(struct template_parser *parser, size_t *sz) - const char *template_reader(lua_State *L, void *ud, size_t *sz) - { - struct template_parser *parser = ud; -- int rem = parser->size - (parser->off - parser->mmap); -+ int rem = parser->size - (parser->off - parser->data); - char *tag; - - parser->prv_chunk = parser->cur_chunk; -@@ -314,8 +314,8 @@ const char *template_reader(lua_State *L, void *ud, size_t *sz) - } - else - { -- template_text(parser, parser->mmap + parser->size); -- parser->off = parser->mmap + parser->size; -+ template_text(parser, parser->data + parser->size); -+ parser->off = parser->data + parser->size; - } - } - -@@ -331,7 +331,7 @@ const char *template_reader(lua_State *L, void *ud, size_t *sz) - else - { - /* unexpected EOF */ -- template_code(parser, parser->mmap + parser->size); -+ template_code(parser, parser->data + parser->size); - - *sz = 1; - return "\033"; -@@ -366,12 +366,12 @@ int template_error(lua_State *L, struct template_parser *parser) - - if (strfind((char *)err, strlen(err), "'char(27)'", 10) != NULL) - { -- off = parser->mmap + parser->size; -+ off = parser->data + parser->size; - err = "'%>' expected before end of file"; - chunkline = 0; - } - -- for (ptr = parser->mmap; ptr < off; ptr++) -+ for (ptr = parser->data; ptr < off; ptr++) - if (*ptr == '\n') - line++; - -diff --git a/modules/base/src/template_parser.h b/modules/base/src/template_parser.h -index d1c6062..ad03cbc 100644 ---- a/modules/base/src/template_parser.h -+++ b/modules/base/src/template_parser.h -@@ -58,7 +58,7 @@ struct template_chunk { - struct template_parser { - int fd; - uint32_t size; -- char *mmap; -+ char *data; - char *off; - char *gc; - int line; diff --git a/patches/packages/luci/0002-libs-web-remove-strange-static-on-variable-declaration.patch b/patches/packages/luci/0002-libs-web-remove-strange-static-on-variable-declaration.patch deleted file mode 100644 index 8b9808c2..00000000 --- a/patches/packages/luci/0002-libs-web-remove-strange-static-on-variable-declaration.patch +++ /dev/null @@ -1,17 +0,0 @@ -From: Matthias Schiffer -Date: Fri, 16 May 2014 11:29:22 +0200 -Subject: libs/web: remove strange 'static' on variable declaration - -diff --git a/modules/base/src/template_parser.c b/modules/base/src/template_parser.c -index fc8607b..1aa5131 100644 ---- a/modules/base/src/template_parser.c -+++ b/modules/base/src/template_parser.c -@@ -66,7 +66,7 @@ static char *strfind(char *haystack, int hslen, const char *needle, int ndlen) - struct template_parser * template_open(const char *file) - { - struct stat s; -- static struct template_parser *parser; -+ struct template_parser *parser; - - if (!(parser = malloc(sizeof(*parser)))) - goto err; diff --git a/patches/packages/luci/0003-libs-web-add-support-for-string-templates-to-the-template-parser.patch b/patches/packages/luci/0003-libs-web-add-support-for-string-templates-to-the-template-parser.patch deleted file mode 100644 index 2770645a..00000000 --- a/patches/packages/luci/0003-libs-web-add-support-for-string-templates-to-the-template-parser.patch +++ /dev/null @@ -1,142 +0,0 @@ -From: Matthias Schiffer -Date: Fri, 16 May 2014 11:37:21 +0200 -Subject: libs/web: add support for string templates to the template parser - -diff --git a/modules/base/src/template_lualib.c b/modules/base/src/template_lualib.c -index 0d43641..1035611 100644 ---- a/modules/base/src/template_lualib.c -+++ b/modules/base/src/template_lualib.c -@@ -18,10 +18,8 @@ - - #include "template_lualib.h" - --int template_L_parse(lua_State *L) -+static int template_L_do_parse(lua_State *L, struct template_parser *parser, const char *chunkname) - { -- const char *file = luaL_checkstring(L, 1); -- struct template_parser *parser = template_open(file); - int lua_status, rv; - - if (!parser) -@@ -32,7 +30,7 @@ int template_L_parse(lua_State *L) - return 3; - } - -- lua_status = lua_load(L, template_reader, parser, file); -+ lua_status = lua_load(L, template_reader, parser, chunkname); - - if (lua_status == 0) - rv = 1; -@@ -44,6 +42,23 @@ int template_L_parse(lua_State *L) - return rv; - } - -+int template_L_parse(lua_State *L) -+{ -+ const char *file = luaL_checkstring(L, 1); -+ struct template_parser *parser = template_open(file); -+ -+ return template_L_do_parse(L, parser, file); -+} -+ -+int template_L_parse_string(lua_State *L) -+{ -+ size_t len; -+ const char *str = luaL_checklstring(L, 1, &len); -+ struct template_parser *parser = template_string(str, len); -+ -+ return template_L_do_parse(L, parser, "[string]"); -+} -+ - int template_L_utf8(lua_State *L) - { - size_t len = 0; -@@ -146,6 +161,7 @@ static int template_L_hash(lua_State *L) { - /* module table */ - static const luaL_reg R[] = { - { "parse", template_L_parse }, -+ { "parse_string", template_L_parse_string }, - { "utf8", template_L_utf8 }, - { "pcdata", template_L_pcdata }, - { "striptags", template_L_striptags }, -diff --git a/modules/base/src/template_parser.c b/modules/base/src/template_parser.c -index 1aa5131..c263fbf 100644 ---- a/modules/base/src/template_parser.c -+++ b/modules/base/src/template_parser.c -@@ -100,6 +100,36 @@ err: - return NULL; - } - -+struct template_parser * template_string(const char *str, uint32_t len) -+{ -+ struct template_parser *parser; -+ -+ if (!str) { -+ errno = EINVAL; -+ goto err; -+ } -+ -+ if (!(parser = malloc(sizeof(*parser)))) -+ goto err; -+ -+ memset(parser, 0, sizeof(*parser)); -+ parser->fd = -1; -+ -+ parser->size = len; -+ parser->data = (char*)str; -+ -+ parser->off = parser->data; -+ parser->cur_chunk.type = T_TYPE_INIT; -+ parser->cur_chunk.s = parser->data; -+ parser->cur_chunk.e = parser->data; -+ -+ return parser; -+ -+err: -+ template_close(parser); -+ return NULL; -+} -+ - void template_close(struct template_parser *parser) - { - if (!parser) -@@ -108,11 +138,14 @@ void template_close(struct template_parser *parser) - if (parser->gc != NULL) - free(parser->gc); - -- if ((parser->data != NULL) && (parser->data != MAP_FAILED)) -- munmap(parser->data, parser->size); -+ /* if file is not set, we were parsing a string */ -+ if (parser->file) { -+ if ((parser->data != NULL) && (parser->data != MAP_FAILED)) -+ munmap(parser->data, parser->size); - -- if (parser->fd >= 0) -- close(parser->fd); -+ if (parser->fd >= 0) -+ close(parser->fd); -+ } - - free(parser); - } -@@ -376,7 +409,7 @@ int template_error(lua_State *L, struct template_parser *parser) - line++; - - snprintf(msg, sizeof(msg), "Syntax error in %s:%d: %s", -- parser->file, line + chunkline, err ? err : "(unknown error)"); -+ parser->file ? parser->file : "[string]", line + chunkline, err ? err : "(unknown error)"); - - lua_pushnil(L); - lua_pushinteger(L, line + chunkline); -diff --git a/modules/base/src/template_parser.h b/modules/base/src/template_parser.h -index ad03cbc..a3200a2 100644 ---- a/modules/base/src/template_parser.h -+++ b/modules/base/src/template_parser.h -@@ -71,6 +71,7 @@ struct template_parser { - }; - - struct template_parser * template_open(const char *file); -+struct template_parser * template_string(const char *str, uint32_t len); - void template_close(struct template_parser *parser); - - const char *template_reader(lua_State *L, void *ud, size_t *sz); diff --git a/patches/packages/luci/0004-libs-web-add-support-for-string-templates-to-luci.template-module.patch b/patches/packages/luci/0004-libs-web-add-support-for-string-templates-to-luci.template-module.patch deleted file mode 100644 index 49504881..00000000 --- a/patches/packages/luci/0004-libs-web-add-support-for-string-templates-to-luci.template-module.patch +++ /dev/null @@ -1,67 +0,0 @@ -From: Matthias Schiffer -Date: Fri, 16 May 2014 11:48:42 +0200 -Subject: libs/web: add support for string templates to luci.template module - -diff --git a/modules/base/luasrc/template.lua b/modules/base/luasrc/template.lua -index 72127d1..ea01d3c 100644 ---- a/modules/base/luasrc/template.lua -+++ b/modules/base/luasrc/template.lua -@@ -50,6 +50,13 @@ function render(name, scope) - return Template(name):render(scope or getfenv(2)) - end - -+--- Render a template from a string. -+-- @param template Template string -+-- @param scope Scope to assign to template (optional) -+function render_string(template, scope) -+ return Template(nil, template):render(scope or getfenv(2)) -+end -+ - - -- Template class - Template = util.class() -@@ -59,11 +66,14 @@ Template.cache = setmetatable({}, {__mode = "v"}) - - - -- Constructor - Reads and compiles the template on-demand --function Template.__init__(self, name) -+function Template.__init__(self, name, template) -+ if name then -+ self.template = self.cache[name] -+ self.name = name -+ else -+ self.name = "[string]" -+ end - -- self.template = self.cache[name] -- self.name = name -- - -- Create a new namespace for this template - self.viewns = context.viewns - -@@ -72,16 +82,22 @@ function Template.__init__(self, name) - - -- Compile template - local err -- local sourcefile = viewdir .. "/" .. name .. ".htm" -+ local sourcefile - -- self.template, _, err = tparser.parse(sourcefile) -+ if name then -+ sourcefile = viewdir .. "/" .. name .. ".htm" -+ self.template, _, err = tparser.parse(sourcefile) -+ else -+ sourcefile = "[string]" -+ self.template, _, err = tparser.parse_string(template) -+ end - - -- If we have no valid template throw error, otherwise cache the template - if not self.template then - error("Failed to load template '" .. name .. "'.\n" .. - "Error while parsing template '" .. sourcefile .. "':\n" .. - (err or "Unknown syntax error")) -- else -+ elseif name then - self.cache[name] = self.template - end - end