ir_linkdata_dlink_name
authorken <ken@mihrtec.com>
Mon, 20 Feb 2017 16:50:13 +0000 (08:50 -0800)
committerken <ken@mihrtec.com>
Mon, 20 Feb 2017 16:50:13 +0000 (08:50 -0800)
src/apc.h
src/ir.c

index 9649c24..b60342d 100644 (file)
--- a/src/apc.h
+++ b/src/apc.h
@@ -7,6 +7,8 @@ typedef enum frame_facing apc_facing;
 
 
 #define APC_NAME_MAX 64
+#define APC_CLASS_DELIMITER '/'
+#define APC_SET_DELIMITER   '_'
 
 #endif //_APC_H_
  
index 0bdba39..bdf0d36 100644 (file)
--- a/src/ir.c
+++ b/src/ir.c
@@ -748,6 +748,8 @@ ir_linkdata_dlink_name
   size_t                bytes;\r
   char                  setpass;\r
   uint8_t               delimiter;\r
+  static const uint8_t  dlink_prefix[] = { '/', '.', '.', '/' };\r
+# define                dlink_prefix_len 4\r
   assert_link(link);\r
   if (link->link.dlink != NULL)\r
     return link->link.dlink;\r
@@ -774,13 +776,13 @@ ir_linkdata_dlink_name
       namelist_iter = setld->namelist;\r
       goto count_bytes_in_namelist;\r
     }\r
-  bytes += 2; //trailing '\0' and preceding '.'\r
+  bytes += dlink_prefix_len;\r
   link->link.dlink = stack_alloc(&namepages, bytes);\r
-  bytes = 0;\r
-  link->link.dlink[bytes++] = '.'; //dlinks start with '.'\r
+  for (bytes = 0; bytes < dlink_prefix_len; bytes++)\r
+    link->link.dlink[bytes] = dlink_prefix[bytes];\r
   namelist_iter = classld->namelist;\r
   setpass = 0;\r
-  delimiter = '-'; //class delimiter\r
+  delimiter = APC_CLASS_DELIMITER;\r
  copy_bytes_in_namelist:\r
   while (namelist_iter != NULL)\r
     { bytep = namelist_iter->name;\r
@@ -792,7 +794,7 @@ ir_linkdata_dlink_name
   if (setpass == 0)\r
     { setpass = 1;\r
       namelist_iter = setld->namelist;\r
-      delimiter = '_'; //set delimiter\r
+      delimiter = APC_SET_DELIMITER;\r
       link->link.dlink[bytes - 1] = delimiter; //overwrite last delimiter\r
       goto copy_bytes_in_namelist;\r
     }\r