From 26c0b5bb3268c2c567e05a94aac2ef1c7ac09c27 Mon Sep 17 00:00:00 2001 From: ken Date: Mon, 20 Feb 2017 07:23:23 -0800 Subject: [PATCH] ir_linkdata_dlink_name --- src/ir.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ir.c b/src/ir.c index 12a7188..d42c170 100644 --- a/src/ir.c +++ b/src/ir.c @@ -747,6 +747,7 @@ ir_linkdata_dlink_name uint8_t* bytep; size_t bytes; char setpass; + uint8_t delimiter; assert_link(link); if (link->link.dlink != NULL) return link->link.dlink; @@ -764,8 +765,8 @@ ir_linkdata_dlink_name count_bytes_in_namelist: while (namelist_iter != NULL) { bytep = namelist_iter->name; - while (*bytep++) - bytes++; + while (*bytep++); + bytes += (bytep - namelist_iter->name); namelist_iter = namelist_iter->nextsib; } if (setpass == 0) @@ -779,16 +780,19 @@ ir_linkdata_dlink_name link->link.dlink[bytes++] = '.'; //dlinks start with '.' namelist_iter = classld->namelist; setpass = 0; + delimiter = '-'; //class delimiter copy_bytes_in_namelist: while (namelist_iter != NULL) { bytep = namelist_iter->name; while (*bytep) link->link.dlink[bytes++] = *bytep++; + link->link.dlink[bytes++] = delimiter; namelist_iter = namelist_iter->nextsib; } if (setpass == 0) { setpass = 1; namelist_iter = setld->namelist; + delimiter = '_'; //set delimiter goto copy_bytes_in_namelist; } link->link.dlink[bytes] = '\0'; //tailing '\0' null termination -- 2.18.0