From: Martin Ling Date: Fri, 26 Apr 2013 21:14:57 +0000 (+0100) Subject: text: Use a GSList of enabled probe names, not an array. X-Git-Tag: dsupstream~45 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=d53e4e8d92242488642211f441dacba29937104d;p=libsigrok.git text: Use a GSList of enabled probe names, not an array. --- diff --git a/output/text/text.c b/output/text/text.c index 674fa886..4d231c90 100644 --- a/output/text/text.c +++ b/output/text/text.c @@ -40,23 +40,27 @@ SR_PRIV void flush_linebufs(struct context *ctx, uint8_t *outbuf) { static int max_probename_len = 0; int len, i; + GSList *l; + char *probe_name; if (ctx->linebuf[0] == 0) return; if (max_probename_len == 0) { /* First time through... */ - for (i = 0; ctx->probelist[i]; i++) { - len = strlen(ctx->probelist[i]); + for (l = ctx->probenames; l; l = l->next) { + probe_name = l->data; + len = strlen(probe_name); if (len > max_probename_len) max_probename_len = len; } } - for (i = 0; ctx->probelist[i]; i++) { + for (i = 0, l = ctx->probenames; l; l = l->next, i++) { + probe_name = l->data; sprintf((char *)outbuf + strlen((const char *)outbuf), "%*s:%s\n", max_probename_len, - ctx->probelist[i], ctx->linebuf + i * ctx->linebuf_len); + probe_name, ctx->linebuf + i * ctx->linebuf_len); } /* Mark trigger with a ^ character. */ @@ -91,15 +95,16 @@ SR_PRIV int init(struct sr_output *o, int default_spl, enum outputmode mode) o->internal = ctx; ctx->num_enabled_probes = 0; + ctx->probenames = NULL; for (l = o->sdi->probes; l; l = l->next) { probe = l->data; if (!probe->enabled) continue; - ctx->probelist[ctx->num_enabled_probes++] = probe->name; + ctx->probenames = g_slist_append(ctx->probenames, probe->name); + ctx->num_enabled_probes++; } - ctx->probelist[ctx->num_enabled_probes] = 0; ctx->unitsize = (ctx->num_enabled_probes + 7) / 8; ctx->line_offset = 0; ctx->spl_cnt = 0; diff --git a/output/text/text.h b/output/text/text.h index f3ada90d..8d5c9876 100644 --- a/output/text/text.h +++ b/output/text/text.h @@ -36,7 +36,7 @@ struct context { unsigned int unitsize; int line_offset; int linebuf_len; - char *probelist[SR_MAX_NUM_PROBES + 1]; + GSList *probenames; uint8_t *linebuf; int spl_cnt; uint8_t *linevalues;