summaryrefslogtreecommitdiffstats
path: root/parse.c
diff options
context:
space:
mode:
authorGravatar Linus Torvalds <torvalds@linux-foundation.org>2011-08-30 13:58:19 -0700
committerGravatar Linus Torvalds <torvalds@linux-foundation.org>2011-08-30 13:58:19 -0700
commit414565e000d24fe8b483294fbec64539e336bb4e (patch)
tree0de1b4ab96bd246c4f73de105a98a39a81ab8529 /parse.c
parentee35716ec72e258897f69e5a22400bc52c51716d (diff)
downloadsubsurface-414565e000d24fe8b483294fbec64539e336bb4e.tar.gz
Start showing unparsed entries
(ie all of them) This also shows the type of entry, which makes it clear that I've screwed up the sample matching. Oh well. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/parse.c b/parse.c
index 7595ef529..bbe1a68ca 100644
--- a/parse.c
+++ b/parse.c
@@ -104,14 +104,31 @@ static void record_dive(struct dive *dive)
printf("Recording dive %d with %d samples\n", ++nr, dive->samples);
}
+static void nonmatch(const char *type, const char *fullname, const char *name, int size, const char *buffer)
+{
+ printf("Unable to match %s '(%.*s)%s' (%.*s)\n", type,
+ (int) (name - fullname), fullname, name,
+ size, buffer);
+}
+
+static const char *last_part(const char *name)
+{
+ const char *p = strrchr(name, '.');
+ return p ? p+1 : name;
+}
+
/* We're in samples - try to convert the random xml value to something useful */
static void try_to_fill_sample(struct sample *sample, const char *name, int size, const char *buffer)
{
+ const char *last = last_part(name);
+ nonmatch("sample", name, last, size, buffer);
}
/* We're in the top-level dive xml. Try to convert whatever value to a dive value */
static void try_to_fill_dive(struct dive *dive, const char *name, int size, const char *buffer)
{
+ const char *last = last_part(name);
+ nonmatch("dive", name, last, size, buffer);
}
/*