lm_message.c
changeset 7 5db1448eb857
parent 6 90073cbb535d
child 8 951f92c66821
--- 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)