--- a/lm_message.c Sun Mar 08 00:48:19 2009 +0200
+++ b/lm_message.c Sat Mar 14 02:41:26 2009 +0200
@@ -69,13 +69,17 @@
/// lm.message.new
/// Creates new message object.
+/// Note: you can specify nil as to argument to send message to server.
/// A: string (to), message type, message sub type (optional)
/// R: lm message object
static int new_lm_message (lua_State *L)
{
- const char *to = luaL_checkstring (L, 1);
+ const char *to = NULL;
int type = luaL_checkenum (L, 2, type_lm_message);
LmMessage *message;
+
+ if (lua_type (L, 1) != LUA_TNIL)
+ to = luaL_checkstring (L, 1);
if (lua_gettop (L) > 2)
message = lm_message_new_with_sub_type (to, type,
luaL_checkenum (L, 3, sub_type_lm_message));
@@ -142,12 +146,12 @@
static const luaL_Reg reg_f_lm_message[] = {
{ "new", new_lm_message },
{ "bless", bless_lua_lm_message },
- { NULL, NULL },
+ { NULL, NULL },
};
static const luaL_Reg reg_m_lm_message[] = {
- { "node", node_lm_message },
- { "type", kind_lm_message },
+ { "node", node_lm_message },
+ { "type", kind_lm_message },
// These methods are common for message and message node
{ "next", next_lm_node },
{ "prev", prev_lm_node },
@@ -161,9 +165,9 @@
{ "xml", xml_lm_node },
{ "path", path_lm_node },
// End common methods
- { "pointer", pointer_lm_message },
- { "__gc", gc_lm_message },
- { NULL, NULL },
+ { "pointer", pointer_lm_message },
+ { "__gc", gc_lm_message },
+ { NULL, NULL },
};
int luaopen_lm_message (lua_State *L)