From: ken Date: Mon, 20 Feb 2017 16:50:13 +0000 (-0800) Subject: ir_linkdata_dlink_name X-Git-Url: https://www.kengrimes.com/gitweb/?p=henge%2Fapc.git;a=commitdiff_plain;h=f4410cd4b87c75bb112264cf38951461065b7ef9;hp=e92cf135e461e07d723762aa4efb4bf7a0a17589 ir_linkdata_dlink_name --- diff --git a/src/apc.h b/src/apc.h index 9649c24..b60342d 100644 --- 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_ diff --git a/src/ir.c b/src/ir.c index 0bdba39..bdf0d36 100644 --- a/src/ir.c +++ b/src/ir.c @@ -748,6 +748,8 @@ ir_linkdata_dlink_name size_t bytes; char setpass; uint8_t delimiter; + static const uint8_t dlink_prefix[] = { '/', '.', '.', '/' }; +# define dlink_prefix_len 4 assert_link(link); if (link->link.dlink != NULL) return link->link.dlink; @@ -774,13 +776,13 @@ ir_linkdata_dlink_name namelist_iter = setld->namelist; goto count_bytes_in_namelist; } - bytes += 2; //trailing '\0' and preceding '.' + bytes += dlink_prefix_len; link->link.dlink = stack_alloc(&namepages, bytes); - bytes = 0; - link->link.dlink[bytes++] = '.'; //dlinks start with '.' + for (bytes = 0; bytes < dlink_prefix_len; bytes++) + link->link.dlink[bytes] = dlink_prefix[bytes]; namelist_iter = classld->namelist; setpass = 0; - delimiter = '-'; //class delimiter + delimiter = APC_CLASS_DELIMITER; copy_bytes_in_namelist: while (namelist_iter != NULL) { bytep = namelist_iter->name; @@ -792,7 +794,7 @@ ir_linkdata_dlink_name if (setpass == 0) { setpass = 1; namelist_iter = setld->namelist; - delimiter = '_'; //set delimiter + delimiter = APC_SET_DELIMITER; link->link.dlink[bytes - 1] = delimiter; //overwrite last delimiter goto copy_bytes_in_namelist; }