You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by dc...@apache.org on 2012/09/13 23:28:19 UTC
svn commit: r1384549 - in /avro/trunk: CHANGES.txt lang/c/src/avrocat.c
Author: dcreager
Date: Thu Sep 13 21:28:19 2012
New Revision: 1384549
URL: http://svn.apache.org/viewvc?rev=1384549&view=rev
Log:
AVRO-1160. C: Better error reporting in avrocat
Contributed by Lucas Martin-King.
Modified:
avro/trunk/CHANGES.txt
avro/trunk/lang/c/src/avrocat.c
Modified: avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=1384549&r1=1384548&r2=1384549&view=diff
==============================================================================
--- avro/trunk/CHANGES.txt (original)
+++ avro/trunk/CHANGES.txt Thu Sep 13 21:28:19 2012
@@ -67,6 +67,9 @@ Avro 1.7.2 (unreleased)
AVRO-1159. C: Check union discriminants in avro_value_read.
(Lucas Martin-King via dcreager)
+ AVRO-1160. C: Better error reporting in avrocat. (Lucas Martin-King
+ via dcreager)
+
Avro 1.7.1 (16 July 2012)
NEW FEATURES
Modified: avro/trunk/lang/c/src/avrocat.c
URL: http://svn.apache.org/viewvc/avro/trunk/lang/c/src/avrocat.c?rev=1384549&r1=1384548&r2=1384549&view=diff
==============================================================================
--- avro/trunk/lang/c/src/avrocat.c (original)
+++ avro/trunk/lang/c/src/avrocat.c Thu Sep 13 21:28:19 2012
@@ -30,21 +30,33 @@ static void
process_file(const char *filename)
{
avro_file_reader_t reader;
+ FILE *fp;
+ int should_close;
if (filename == NULL) {
- if (avro_file_reader_fp(stdin, "<stdin>", 0, &reader)) {
- fprintf(stderr, "Error opening <stdin>:\n %s\n",
- avro_strerror());
- exit(1);
- }
+ fp = stdin;
+ filename = "<stdin>";
+ should_close = 0;
} else {
- if (avro_file_reader(filename, &reader)) {
+ fp = fopen(filename, "rb");
+ should_close = 1;
+
+ if (fp == NULL) {
fprintf(stderr, "Error opening %s:\n %s\n",
- filename, avro_strerror());
+ filename, strerror(errno));
exit(1);
}
}
+ if (avro_file_reader_fp(fp, filename, 0, &reader)) {
+ fprintf(stderr, "Error opening %s:\n %s\n",
+ filename, avro_strerror());
+ if (should_close) {
+ fclose(fp);
+ }
+ exit(1);
+ }
+
avro_schema_t wschema;
avro_value_iface_t *iface;
avro_value_t value;
@@ -67,9 +79,17 @@ process_file(const char *filename)
avro_value_reset(&value);
}
+ if (!feof(fp)) {
+ fprintf(stderr, "Error: %s\n", avro_strerror());
+ }
+
avro_file_reader_close(reader);
avro_value_decref(&value);
avro_value_iface_decref(iface);
+
+ if (should_close) {
+ fclose(fp);
+ }
}