diff options
author | Jonathan Kim <jkm@hdfgroup.org> | 2010-04-27 20:28:45 (GMT) |
---|---|---|
committer | Jonathan Kim <jkm@hdfgroup.org> | 2010-04-27 20:28:45 (GMT) |
commit | 36823c3ca15f3f8795fbf5dc735434447166e179 (patch) | |
tree | 490c9dc6fe09ff29d99b136ea2be7a6474a4b4fa | |
parent | e331b971622ef4386b0cf2cdf468168df8ff03a9 (diff) | |
download | hdf5-36823c3ca15f3f8795fbf5dc735434447166e179.zip hdf5-36823c3ca15f3f8795fbf5dc735434447166e179.tar.gz hdf5-36823c3ca15f3f8795fbf5dc735434447166e179.tar.bz2 |
[svn-r18643] Purpose:
Fix for Bug 1793 - h5ls on a non-existent file gives 0 return code
Description:
Merged from hdf5 trunk r18642.
After the fix, h5ls returns 1 (EXIT_FAILURE) if non-existent file is given.
Tested:
jam
-rw-r--r-- | tools/h5ls/h5ls.c | 7 | ||||
-rw-r--r-- | tools/h5ls/testh5ls.sh.in | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/tools/h5ls/h5ls.c b/tools/h5ls/h5ls.c index c969670..c6eee3f 100644 --- a/tools/h5ls/h5ls.c +++ b/tools/h5ls/h5ls.c @@ -2180,6 +2180,7 @@ main(int argc, const char *argv[]) static char root_name[] = "/"; char drivername[50]; const char *preferred_driver = NULL; + int err_openfile = 0; /* Initialize h5tools lib */ h5tools_init(); @@ -2405,6 +2406,7 @@ main(int argc, const char *argv[]) if(file < 0) { fprintf(stderr, "%s: unable to open file\n", argv[argno-1]); HDfree(fname); + err_openfile = 1; continue; } /* end if */ if(oname) { @@ -2478,6 +2480,9 @@ main(int argc, const char *argv[]) HDfree(elink_list.objs); } /* end while */ - leave(EXIT_SUCCESS); + if (err_openfile) + leave(EXIT_FAILURE); + else + leave(EXIT_SUCCESS); } /* end main() */ diff --git a/tools/h5ls/testh5ls.sh.in b/tools/h5ls/testh5ls.sh.in index 076c529..412f5c2 100644 --- a/tools/h5ls/testh5ls.sh.in +++ b/tools/h5ls/testh5ls.sh.in @@ -177,7 +177,7 @@ TOOLTEST tattr2.ls 0 -w80 -v -S tattr2.h5 # tests for error handling. # test for non-existing file -TOOLTEST nosuchfile.ls 0 nosuchfile.h5 +TOOLTEST nosuchfile.ls 1 nosuchfile.h5 # test for variable length data types in verbose mode if test $WORDS_BIGENDIAN != "yes"; then |