From: ken Date: Mon, 20 Feb 2017 15:23:23 +0000 (-0800) Subject: ir_linkdata_dlink_name X-Git-Url: https://www.kengrimes.com/gitweb/?p=henge%2Fapc.git;a=commitdiff_plain;h=26c0b5bb3268c2c567e05a94aac2ef1c7ac09c27 ir_linkdata_dlink_name --- 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