X-Git-Url: http://git.tremily.us/?p=igor.git;a=blobdiff_plain;f=igor%2Fbinarywave.py;fp=igor%2Fbinarywave.py;h=6d87d148b0857fd39dcb1f08fed0c12cb976c441;hp=bcccda2e873b3adad469a188dfb153ba980f52fe;hb=551d9bca2f161511b1b09afdbeabff86284cb371;hpb=75ddaa018c55ef748898e9483240ab6f92a1bea3 diff --git a/igor/binarywave.py b/igor/binarywave.py index bcccda2..6d87d14 100644 --- a/igor/binarywave.py +++ b/igor/binarywave.py @@ -458,15 +458,22 @@ class DynamicLabelsField (DynamicStringField): wave_structure = parents[-1] wave_data = self._get_structure_data(parents, data, wave_structure) bin_header = wave_data['bin_header'] - d = b''.join(wave_data[self.name]) + d = wave_data[self.name] dim_labels = [] start = 0 for size in bin_header[self._size_field]: end = start + size if end > start: dim_data = d[start:end] - # split null-delimited strings - labels = dim_data.split(b'\x00') + chunks = [] + for i in range(size//32): + chunks.append(dim_data[32*i:32*(i+1)]) + labels = [b''] + for chunk in chunks: + labels[-1] = labels[-1] + b''.join(chunk) + if b'\x00' in chunk: + labels.append(b'') + labels.pop(-1) start = end else: labels = []