luci-0.9: merge r5145-r5153
authorJo-Philipp Wich <jow@openwrt.org>
Sun, 26 Jul 2009 23:59:58 +0000 (23:59 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sun, 26 Jul 2009 23:59:58 +0000 (23:59 +0000)
libs/nixio/lua/nixio/util.lua
libs/web/luasrc/i18n.lua
libs/web/src/template_lualib.c
libs/web/src/template_parser.c
modules/admin-full/luasrc/model/cbi/admin_system/system.lua
modules/admin-mini/luasrc/model/cbi/mini/system.lua
modules/freifunk/luasrc/model/cbi/freifunk/public_status.lua

index ecefb4c97f0ca606665c43cb6ffb97df8462ecb0..401ec615eb07cb9e14f03ee67a4299e4f79bb8b8 100644 (file)
@@ -14,7 +14,8 @@ $Id$
 
 local table = require "table"
 local nixio = require "nixio"
-local getmetatable, assert, pairs, type = getmetatable, assert, pairs, type
+local getmetatable, assert, pairs, type, tostring =
+       getmetatable, assert, pairs, type, tostring
 
 module "nixio.util"
 
@@ -79,6 +80,7 @@ end
 meta.recvall = meta.readall
 
 function meta.writeall(self, data)
+       data = tostring(data)
        local sent, code, msg = self:write(data)
 
        if not sent then
index dcca13ec6420df5b63a01f74f9b1f4cd1d691511..9a11a9dc8ff6744bdf89a63cfe81bee026025c77 100644 (file)
@@ -109,5 +109,26 @@ end
 -- @param ...          Format parameters
 -- @return                     Translated and formatted string
 function translatef(key, default, ...)
-       return translate(key, default):format(...)
+       return tostring(translate(key, default)):format(...)
+end
+
+--- Return the translated value for a specific translation key
+-- and ensure that the returned value is a Lua string value.
+-- This is the same as calling <code>tostring(translate(...))</code>
+-- @param key          Translation key
+-- @param default      Default translation
+-- @return                     Translated string
+function string(key, default)
+       return tostring(translate(key, default))
+end
+
+--- Return the translated value for a specific translation key and use it as sprintf pattern.
+-- Ensure that the returned value is a Lua string value.
+-- This is the same as calling <code>tostring(translatef(...))</code>
+-- @param key          Translation key
+-- @param default      Default translation
+-- @param ...          Format parameters
+-- @return                     Translated and formatted string
+function stringf(key, default, ...)
+       return tostring(translate(key, default)):format(...)
 end
index 685613fbdcccad36dd9afd1c0964ac74d566464a..f91b19ceb85c07f1778771cc29d72b1adfa94feb 100644 (file)
@@ -29,8 +29,13 @@ int template_L_parse(lua_State *L)
                parser.flags   = 0;
                parser.bufsize = 0;
                parser.state   = T_STATE_TEXT_NEXT;
-               
-               if( !(lua_status = lua_load(L, template_reader, &parser, file)) )
+
+               lua_status = lua_load(L, template_reader, &parser, file);
+
+               (void) close(parser.fd);
+
+
+               if( lua_status == 0 )
                {
                        return 1;
                }
index 58de5bb77471292c3122862f408cf40c676f5c55..9618919b30c8b468d324a518dbbe157f02977c3e 100644 (file)
@@ -58,12 +58,12 @@ static char *strfind(char *haystack, int hslen, const char *needle, int ndlen)
        return NULL;
 }
 
-/* 
- * Inspect current read buffer and find the number of "vague" characters at the end 
+/*
+ * Inspect current read buffer and find the number of "vague" characters at the end
  * which could indicate an opening token. Returns the number of "vague" chars.
  * The last continuous sequence of whitespace, optionally followed by a "<" is
  * treated as "vague" because whitespace may be discarded if the upcoming opening
- * token indicates pre-whitespace-removal ("<%-"). A single remaining "<" char 
+ * token indicates pre-whitespace-removal ("<%-"). A single remaining "<" char
  * can't be differentiated from an opening token ("<%"), so it's kept to be processed
  * in the next cycle.
  */
@@ -186,8 +186,8 @@ static const char * generate_expression(struct template_parser *data, size_t *sz
                        }
                }
 
-               /* Found whitespace in i18n expression, raise flag */
-               else if( isspace(data->out[i]) && (data->type == T_TYPE_I18N) )
+               /* Found first whitespace in i18n expression, raise flag */
+               else if( isspace(data->out[i]) && (data->type == T_TYPE_I18N) && (i18n_hasdef == 0) )
                {
                        i18n_hasdef = 1;
                }
index b3c2a4e86c4f9aacc757588606b5488f4f29585c..1d35dee7f641383757ece8dae39c00399c21303e 100644 (file)
@@ -35,11 +35,11 @@ s:option(DummyValue, "_memtotal", translate("m_i_memory")).value =
  string.format("%.2f MB (%.0f%% %s, %.0f%% %s, %.0f%% %s)",
   tonumber(memtotal) / 1024,
   100 * memcached / memtotal,
-  translate("mem_cached") or "",
+  tostring(translate("mem_cached", "")),
   100 * membuffers / memtotal,
-  translate("mem_buffered") or "",
+  tostring(translate("mem_buffered", "")),
   100 * memfree / memtotal,
-  translate("mem_free") or "")
+  tostring(translate("mem_free", ""))
 
 s:option(DummyValue, "_systime", translate("m_i_systemtime")).value =
  os.date("%c")
index fa23b7c138f8da9393e5b93cdc1c5f34e4afacd2..4ef97e48e1f64efdea86f55210ecf350efeb636c 100644 (file)
@@ -38,11 +38,11 @@ s:option(DummyValue, "_memtotal", translate("m_i_memory")).value =
  string.format("%.2f MB (%.0f%% %s, %.0f%% %s, %.0f%% %s)",
   tonumber(memtotal) / 1024,
   100 * memcached / memtotal,
-  translate("mem_cached") or "",
+  tostring(translate("mem_cached", "")),
   100 * membuffers / memtotal,
-  translate("mem_buffered") or "",
+  tostring(translate("mem_buffered", "")),
   100 * memfree / memtotal,
-  translate("mem_free") or "")
+  tostring(translate("mem_free", ""))
 
 s:option(DummyValue, "_systime", translate("m_i_systemtime")).value =
  os.date("%c")
index 56e956363e6b6fab0a5835f25b56f6cf8e5b23d4..2192697fdec8cb042b952ab6174bc67c24bdb0d3 100644 (file)
@@ -27,11 +27,11 @@ f:field(DummyValue, "_memtotal", translate("m_i_memory")).value =
 string.format("%.2f MB (%.0f%% %s, %.0f%% %s, %.0f%% %s)",
        tonumber(memtotal) / 1024,
        100 * memcached / memtotal,
-       translate("mem_cached") or "",
+       tostring(translate("mem_cached"), "")),
        100 * membuffers / memtotal,
-       translate("mem_buffered") or "",
+       tostring(translate("mem_buffered", "")),
        100 * memfree / memtotal,
-       translate("mem_free") or "")
+       tostring(translate("mem_free", ""))
 
 f:field(DummyValue, "_systime", translate("m_i_systemtime")).value =
 os.date("%c")