From f4410cd4b87c75bb112264cf38951461065b7ef9 Mon Sep 17 00:00:00 2001 From: ken Date: Mon, 20 Feb 2017 08:50:13 -0800 Subject: [PATCH] ir_linkdata_dlink_name --- src/apc.h | 2 ++ src/ir.c | 12 +++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) 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; } -- 2.18.0