]> sigrok.org Git - libsigrok.git/commitdiff
output/vcd: assign adjacent names to enabled channels
authorGerhard Sittig <redacted>
Sun, 4 Feb 2018 22:05:59 +0000 (23:05 +0100)
committerUwe Hermann <redacted>
Fri, 9 Feb 2018 21:40:58 +0000 (22:40 +0100)
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.

src/output/vcd.c

index 43020029ba7ab511d4e0c36437afa85e7c061b19..db77a7adeddf09cb37c6c6be9b7745a4de69d6c4 100644 (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");