cinvoke-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cinvoke-svn] r42 - trunk/cinvoke/bindings/lua


From: will
Subject: [cinvoke-svn] r42 - trunk/cinvoke/bindings/lua
Date: 24 Jun 2006 14:36:31 -0400

Author: will
Date: 2006-06-24 14:36:30 -0400 (Sat, 24 Jun 2006)
New Revision: 42

Modified:
   trunk/cinvoke/bindings/lua/cinvoke_lua.c
Log:
added new function


Modified: trunk/cinvoke/bindings/lua/cinvoke_lua.c
===================================================================
--- trunk/cinvoke/bindings/lua/cinvoke_lua.c    2006-06-24 04:59:37 UTC (rev 41)
+++ trunk/cinvoke/bindings/lua/cinvoke_lua.c    2006-06-24 18:36:30 UTC (rev 42)
@@ -809,8 +809,27 @@
        lua_setfield(l, -2, name);
 }
 
+int _cinv_string_to_chararray(lua_State *l) {
+       size_t len, i;
+       const char *s;
+       if (lua_gettop(l) != 1) {
+               lua_pushstring(l, "usage: cinv.string_to_chararray(string)");
+               lua_error(l);
+       }
+       s = lua_tolstring(l, 1, &len);
+       
+       lua_newtable(l);
+       for (i = 0; i <= len; i++) {
+               lua_pushinteger(l, i + 1);
+               lua_pushlstring(l, s + i, 1);
+               lua_settable(l, 1);
+       }
+
+       return 1;
+}
+
 int _cinv_chararray_to_string(lua_State *l) {
-       size_t len, i = 0;
+       size_t len, i;
        if (lua_gettop(l) != 1) {
                lua_pushstring(l, "usage: cinv.chararray_to_string(carray)");
                lua_error(l);
@@ -826,7 +845,6 @@
                        lua_error(l);
                }
                for (i = 0; i < len; i++) {
-                       const char *s;
                        lua_pushinteger(l, i + 1);
                        lua_gettable(l, 1);
 
@@ -836,8 +854,6 @@
                        }
                        ret[i] = lua_tostring(l, -1)[0];
                        lua_pop(l, 1);
-
-                       i++;
                }
 
                ret[len] = '\0';
@@ -1010,6 +1026,7 @@
        lua_newtable(l);
        declfunc(l, "array", _cinv_array);
        declfunc(l, "chararray_to_string", _cinv_chararray_to_string);
+       declfunc(l, "string_to_chararray", _cinv_string_to_chararray);
        declfunc(l, "ptr_to_string", _cinv_ptr_to_string);
        declfunc(l, "ptr_to_array", _cinv_ptr_to_array);
        declfunc(l, "ptr_to_struct", _cinv_ptr_to_struct);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]