Remove luci.cutil: does not affect performance
authorSteven Barth <steven@midlink.org>
Thu, 20 Nov 2008 21:14:58 +0000 (21:14 +0000)
committerSteven Barth <steven@midlink.org>
Thu, 20 Nov 2008 21:14:58 +0000 (21:14 +0000)
libs/core/Makefile
libs/core/luasrc/util.lua
libs/core/src/luci_cutil.c [deleted file]

index 8a30256..f7fac77 100644 (file)
@@ -1,12 +1,2 @@
 include ../../build/config.mk
 include ../../build/module.mk
 include ../../build/config.mk
 include ../../build/module.mk
-
-%.o: %.c
-       $(COMPILE) $(LUA_CFLAGS) $(FPIC) -c -o $@ $<
-
-compile: src/luci_cutil.o
-       mkdir -p dist$(LUCI_LIBRARYDIR)
-       $(LINK) $(SHLIB_FLAGS) -o dist$(LUCI_LIBRARYDIR)/cutil.so src/luci_cutil.o
-
-clean: luaclean
-       rm -f src/*.o
index 53e46a9..0bce859 100644 (file)
@@ -45,7 +45,6 @@ module "luci.util"
 --
 -- Pythonic string formatting extension
 --
 --
 -- Pythonic string formatting extension
 --
---[[
 getmetatable("").__mod = function(a, b)
        if not b then
                return a
 getmetatable("").__mod = function(a, b)
        if not b then
                return a
@@ -55,7 +54,6 @@ getmetatable("").__mod = function(a, b)
                return a:format(b)
        end
 end
                return a:format(b)
        end
 end
-]]--
 
 
 --
 
 
 --
@@ -63,7 +61,6 @@ end
 --
 
 -- Instantiates a class
 --
 
 -- Instantiates a class
---[[
 local function _instantiate(class, ...)
        local inst = setmetatable({}, {__index = class})
 
 local function _instantiate(class, ...)
        local inst = setmetatable({}, {__index = class})
 
@@ -73,7 +70,6 @@ local function _instantiate(class, ...)
 
        return inst
 end
 
        return inst
 end
-]]--
 
 --- Create a Class object (Python-style object model).
 -- The class object can be instantiated by calling itself.
 
 --- Create a Class object (Python-style object model).
 -- The class object can be instantiated by calling itself.
@@ -89,15 +85,12 @@ end
 -- @return             A class object
 -- @see                        instanceof
 -- @see                        clone
 -- @return             A class object
 -- @see                        instanceof
 -- @see                        clone
---[[
 function class(base)
        return setmetatable({}, {
                __call  = _instantiate,
                __index = base
        })
 end
 function class(base)
        return setmetatable({}, {
                __call  = _instantiate,
                __index = base
        })
 end
-]]--
-class = cutil.class
 
 --- Test whether the given object is an instance of the given class.
 -- @param object       Object instance
 
 --- Test whether the given object is an instance of the given class.
 -- @param object       Object instance
@@ -105,7 +98,6 @@ class = cutil.class
 -- @return                     Boolean indicating whether the object is an instance
 -- @see                                class
 -- @see                                clone
 -- @return                     Boolean indicating whether the object is an instance
 -- @see                                class
 -- @see                                clone
---[[
 function instanceof(object, class)
        local meta = getmetatable(object)
        while meta and meta.__index do
 function instanceof(object, class)
        local meta = getmetatable(object)
        while meta and meta.__index do
@@ -116,8 +108,6 @@ function instanceof(object, class)
        end
        return false
 end
        end
        return false
 end
-]]--
-instanceof = cutil.instanceof
 
 
 --
 
 
 --
@@ -204,18 +194,17 @@ end
 --- Create valid XML PCDATA from given string.
 -- @param value        String value containing the data to escape
 -- @return             String value containing the escaped data
 --- Create valid XML PCDATA from given string.
 -- @param value        String value containing the data to escape
 -- @return             String value containing the escaped data
---[[
+local _pcdata_repl = {
+                ["&"] = "&#38;",
+                ['"'] = "&#34;",
+                ["'"] = "&#39;",
+                ["<"] = "&#60;",
+                [">"] = "&#62;"
+}
+
 function pcdata(value)
 function pcdata(value)
-       return value and tostring(value):gsub("[&\"'<>]", {
-               ["&"] = "&#38;",
-               ['"'] = "&#34;",
-               ["'"] = "&#39;",
-               ["<"] = "&#60;",
-               [">"] = "&#62;"
-       })
+       return value and tostring(value):gsub("[&\"'<>]", _pcdata_repl)
 end
 end
-]]--
-pcdata = cutil.pcdata
 
 --- Strip HTML tags from given string.
 -- @param value        String containing the HTML text
 
 --- Strip HTML tags from given string.
 -- @param value        String containing the HTML text
@@ -271,12 +260,9 @@ end
 --- Remove leading and trailing whitespace from given string value.
 -- @param str  String value containing whitespace padded data
 -- @return             String value with leading and trailing space removed
 --- Remove leading and trailing whitespace from given string value.
 -- @param str  String value containing whitespace padded data
 -- @return             String value with leading and trailing space removed
---[[
 function trim(str)
        return (str:gsub("^%s*(.-)%s*$", "%1"))
 end
 function trim(str)
        return (str:gsub("^%s*(.-)%s*$", "%1"))
 end
-]]--
-trim = cutil.trim
 
 --- Count the occurences of given substring in given string.
 -- @param str          String to search in
 
 --- Count the occurences of given substring in given string.
 -- @param str          String to search in
diff --git a/libs/core/src/luci_cutil.c b/libs/core/src/luci_cutil.c
deleted file mode 100644 (file)
index 49a33ac..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-/**
- * LuCI Core - Utility library
- * Copyright (C) 2008 Steven Barth <steven@midlink.org>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "lauxlib.h"
-
-#define LUCI_MODNAME "luci.cutil"
-#define LUCI_MODDESC "LuCI Core Utility Library"
-#define LUCI_MODCOPY "2008 Steven Barth"
-
-
-/* Pythonic overloaded MOD operator */
-static int luci__string_mod(lua_State *L) {
-       int i, n=1;
-
-       luaL_checkstring(L, 1);
-       luaL_checkany(L, 2);
-
-       /* Discard further arguments */
-       lua_settop(L, 2);
-
-       /* Get format and push it to the bottom of the stack */
-       lua_getfield(L, 1, "format");
-       lua_insert(L, 1);
-
-       /* If second argument is a table, unpack it */
-       if (lua_istable(L, 3)) {
-               n = lua_objlen(L, 3);
-               if (n > 0) {
-                       luaL_checkstack(L, n, "too many results to unpack");
-                       for (i=1; i<=n; i++) {
-                               lua_rawgeti(L, 3, i);
-                       }
-               } else {
-                       n = 0;
-               }
-               lua_remove(L, 3);
-       }
-
-       lua_call(L, n+1, 1);
-       return 1;
-}
-
-/* Instantiate a class */
-static int luci__instantiate(lua_State *L) {
-       luaL_checktype(L, 1, LUA_TTABLE);
-
-       /* Create the object */
-       lua_newtable(L);
-
-       /* Create the metatable */
-       lua_createtable(L, 0, 1);
-       lua_pushvalue(L, 1);
-       lua_setfield(L, -2, "__index");
-       lua_setmetatable(L, -2);
-
-       /* Move instance at the bottom of the stack */
-       lua_replace(L, 1);
-
-       /* Invoke constructor if it exists */
-       lua_getfield(L, 1, "__init__");
-       if (lua_isfunction(L, -1)) {
-               /* Put instance at the bottom for the 2nd time */
-               lua_pushvalue(L, 1);
-               lua_insert(L, 1);
-
-               /* Call constructor */
-               lua_insert(L, 2);
-               lua_call(L, lua_gettop(L)-2, 0);
-       }
-
-       lua_settop(L, 1);
-       return 1;
-}
-
-
-/* luci.cutil.class(baseclass) */
-static int luci_class(lua_State *L) {
-       /* Create class */
-       lua_newtable(L);
-
-       /* Create metatable and register parent class if any */
-       if (lua_gettop(L) > 1 && lua_istable(L, 1)) {
-               lua_createtable(L, 0, 2);
-               lua_pushvalue(L, 1);
-               lua_setfield(L, -2, "__index");
-       } else {
-               lua_createtable(L, 0, 1);
-       }
-
-       /* Set instantiator */
-       lua_pushcfunction(L, luci__instantiate);
-       lua_setfield(L, -2, "__call");
-
-       lua_setmetatable(L, -2);
-       return 1;
-}
-
-/* luci.cutil.instanceof(object, class) */
-static int luci_instanceof(lua_State *L) {
-       int stat = 0;
-
-       luaL_checkany(L, 1);
-       luaL_checkany(L, 2);
-
-       if (lua_getmetatable(L, 1)) {
-               /* get parent class */
-               lua_getfield(L, -1, "__index");
-               while (lua_istable(L, -1)) {
-                       /* parent class == class */
-                       if (lua_equal(L, -1, 2)) {
-                               stat = 1;
-                               break;
-                       }
-
-                       /* remove last metatable */
-                       lua_remove(L, -2);
-
-                       /* get metatable of parent class */
-                       if (lua_getmetatable(L, -1)) {
-                               /* remove last parent class */
-                               lua_remove(L, -2);
-
-                               /* get next parent class */
-                               lua_getfield(L, -1, "__index");
-                       } else {
-                               break;
-                       }
-               }
-       }
-
-       lua_pushboolean(L, stat);
-       return 1;
-}
-
-
-/* luci.cutil.pcdata(obj) */
-static int luci_pcdata(lua_State *L) {
-       if (lua_isnone(L, 1)) {
-               lua_pushnil(L);
-               return 1;
-       }
-       luaL_checkstring(L, 1);
-
-       /* Discard anything else */
-       lua_settop(L, 1);
-
-       /* pattern */
-       lua_pushvalue(L, lua_upvalueindex(1));
-
-       /* repl */
-       lua_pushvalue(L, lua_upvalueindex(2));
-
-       /* get gsub function */
-       lua_getfield(L, 1, "gsub");
-       lua_insert(L, 1);
-
-       /* tostring(obj):gsub(pattern, repl) */
-       lua_call(L, 3, 1);
-       return 1;
-}
-
-/* luci.cutil.trim(str) */
-static int luci_trim(lua_State *L) {
-       luaL_checkstring(L, 1);
-       lua_settop(L, 1);
-
-       /* pattern and repl */
-       lua_pushliteral(L, "^%s*(.-)%s*$");
-       lua_pushliteral(L, "%1");
-
-       /* get str.gsub */
-       lua_getfield(L, 1, "gsub");
-       lua_insert(L, 1);
-
-       /* str.gsub(str, pattern, repl) */
-       lua_call(L, 3, 1);
-       return 1;
-}
-
-
-/* Registration helper for luci.cutil.pcdata */
-static void luci__register_pcdata(lua_State *L) {
-       /* pattern */
-       lua_pushliteral(L, "[&\"'<>]");
-
-       /* repl */
-       lua_createtable(L, 0, 5);
-
-       lua_pushliteral(L, "&#38;");
-       lua_setfield(L, -2, "&");
-       lua_pushliteral(L, "&#34;");
-       lua_setfield(L, -2, "\"");
-       lua_pushliteral(L, "&#39;");
-       lua_setfield(L, -2, "'");
-       lua_pushliteral(L, "&#60;");
-       lua_setfield(L, -2, "<");
-       lua_pushliteral(L, "&#62;");
-       lua_setfield(L, -2, ">");
-
-       /* register function */
-       lua_pushcclosure(L, luci_pcdata, 2);
-       lua_setfield(L, -2, "pcdata");
-}
-
-/* Registry */
-static const luaL_Reg registry[] = {
-               {"class",               luci_class},
-               {"instanceof",  luci_instanceof},
-               {"trim",                luci_trim},
-               { NULL,                 NULL },
-};
-
-/* Registrator */
-LUALIB_API int luaopen_luci_cutil(lua_State *L) {
-       luaL_register(L, LUCI_MODNAME, registry);
-
-       lua_pushliteral(L, LUCI_MODDESC);
-       lua_setfield(L, -2, "_DESCRIPTION");
-
-       lua_pushliteral(L, LUCI_MODCOPY);
-       lua_setfield(L, -2, "_COPYRIGHT");
-
-       /* Additional registrations */
-       luci__register_pcdata(L);
-
-
-       /* Register pythonic printf string operator */
-       lua_pushliteral(L, "");
-       lua_getmetatable(L, -1);
-       lua_pushcfunction(L, luci__string_mod);
-       lua_setfield(L, -2, "__mod");
-       lua_pop(L, 2);
-
-       return 1;
-}