diff -r 90073cbb535d -r 5db1448eb857 lm_message.c --- a/lm_message.c Fri Feb 20 23:07:43 2009 +0200 +++ b/lm_message.c Sat Feb 21 12:43:51 2009 +0200 @@ -6,6 +6,7 @@ #include "config.h" #include "util.h" #include "lm_types.h" +#include "lm_message_node.h" /// lm.message /// Module, representing individual message. @@ -104,9 +105,6 @@ return 1; } -// XXX: add node methods here to allow omitting of :node(): element -// BTW, we can jus adapt node methods to work on messages too and register them here also - /// message:type /// Returns two strings: message type and message sub type. /// R: message type, message sub type @@ -143,11 +141,23 @@ }; static const luaL_Reg llm_message_reg_m[] = { - { "node", llm_message_node }, - { "type", llm_message_kind }, - { "pointer", llm_message_pointer }, - { "__gc", llm_message_gc }, - { NULL, NULL }, + { "node", llm_message_node }, + { "type", llm_message_kind }, + // These methods are common for message and message node + { "next", llm_message_node_next }, + { "prev", llm_message_node_prev }, + { "children", llm_message_node_children }, + { "parent", llm_message_node_parent }, + { "value", llm_message_node_value }, + { "child", llm_message_node_child }, + { "find_child", llm_message_node_find_child }, + { "attribute", llm_message_node_attribute }, + { "raw", llm_message_node_raw }, + { "xml", llm_message_node_xml }, + // End common methods + { "pointer", llm_message_pointer }, + { "__gc", llm_message_gc }, + { NULL, NULL }, }; int luaopen_lm_message (lua_State *L)