X-Git-Url: https://www.kengrimes.com/gitweb/?p=henge%2Fapc.git;a=blobdiff_plain;f=src%2Fir.c;h=d42c170780f3c07e0acab8a91ece78099b390889;hp=12a7188edbce5b96c4e300ca3d0e21f99a080585;hb=26c0b5bb3268c2c567e05a94aac2ef1c7ac09c27;hpb=c08d259f7444e5cab5e7ea2675b11becd1214d6f 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