fixes
[henge/apc.git] / src / ir.c
index e860bd7..27b4d15 100644 (file)
--- a/src/ir.c
+++ b/src/ir.c
@@ -619,10 +619,10 @@ union ir_setdata_t* ir_set_link
 ( struct ir_set_t* set )\r
 { return (union ir_setdata_t*) set->links; }\r
 \r
-#define assert_link(linkdata) do {                                     \\r
+#define assert_link(linkdata) if (DEBUG) {                             \\r
     if (linkdata->header.type != LDAT)                                 \\r
       eprintf("Data %s is not a link\n", linkdata->header.data_name);  \\r
-  } while (0)\r
+  }\r
 \r
 /* Return the link type */\r
 enum ltype ir_linkdata_type\r
@@ -722,6 +722,20 @@ void ir_linkdata_resolve_set
   linkdata->link.trg_set = set;\r
 }\r
 \r
+/* Assign a linkdatas trg_set */\r
+void ir_linkdata_assign_set\r
+( union ir_setdata_t* link, struct ir_set_t* set )\r
+{ assert_link(link);\r
+  link->link.trg_set = set;\r
+}\r
+\r
+/* Assign a linkdatas type */\r
+void ir_linkdata_assign_type\r
+( union ir_setdata_t* link, enum ltype type )\r
+{ assert_link(link);\r
+  link->link.type = type;\r
+}\r
+\r
 /* Get a setdata's next sibling */\r
 union ir_setdata_t* ir_setdata_nextsib\r
 ( union ir_setdata_t* setdata )\r
@@ -749,6 +763,11 @@ void ir_setdata_assign_fpos
 )\r
 { setdata->header.filepos = newpos; }\r
 \r
+/* Assign a setdatas name */\r
+void ir_setdata_assign_name\r
+( union ir_setdata_t* setdata, uint8_t* name )\r
+{ setdata->header.data_name = name;}\r
+\r
 /* Return a framebox's specified framesheet */\r
 union ir_setdata_t* ir_framebox_framesheet\r
 ( union ir_setdata_t* fbox,\r