output/vcd: assign adjacent names to enabled channels

Identifiers for channels in the VCD header section could be "sparse"
when sigrok channels were disabled. Make sure to not assign names to
disabled channels. This will e.g. assign !, ", and # to channels D1, D3,
and D6, when D0, D2, D4-D5, and D7 are disabled.

This addresses part of bug #519.
This commit is contained in:
Gerhard Sittig 2018-02-04 23:05:59 +01:00 committed by Uwe Hermann
parent 64aa214a22
commit a299a95413
1 changed files with 2 additions and 1 deletions

View File

@ -136,7 +136,7 @@ static GString *gen_header(const struct sr_output *o)
g_string_append_printf(header, "$scope module %s $end\n", PACKAGE_NAME);
/* Wires / channels */
for (i = 0, l = o->sdi->channels; l; l = l->next, i++) {
for (i = 0, l = o->sdi->channels; l; l = l->next) {
ch = l->data;
if (ch->type != SR_CHANNEL_LOGIC)
continue;
@ -144,6 +144,7 @@ static GString *gen_header(const struct sr_output *o)
continue;
g_string_append_printf(header, "$var wire 1 %c %s $end\n",
(char)('!' + i), ch->name);
i++;
}
g_string_append(header, "$upscope $end\n$enddefinitions $end\n");