diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2005-01-19 02:51:12 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2005-01-19 02:51:12 (GMT) |
commit | fabb06712b15f111c7ccce8c394ff6fc9bd2f997 (patch) | |
tree | 51b5f57598d1ff355090e481a8268ee5ba80e88c /fortran/src/H5Eff.f90 | |
parent | b8f7cdc48d9c8470fdf8930938e75b50210150fb (diff) | |
download | hdf5-fabb06712b15f111c7ccce8c394ff6fc9bd2f997.zip hdf5-fabb06712b15f111c7ccce8c394ff6fc9bd2f997.tar.gz hdf5-fabb06712b15f111c7ccce8c394ff6fc9bd2f997.tar.bz2 |
[svn-r9838] Purpose:
Bug fix
Description:
Correctly retire the H5E_LEN setting, now that the FORTRAN and C++ APIs
have been corrected to not use it either.
Solution:
Pass in the string buffer length for FORTRAN
In the C++ API, call H5Eget_msg() in a manner similar to the way
H5Fget_name() is called.
Platforms tested:
Linux 2.4 (heping) w/FORTRAN & C++
Solaris 2.7 (arabica) w/FORTRAN & C++
Diffstat (limited to 'fortran/src/H5Eff.f90')
-rw-r--r-- | fortran/src/H5Eff.f90 | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/fortran/src/H5Eff.f90 b/fortran/src/H5Eff.f90 index 6e58bcf..2c64749 100644 --- a/fortran/src/H5Eff.f90 +++ b/fortran/src/H5Eff.f90 @@ -147,6 +147,7 @@ ! error_no - mojor error number ! Outputs: ! name - character string describing the error +! namelen - number of characters in the name buffer ! hdferr: - error code ! Success: 0 ! Failure: -1 @@ -162,7 +163,7 @@ ! Comment: !---------------------------------------------------------------------- - SUBROUTINE h5eget_major_f(error_no, name, hdferr) + SUBROUTINE h5eget_major_f(error_no, name, namelen, hdferr) ! !This definition is needed for Windows DLLs !DEC$if defined(BUILD_HDF5_DLL) @@ -172,24 +173,26 @@ INTEGER, INTENT(IN) :: error_no !Major error number CHARACTER(LEN=*), INTENT(OUT) :: name ! Character string describing ! the error. + INTEGER(SIZE_T), INTENT(IN) :: namelen !Anticipated number of characters in name. INTEGER, INTENT(OUT) :: hdferr ! Error code ! INTEGER, EXTERNAL :: h5eget_major_c ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5eget_major_c(error_no, name) + INTEGER FUNCTION h5eget_major_c(error_no, name, namelen) USE H5GLOBAL !DEC$ IF DEFINED(HDF5F90_WINDOWS) !MS$ATTRIBUTES C,reference,alias:'_H5EGET_MAJOR_C'::h5eget_major_c !DEC$ ENDIF !DEC$ATTRIBUTES reference :: name INTEGER :: error_no - CHARACTER(LEN=*) :: name + CHARACTER(LEN=*) :: name + INTEGER(SIZE_T), INTENT(IN) :: namelen END FUNCTION h5eget_major_c END INTERFACE - hdferr = h5eget_major_c(error_no, name) + hdferr = h5eget_major_c(error_no, name, namelen) END SUBROUTINE h5eget_major_f !---------------------------------------------------------------------- |