summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Kim <jkm@hdfgroup.org>2010-04-27 20:28:45 (GMT)
committerJonathan Kim <jkm@hdfgroup.org>2010-04-27 20:28:45 (GMT)
commit36823c3ca15f3f8795fbf5dc735434447166e179 (patch)
tree490c9dc6fe09ff29d99b136ea2be7a6474a4b4fa
parente331b971622ef4386b0cf2cdf468168df8ff03a9 (diff)
downloadhdf5-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.c7
-rw-r--r--tools/h5ls/testh5ls.sh.in2
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