[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.
This commit is contained in:
Albert Cheng 2000-10-12 21:32:25 -05:00
parent f53e72cc9f
commit fcfecf9ff2
5 changed files with 6 additions and 4 deletions

View File

@ -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__);

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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