From fcfecf9ff20c670eab5cce89700348a37da368a7 Mon Sep 17 00:00:00 2001 From: Albert Cheng Date: Thu, 12 Oct 2000 21:32:25 -0500 Subject: [svn-r2680] Purpose: Bug fix (ID 419) Description: Converted strings class types (in dataset and attributes) to HDF4 type of DFNT_INT8. Should have been DFNT_CHAR type. Solution: h5toh4.c: Changed the HDF4 type from DFNT_INT8 to DFNT_CHAR type. Converted all hdf5 strings (be it NULLTERM, NULLPAD, SPACEPAD) all to fixed width space padded HDF4 DFNT_CHAR. testh5toh4: Added the testing of $HDF_NOCLEANUP before cleaning away the result files. testfiles/Expected/tattr.hdf: testfiles/Expected/tstr.hdf: testfiles/Expected/tstr2.hdf: Updated with the corrected DFNT_CHAR type. Platforms tested: Solaris 2.7, Linux, Irix 6.5. --- tools/h5toh4.c | 6 +++--- tools/testfiles/Expected/tattr.hdf | Bin 783 -> 783 bytes tools/testfiles/Expected/tstr.hdf | Bin 1429 -> 1429 bytes tools/testfiles/Expected/tstr2.hdf | Bin 4103 -> 4103 bytes tools/testh5toh4 | 4 +++- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/tools/h5toh4.c b/tools/h5toh4.c index 228c33c..7182f8a 100644 --- a/tools/h5toh4.c +++ b/tools/h5toh4.c @@ -1175,7 +1175,7 @@ H5T_str_t strpad; case H5T_STRING: fxdlenstr = type; - h4_type = DFNT_INT8; + h4_type = DFNT_CHAR; if ((space = H5Aget_space(attr_id)) <= 0) { fprintf(stderr, "Error: H5Dget_space() didn't return appropriate value.\n"); @@ -1214,7 +1214,7 @@ H5T_str_t strpad; DEBUG_PRINT("Error detected in %s() [%s line %d]\n", "convert_attr", __FILE__, __LINE__); return strpad; } - if ((status = H5Tset_strpad(mem_type, strpad)) != SUCCEED ) { + if ((status = H5Tset_strpad(mem_type, H5T_STR_SPACEPAD)) != SUCCEED ) { fprintf(stderr, "Error: Problem with H5Tset_strpad()\n"); DEBUG_PRINT("Error detected in %s() [%s line %d]\n", "convert_attr", __FILE__, __LINE__); return status; @@ -1954,7 +1954,7 @@ H5T_str_t strpad; return status; } - h4_type = DFNT_INT8; + h4_type = DFNT_CHAR; if ((mem_type = H5Tcopy(H5T_C_S1)) == FAIL ) { fprintf(stderr, "Error: Problems translating h4 type to mem type\n"); DEBUG_PRINT("Error detected in %s() [%s line %d]\n", "convert_dataset_string", __FILE__, __LINE__); diff --git a/tools/testfiles/Expected/tattr.hdf b/tools/testfiles/Expected/tattr.hdf index cf1519a..36b2497 100644 Binary files a/tools/testfiles/Expected/tattr.hdf and b/tools/testfiles/Expected/tattr.hdf differ diff --git a/tools/testfiles/Expected/tstr.hdf b/tools/testfiles/Expected/tstr.hdf index 90b5694..5507e24 100644 Binary files a/tools/testfiles/Expected/tstr.hdf and b/tools/testfiles/Expected/tstr.hdf differ diff --git a/tools/testfiles/Expected/tstr2.hdf b/tools/testfiles/Expected/tstr2.hdf index 05328a0..dc4df5b 100644 Binary files a/tools/testfiles/Expected/tstr2.hdf and b/tools/testfiles/Expected/tstr2.hdf differ diff --git a/tools/testh5toh4 b/tools/testh5toh4 index af224ff..7e4e0f2 100644 --- a/tools/testh5toh4 +++ b/tools/testh5toh4 @@ -295,5 +295,7 @@ if test $nerrors -eq 0 ; then echo "All h5toh4 tests passed." fi -$RM -r $OUTDIR +if test -z "$HDF5_NOCLEANUP"; then + $RM -r $OUTDIR +fi exit $nerrors -- cgit v0.12