X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=util%2Fmarcdump.c;h=43ff281eab5495c20f0e8e183154232bae6e5fa6;hp=cb72a8411491929a5ec2265b6a8b966f38542701;hb=b3d1527a6d94b1af17bf36c7781be9679c3fbfc9;hpb=29640f69a8ba3211f384abca32b57b6c3faaf75e diff --git a/util/marcdump.c b/util/marcdump.c index cb72a84..43ff281 100644 --- a/util/marcdump.c +++ b/util/marcdump.c @@ -1,8 +1,6 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS +/* This file is part of the YAZ toolkit. + * Copyright (C) 1995-2009 Index Data * See the file LICENSE for details. - * - * $Id: marcdump.c,v 1.55 2007-12-18 21:13:06 adam Exp $ */ #define _FILE_OFFSET_BITS 64 @@ -60,12 +58,23 @@ static char *prog; static void usage(const char *prog) { - fprintf (stderr, "Usage: %s [-c cfile] [-f from] [-t to] " - "[-i format] [-o format] " - "[-n] [-l pos=value] [-v] [-C chunk] [-s splitfname] [-p] file...\n", + fprintf (stderr, "Usage: %s [-i format] [-o format] [-f from] [-t to] " + "[-l pos=value] [-c cfile] [-s prefix] [-C size] [-n] " + "[-p] [-v] [-V] file...\n", prog); } +static void show_version(void) +{ + char vstr[20], sha1_str[41]; + + yaz_version(vstr, sha1_str); + printf("YAZ version: %s %s\n", YAZ_VERSION, YAZ_VERSION_SHA1); + if (strcmp(sha1_str, YAZ_VERSION_SHA1)) + printf("YAZ DLL/SO: %s %s\n", vstr, sha1_str); + exit(0); +} + static int getbyte_stream(void *client_data) { FILE *f = (FILE*) client_data; @@ -334,7 +343,11 @@ static void dump(const char *fname, const char *from, const char *to, r = yaz_marc_decode_buf(mt, buf, -1, &result, &len_result); if (r > 0 && result) { - fwrite (result, len_result, 1, stdout); + if (fwrite(result, len_result, 1, stdout) != 1) + { + fprintf(stderr, "Write to stdout failed\n"); + break; + } } if (r > 0 && cfile) { @@ -400,7 +413,7 @@ int main (int argc, char **argv) #endif prog = *argv; - while ((r = options("i:o:C:npvc:xOeXIf:t:s:l:", argv, argc, &arg)) != -2) + while ((r = options("i:o:C:npc:xOeXIf:t:s:l:Vv", argv, argc, &arg)) != -2) { no++; switch (r) @@ -497,6 +510,9 @@ int main (int argc, char **argv) case 'v': verbose++; break; + case 'V': + show_version(); + break; default: usage(prog); exit(1);