summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5If.c
diff options
context:
space:
mode:
authorElena Pourmal <epourmal@hdfgroup.org>2008-05-03 23:39:37 (GMT)
committerElena Pourmal <epourmal@hdfgroup.org>2008-05-03 23:39:37 (GMT)
commitdcad778b42d371c5429b913c65ec5c32f658d94e (patch)
tree3aa9f6ad4ef79064db548aa0ff692d2d1c6bbb51 /fortran/src/H5If.c
parent8090e1c6035e784402f8185434f291b63fe1d7c2 (diff)
downloadhdf5-dcad778b42d371c5429b913c65ec5c32f658d94e.zip
hdf5-dcad778b42d371c5429b913c65ec5c32f658d94e.tar.gz
hdf5-dcad778b42d371c5429b913c65ec5c32f658d94e.tar.bz2
[svn-r14923] Maintenance: This check-in merges changes from the fortran_1_8 branch back into the trunk (up to revision 14921)
Platforms tested: kagiso with g95 and Intel compilers; more testing will be done after checking in a fresh copy from the trunk. New code itself was tested with all Fortran compilers available at THG
Diffstat (limited to 'fortran/src/H5If.c')
-rw-r--r--fortran/src/H5If.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/fortran/src/H5If.c b/fortran/src/H5If.c
index d948259..b4c7660 100644
--- a/fortran/src/H5If.c
+++ b/fortran/src/H5If.c
@@ -54,7 +54,11 @@ nh5iget_type_c (hid_t_f *obj_id, int_f *type)
* Returns: length of the name on success, -1 on failure
* Programmer: Elena Pourmal
* Wednesday, March 12, 2003
- * Modifications:
+ * Modifications:
+ * Changed the size of c_buf_size to c_buf_size + 1, which
+ * fixes the problem of truncating the string by 1 if the
+ * exact size of the string (buf_size) is passed in.
+ * M.S. Breitenfeld, April 21, 2008
*---------------------------------------------------------------------------*/
int_f
nh5iget_name_c(hid_t_f *obj_id, _fcd buf, size_t_f *buf_size, size_t_f *name_size)
@@ -68,8 +72,8 @@ nh5iget_name_c(hid_t_f *obj_id, _fcd buf, size_t_f *buf_size, size_t_f *name_siz
/*
* Allocate buffer to hold name of an attribute
*/
- c_buf_size = (size_t)*buf_size;
- c_buf = (char *)HDmalloc(c_buf_size +1);
+ c_buf_size = (size_t)*buf_size +1;
+ c_buf = (char *)HDmalloc(c_buf_size);
if (c_buf == NULL) return ret_value;
/*
@@ -82,7 +86,7 @@ nh5iget_name_c(hid_t_f *obj_id, _fcd buf, size_t_f *buf_size, size_t_f *name_siz
/*
* Convert C name to FORTRAN and place it in the given buffer
*/
- HD5packFstring(c_buf, _fcdtocp(buf), c_buf_size);
+ HD5packFstring(c_buf, _fcdtocp(buf), c_buf_size-1);
*name_size = (size_t_f)c_size;
ret_value = 0;