X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Finput%2Fvcd.c;h=253e76f67d25a78a5b381a08e2cd841ca8bdc723;hb=1c47e0da8f2571bc34dbdc368c3c1f55318c3aa0;hp=66f126b422ed8c0f1521b14d0dcf324813b34459;hpb=3f48fc82b5bc13e749b30a47dd6ca06f8cd2b00e;p=libsigrok.git diff --git a/src/input/vcd.c b/src/input/vcd.c index 66f126b4..253e76f6 100644 --- a/src/input/vcd.c +++ b/src/input/vcd.c @@ -105,6 +105,10 @@ static gboolean parse_section(GString *buf, gchar **name, gchar **contents) status = FALSE; pos = 0; + /* Skip UTF8 BOM */ + if (buf->len >= 3 && !strncmp(buf->str, "\xef\xbb\xbf", 3)) + pos = 3; + /* Skip any initial white-space. */ while (pos < buf->len && g_ascii_isspace(buf->str[pos])) pos++; @@ -578,7 +582,6 @@ static int receive(struct sr_input *in, GString *buf) static int end(struct sr_input *in) { - struct sr_datafeed_packet packet; struct context *inc; int ret; @@ -592,10 +595,8 @@ static int end(struct sr_input *in) /* Send any samples that haven't been sent yet. */ send_buffer(in); - if (inc->started) { - packet.type = SR_DF_END; - sr_session_send(in->sdi, &packet); - } + if (inc->started) + std_session_send_df_end(in->sdi, LOG_PREFIX); return ret; }