summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5Tf.c
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2015-02-18 16:42:47 (GMT)
committerScot Breitenfeld <brtnfld@hdfgroup.org>2015-02-18 16:42:47 (GMT)
commita75fd4c9600e3b36ceb67832d50e32ba277c5728 (patch)
treeb208d26fd7543372fb08e7e7135018f8d882b926 /fortran/src/H5Tf.c
parent546899dcd63b60bda5f52602ea6f799765d2f096 (diff)
downloadhdf5-a75fd4c9600e3b36ceb67832d50e32ba277c5728.zip
hdf5-a75fd4c9600e3b36ceb67832d50e32ba277c5728.tar.gz
hdf5-a75fd4c9600e3b36ceb67832d50e32ba277c5728.tar.bz2
[svn-r26205] Fix for HDFFV-8908:
h5tenum_insert_f does not work with default 8 byte integers (xlf compiler)
Diffstat (limited to 'fortran/src/H5Tf.c')
-rw-r--r--fortran/src/H5Tf.c46
1 files changed, 45 insertions, 1 deletions
diff --git a/fortran/src/H5Tf.c b/fortran/src/H5Tf.c
index ca9c30f..c406c28 100644
--- a/fortran/src/H5Tf.c
+++ b/fortran/src/H5Tf.c
@@ -1772,7 +1772,7 @@ nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value)
if (c_name == NULL) return ret_value;
c_type_id = (hid_t)*type_id;
- c_value = (int)*value;
+
error = H5Tenum_insert(c_type_id, c_name, &c_value);
HDfree(c_name);
if(error < 0) return ret_value;
@@ -1781,6 +1781,50 @@ nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value)
return ret_value;
}
+/****if* H5Tf/h5tenum_insert_ptr_c
+ * NAME
+ * h5tenum_insert_c
+ * PURPOSE
+ * Call H5Tenum_insert to insert a new enumeration datatype member.
+ * INPUTS
+ * type_id - Datatype identifier for the enumeration datatype.
+ * name - Name of the new member.
+ * namelen - length of the name.
+ * value - Pointer to the value of the new member.
+ * RETURNS
+ * 0 on success, -1 on failure
+ * AUTHOR
+ * M. Scot Breitenfeld
+ * September 25, 2014
+ * HISTORY
+ *
+ * SOURCE
+*/
+int_f
+nh5tenum_insert_ptr_c(hid_t_f *type_id, _fcd name, int_f* namelen, void *value)
+/******/
+{
+ int ret_value = -1;
+ hid_t c_type_id;
+ char* c_name;
+ size_t c_namelen;
+ int_f c_value;
+ herr_t error;
+
+ c_namelen = *namelen;
+ c_name = (char *)HD5f2cstring(name, c_namelen);
+ if (c_name == NULL) return ret_value;
+
+ c_type_id = (hid_t)*type_id;
+
+ error = H5Tenum_insert(c_type_id, c_name, value);
+ HDfree(c_name);
+ if(error < 0) return ret_value;
+
+ ret_value = 0;
+ return ret_value;
+}
+
/****if* H5Tf/h5tenum_nameof_c
* NAME