# HG changeset patch # User Kacper Kowalik # Date 1259624947 -3600 # Node ID ac69e6f4b33d43e3779259969db5aed2af15eb4a # Parent 1506a17832c95a7418a69305e49c9a114317eaf9 Add HDF5-1.8 compatibility while maintaining compatibility with HDF5-1.6 versions diff -r 1506a17832c9 -r ac69e6f4b33d ChangeLog --- a/ChangeLog Mon Nov 30 14:32:10 2009 -0500 +++ b/ChangeLog Tue Dec 01 00:49:07 2009 +0100 @@ -1,3 +1,11 @@ +2009-11-30 Kacper Kowalik + + * acinclude.m4 (OCTAVE_HDF5_HAS_ENFORCED_16_API): New macro that + tests whether the HDF5 library has an enforced v1.6 API and detects + v1.8 APIs. + * configure.m4: Adapt test for HDF5 libraries to support v1.8 + HDF5 libraries. + 2009-11-29 Jaroslav Hajek * NEWS: Update. diff -r 1506a17832c9 -r ac69e6f4b33d acinclude.m4 --- a/acinclude.m4 Mon Nov 30 14:32:10 2009 -0500 +++ b/acinclude.m4 Tue Dec 01 00:49:07 2009 +0100 @@ -1059,20 +1059,17 @@ dnl dnl Check whether HDF5 library has version 1.6 API functions. dnl -AC_DEFUN([OCTAVE_HDF5_HAS_REQUIRED_API], [ - AC_CACHE_CHECK([whether HDF5 library has required API], - octave_cv_hdf5_has_required_api, [ +AC_DEFUN([OCTAVE_HDF5_HAS_ENFORCED_16_API], [ + AC_CACHE_CHECK([whether HDF5 library has enforced version 1.6 API], + octave_cv_hdf5_has_enforced_16_api, [ AC_TRY_LINK([ -#define H5_USE_16_API 1 #include ], [ H5Eset_auto (0, 0);], [ - octave_cv_hdf5_has_required_api=yes], [ - octave_cv_hdf5_has_required_api=no])]) - if test "$octave_cv_hdf5_has_required_api" = "no"; then - octave_hdf5_ok=no - warn_hdf5="HDF5 library does not provide the version 1.6 API. Octave will not be able to save or load HDF5 data files." - AC_MSG_WARN($warn_hdf5) + octave_cv_hdf5_has_enforced_16_api=yes], [ + octave_cv_hdf5_has_enforced_16_api=no])]) + if test "$octave_cv_hdf5_has_enforced_16_api" != "yes"; then + AC_DEFINE(HAVE_HDF5_18, 1, [Define if >=HDF5-1.8 is available.]) fi ]) dnl diff -r 1506a17832c9 -r ac69e6f4b33d configure.ac --- a/configure.ac Mon Nov 30 14:32:10 2009 -0500 +++ b/configure.ac Tue Dec 01 00:49:07 2009 +0100 @@ -631,16 +631,15 @@ [HDF5 library not found. Octave will not be able to save or load HDF5 data files.], [hdf5.h], [H5Gget_num_objs], [], [], [warn_hdf5= - OCTAVE_HDF5_HAS_REQUIRED_API - if test $octave_hdf5_ok = yes; then - TEXINFO_HDF5="@set HAVE_HDF5" - AC_DEFINE(HAVE_HDF5, 1, [Define if HDF5 is available.]) - case "$canonical_host_type" in - *-*-msdosmsvc) - OCTAVE_HDF5_DLL - ;; - esac - fi]) + OCTAVE_HDF5_HAS_ENFORCED_16_API + TEXINFO_HDF5="@set HAVE_HDF5" + AC_DEFINE(HAVE_HDF5, 1, [Define if HDF5 is available and newer than version 1.6.]) + case "$canonical_host_type" in + *-*-msdosmsvc) + OCTAVE_HDF5_DLL + ;; + esac + ]) CPPFLAGS="$save_CPPFLAGS" LIBS="$save_LIBS" diff -r 1506a17832c9 -r ac69e6f4b33d src/ChangeLog --- a/src/ChangeLog Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ChangeLog Tue Dec 01 00:49:07 2009 +0100 @@ -1,3 +1,14 @@ +2009-11-30 Kacper Kowalik + + * oct-hdf5.h: Drop force the use of the v1.6 API + * ls-hdf5.cc, ov-base-int.cc, ov-bool-mat.cc, ov-bool-sparse.cc, + ov-bool.cc, ov-cell.cc, ov-class.cc, ov-complex.cc, ov-cx-mat.cc, + ov-cx-sparse.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, ov-float.cc, + ov-flt-complex.cc, ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-list.cc, + ov-range.cc, ov-re-mat.cc, ov-re-sparse.cc, ov-scalar.cc, + ov-str-mat.cc, ov-struct.cc: Allow v1.8 API versions of hdf5 + functions. + 2009-11-30 John W. Eaton * DLD-FUNCTIONS/fft2.cc (Fifft2): Docstring fix. diff -r 1506a17832c9 -r ac69e6f4b33d src/ls-hdf5.cc --- a/src/ls-hdf5.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ls-hdf5.cc Tue Dec 01 00:49:07 2009 +0100 @@ -142,8 +142,13 @@ // turn off error reporting temporarily, but save the error // reporting function: +#if HAVE_HDF5_18 + H5Eget_auto (H5E_DEFAULT, &err_func, &err_func_data); + H5Eset_auto (H5E_DEFAULT, 0, 0); +#else H5Eget_auto (&err_func, &err_func_data); H5Eset_auto (0, 0); +#endif hid_t attr_id = H5Aopen_name (loc_id, attr_name); @@ -155,8 +160,11 @@ } // restore error reporting: +#if HAVE_HDF5_18 + H5Eset_auto (H5E_DEFAULT, err_func, err_func_data); +#else H5Eset_auto (err_func, err_func_data); - +#endif return retval; } @@ -216,7 +224,11 @@ if (info.type == H5G_GROUP && ident_valid) { +#if HAVE_HDF5_18 + subgroup_id = H5Gopen (group_id, name, H5P_DEFAULT); +#else subgroup_id = H5Gopen (group_id, name); +#endif if (subgroup_id < 0) { @@ -226,7 +238,11 @@ if (hdf5_check_attr (subgroup_id, "OCTAVE_NEW_FORMAT")) { +#if HAVE_HDF5_18 + data_id = H5Dopen (subgroup_id, "type", H5P_DEFAULT); +#else data_id = H5Dopen (subgroup_id, "type"); +#endif if (data_id < 0) { @@ -296,7 +312,11 @@ else if (info.type == H5G_DATASET && ident_valid) { // For backwards compatiability. +#if HAVE_HDF5_18 + data_id = H5Dopen (group_id, name, H5P_DEFAULT); +#else data_id = H5Dopen (group_id, name); +#endif if (data_id < 0) { @@ -523,14 +543,17 @@ herr_t H5Giterate_retval = -1; hsize_t num_obj = 0; +#if HAVE_HDF5_18 + hid_t group_id = H5Gopen (hs.file_id, "/", H5P_DEFAULT); +#else hid_t group_id = H5Gopen (hs.file_id, "/"); +#endif H5Gget_num_objs (group_id, &num_obj); H5Gclose (group_id); if (hs.current_item < static_cast (num_obj)) H5Giterate_retval = H5Giterate (hs.file_id, "/", &hs.current_item, hdf5_read_next_data, &d); - if (H5Giterate_retval > 0) { global = d.global; @@ -561,9 +584,13 @@ if (as_id >= 0) { +#if HAVE_HDF5_18 + hid_t a_id = H5Acreate (loc_id, attr_name, H5T_NATIVE_UCHAR, + as_id, H5P_DEFAULT, H5P_DEFAULT); +#else hid_t a_id = H5Acreate (loc_id, attr_name, H5T_NATIVE_UCHAR, as_id, H5P_DEFAULT); - +#endif if (a_id >= 0) { unsigned char attr_val = 1; @@ -607,9 +634,13 @@ space_hid = H5Screate_simple (1, &sz, 0); if (space_hid < 0) return space_hid; - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -639,7 +670,11 @@ return 0; hsize_t hdims, maxdims; +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t space_id = H5Dget_space (data_hid); H5Sget_simple_extent_dims (space_id, &hdims, &maxdims); int retval; @@ -722,8 +757,11 @@ val = val.full_value (); std::string t = val.type_name(); - +#if HAVE_HDF5_18 + data_id = H5Gcreate (loc_id, name.c_str (), H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_id = H5Gcreate (loc_id, name.c_str (), 0); +#endif if (data_id < 0) goto error_cleanup; @@ -736,8 +774,12 @@ space_id = H5Screate_simple (0 , dims, 0); if (space_id < 0) goto error_cleanup; - +#if HAVE_HDF5_18 + data_type_id = H5Dcreate (data_id, "type", type_id, space_id, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_type_id = H5Dcreate (data_id, "type", type_id, space_id, H5P_DEFAULT); +#endif if (data_type_id < 0 || H5Dwrite (data_type_id, type_id, H5S_ALL, H5S_ALL, H5P_DEFAULT, t.c_str ()) < 0) goto error_cleanup; diff -r 1506a17832c9 -r ac69e6f4b33d src/oct-hdf5.h --- a/src/oct-hdf5.h Mon Nov 30 14:32:10 2009 -0500 +++ b/src/oct-hdf5.h Tue Dec 01 00:49:07 2009 +0100 @@ -24,13 +24,7 @@ #define octave_hdf5_h 1 #if defined (HAVE_HDF5) - -#if !defined (H5_USE_16_API) -#define H5_USE_16_API 1 -#endif - #include - #endif #endif diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-base-int.cc --- a/src/ov-base-int.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-base-int.cc Tue Dec 01 00:49:07 2009 +0100 @@ -350,9 +350,13 @@ space_hid = H5Screate_simple (rank, hdims, 0); if (space_hid < 0) return false; - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -381,7 +385,11 @@ if (empty) return (empty > 0); +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t space_id = H5Dget_space (data_hid); hsize_t rank = H5Sget_simple_extent_ndims (space_id); @@ -540,8 +548,13 @@ space_hid = H5Screate_simple (0, dimens, 0); if (space_hid < 0) return false; +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -562,7 +575,11 @@ octave_base_int_scalar::load_hdf5 (hid_t loc_id, const char *name) { hid_t save_type_hid = HDF5_SAVE_TYPE; +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t space_id = H5Dget_space (data_hid); hsize_t rank = H5Sget_simple_extent_ndims (space_id); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-bool-mat.cc --- a/src/ov-bool-mat.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-bool-mat.cc Tue Dec 01 00:49:07 2009 +0100 @@ -432,9 +432,13 @@ space_hid = H5Screate_simple (rank, hdims, 0); if (space_hid < 0) return false; - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_HBOOL, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_HBOOL, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -469,7 +473,11 @@ if (empty) return (empty > 0); +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t space_id = H5Dget_space (data_hid); hsize_t rank = H5Sget_simple_extent_ndims (space_id); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-bool-sparse.cc --- a/src/ov-bool-sparse.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-bool-sparse.cc Tue Dec 01 00:49:07 2009 +0100 @@ -344,8 +344,11 @@ // Ensure that additional memory is deallocated matrix.maybe_compress (); - +#if HAVE_HDF5_18 + hid_t group_hid = H5Gcreate (loc_id, name, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else hid_t group_hid = H5Gcreate (loc_id, name, 0); +#endif if (group_hid < 0) return false; @@ -361,9 +364,13 @@ H5Gclose (group_hid); return false; } - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "nr", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "nr", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -381,8 +388,13 @@ return false; } +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "nc", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "nc", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -401,8 +413,13 @@ return false; } +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "nz", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "nz", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -434,8 +451,13 @@ return false; } +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "cidx", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "cidx", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -467,8 +489,13 @@ return false; } +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "ridx", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "ridx", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -487,8 +514,13 @@ return false; } +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "data", H5T_NATIVE_HBOOL, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "data", H5T_NATIVE_HBOOL, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -522,11 +554,19 @@ matrix.resize(dv); if (empty) return (empty > 0); - + +#if HAVE_HDF5_18 + group_hid = H5Gopen (loc_id, name, H5P_DEFAULT); +#else group_hid = H5Gopen (loc_id, name); +#endif if (group_hid < 0 ) return false; +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "nr", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "nr"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -546,7 +586,11 @@ H5Dclose (data_hid); +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "nc", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "nc"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -565,8 +609,12 @@ } H5Dclose (data_hid); - + +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "nz", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "nz"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -590,7 +638,11 @@ static_cast (nc), static_cast (nz)); +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "cidx", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "cidx"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -628,7 +680,11 @@ H5Sclose (space_hid); H5Dclose (data_hid); +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "ridx", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "ridx"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -664,7 +720,11 @@ H5Sclose (space_hid); H5Dclose (data_hid); +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "data", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "data"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-bool.cc --- a/src/ov-bool.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-bool.cc Tue Dec 01 00:49:07 2009 +0100 @@ -170,9 +170,13 @@ space_hid = H5Screate_simple (0, dimens, 0); if (space_hid < 0) return false; - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_DOUBLE, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_DOUBLE, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -192,7 +196,11 @@ bool octave_bool::load_hdf5 (hid_t loc_id, const char *name) { +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t space_id = H5Dget_space (data_hid); hsize_t rank = H5Sget_simple_extent_ndims (space_id); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-cell.cc --- a/src/ov-cell.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-cell.cc Tue Dec 01 00:49:07 2009 +0100 @@ -1034,7 +1034,11 @@ hsize_t rank = dv.length (); hid_t space_hid = -1, data_hid = -1, size_hid = -1; +#if HAVE_HDF5_18 + data_hid = H5Gcreate (loc_id, name, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Gcreate (loc_id, name, 0); +#endif if (data_hid < 0) return false; @@ -1056,8 +1060,13 @@ for (hsize_t i = 0; i < rank; i++) hdims[i] = dv(rank-i-1); +#if HAVE_HDF5_18 + size_hid = H5Dcreate (data_hid, "dims", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else size_hid = H5Dcreate (data_hid, "dims", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (size_hid < 0) { H5Sclose (space_hid); @@ -1117,12 +1126,20 @@ if (empty) return (empty > 0); +#if HAVE_HDF5_18 + hid_t group_id = H5Gopen (loc_id, name, H5P_DEFAULT); +#else hid_t group_id = H5Gopen (loc_id, name); +#endif if (group_id < 0) return false; +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (group_id, "dims", H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (group_id, "dims"); +#endif hid_t space_hid = H5Dget_space (data_hid); hsize_t rank = H5Sget_simple_extent_ndims (space_hid); if (rank != 1) @@ -1166,7 +1183,11 @@ int current_item = 0; hsize_t num_obj = 0; +#if HAVE_HDF5_18 + group_id = H5Gopen (loc_id, name, H5P_DEFAULT); +#else group_id = H5Gopen (loc_id, name); +#endif H5Gget_num_objs (group_id, &num_obj); H5Gclose (group_id); @@ -1174,7 +1195,7 @@ { if (current_item >= static_cast (num_obj)) - retval2 = -1; + retval2 = -1; else retval2 = H5Giterate (loc_id, name, ¤t_item, hdf5_read_next_data, &dsub); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-class.cc --- a/src/ov-class.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-class.cc Tue Dec 01 00:49:07 2009 +0100 @@ -1399,7 +1399,11 @@ Octave_map m; Octave_map::iterator i; +#if HAVE_HDF5_18 + group_hid = H5Gcreate (loc_id, name, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else group_hid = H5Gcreate (loc_id, name, 0); +#endif if (group_hid < 0) goto error_cleanup; @@ -1412,14 +1416,22 @@ space_hid = H5Screate_simple (0 , hdims, 0); if (space_hid < 0) goto error_cleanup; - +#if HAVE_HDF5_18 + class_hid = H5Dcreate (group_hid, "classname", type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else class_hid = H5Dcreate (group_hid, "classname", type_hid, space_hid, H5P_DEFAULT); +#endif if (class_hid < 0 || H5Dwrite (class_hid, type_hid, H5S_ALL, H5S_ALL, H5P_DEFAULT, c_name.c_str ()) < 0) goto error_cleanup; +#if HAVE_HDF5_18 + data_hid = H5Gcreate (group_hid, "value", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Gcreate (group_hid, "value", 0); +#endif if (data_hid < 0) goto error_cleanup; @@ -1492,12 +1504,19 @@ int slen = 0; hsize_t rank = 0; +#if HAVE_HDF5_18 + group_hid = H5Gopen (loc_id, name, H5P_DEFAULT); +#else group_hid = H5Gopen (loc_id, name); +#endif if (group_hid < 0) goto error_cleanup; - +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "classname", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "classname"); +#endif if (data_hid < 0) goto error_cleanup; @@ -1546,8 +1565,11 @@ while (0); reconstruct_exemplar (); - +#if HAVE_HDF5_18 + subgroup_hid = H5Gopen (group_hid, name, H5P_DEFAULT); +#else subgroup_hid = H5Gopen (group_hid, name); +#endif H5Gget_num_objs (subgroup_hid, &num_obj); H5Gclose (subgroup_hid); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-complex.cc --- a/src/ov-complex.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-complex.cc Tue Dec 01 00:49:07 2009 +0100 @@ -320,8 +320,12 @@ H5Sclose (space_hid); return false; } - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -344,7 +348,11 @@ octave_complex::load_hdf5 (hid_t loc_id, const char *name) { bool retval = false; +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t type_hid = H5Dget_type (data_hid); hid_t complex_type = hdf5_make_complex_type (H5T_NATIVE_DOUBLE); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-cx-mat.cc --- a/src/ov-cx-mat.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-cx-mat.cc Tue Dec 01 00:49:07 2009 +0100 @@ -583,8 +583,12 @@ H5Sclose (space_hid); return false; } - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -626,7 +630,11 @@ if (empty) return (empty > 0); +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t type_hid = H5Dget_type (data_hid); hid_t complex_type = hdf5_make_complex_type (H5T_NATIVE_DOUBLE); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-cx-sparse.cc --- a/src/ov-cx-sparse.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-cx-sparse.cc Tue Dec 01 00:49:07 2009 +0100 @@ -397,7 +397,11 @@ // Ensure that additional memory is deallocated matrix.maybe_compress (); +#if HAVE_HDF5_18 + hid_t group_hid = H5Gcreate (loc_id, name, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else hid_t group_hid = H5Gcreate (loc_id, name, 0); +#endif if (group_hid < 0) return false; @@ -414,8 +418,13 @@ return false; } +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "nr", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "nr", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -434,8 +443,13 @@ return false; } +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "nc", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "nc", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -454,8 +468,13 @@ return false; } +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "nz", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "nz", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -487,8 +506,13 @@ return false; } +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "cidx", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "cidx", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -520,8 +544,13 @@ return false; } +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "ridx", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "ridx", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -570,8 +599,12 @@ H5Gclose (group_hid); return false; } - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "data", type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "data", type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -612,10 +645,18 @@ if (empty) return (empty > 0); +#if HAVE_HDF5_18 + group_hid = H5Gopen (loc_id, name, H5P_DEFAULT); +#else group_hid = H5Gopen (loc_id, name); +#endif if (group_hid < 0 ) return false; +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "nr", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "nr"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -635,7 +676,11 @@ H5Dclose (data_hid); +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "nc", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "nc"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -654,8 +699,12 @@ } H5Dclose (data_hid); - + +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "nz", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "nz"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -679,7 +728,11 @@ static_cast (nc), static_cast (nz)); +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "cidx", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "cidx"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -717,7 +770,11 @@ H5Sclose (space_hid); H5Dclose (data_hid); +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "ridx", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "ridx"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -752,7 +809,11 @@ H5Sclose (space_hid); H5Dclose (data_hid); +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "data", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "data"); +#endif hid_t type_hid = H5Dget_type (data_hid); hid_t complex_type = hdf5_make_complex_type (H5T_NATIVE_DOUBLE); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-fcn-handle.cc --- a/src/ov-fcn-handle.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-fcn-handle.cc Tue Dec 01 00:49:07 2009 +0100 @@ -651,7 +651,11 @@ bool retval = true; hid_t group_hid = -1; +#if HAVE_HDF5_18 + group_hid = H5Gcreate (loc_id, name, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else group_hid = H5Gcreate (loc_id, name, 0); +#endif if (group_hid < 0) return false; @@ -676,8 +680,12 @@ H5Gclose (group_hid); return false; } - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "nm", type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "nm", type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0 || H5Dwrite (data_hid, type_hid, H5S_ALL, H5S_ALL, H5P_DEFAULT, nm.c_str ()) < 0) { @@ -703,8 +711,13 @@ return false; } +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "fcn", type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "fcn", type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0 || H5Dwrite (data_hid, type_hid, H5S_ALL, H5S_ALL, H5P_DEFAULT, stmp.c_str ()) < 0) { @@ -729,8 +742,15 @@ if (as_id >= 0) { +#if HAVE_HDF5_18 + hid_t a_id = H5Acreate (group_hid, "SYMBOL_TABLE", + H5T_NATIVE_IDX, as_id, + H5P_DEFAULT, H5P_DEFAULT); + +#else hid_t a_id = H5Acreate (group_hid, "SYMBOL_TABLE", H5T_NATIVE_IDX, as_id, H5P_DEFAULT); +#endif if (a_id >= 0) { @@ -745,8 +765,11 @@ } else retval = false; - +#if HAVE_HDF5_18 + data_hid = H5Gcreate (group_hid, "symbol table", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Gcreate (group_hid, "symbol table", 0); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -786,9 +809,13 @@ H5Tclose (type_hid); type_hid = H5Tcopy (H5T_C_S1); H5Tset_size (type_hid, octaveroot.length () + 1); - +#if HAVE_HDF5_18 + hid_t a_id = H5Acreate (group_hid, "OCTAVEROOT", + type_hid, space_hid, H5P_DEFAULT, H5P_DEFAULT); +#else hid_t a_id = H5Acreate (group_hid, "OCTAVEROOT", type_hid, space_hid, H5P_DEFAULT); +#endif if (a_id >= 0) { @@ -819,7 +846,12 @@ type_hid = H5Tcopy (H5T_C_S1); H5Tset_size (type_hid, fpath.length () + 1); +#if HAVE_HDF5_18 + a_id = H5Acreate (group_hid, "FILE", type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT); +#else a_id = H5Acreate (group_hid, "FILE", type_hid, space_hid, H5P_DEFAULT); +#endif if (a_id >= 0) { @@ -847,11 +879,19 @@ hsize_t rank; int slen; +#if HAVE_HDF5_18 + group_hid = H5Gopen (loc_id, name, H5P_DEFAULT); +#else group_hid = H5Gopen (loc_id, name); +#endif if (group_hid < 0) return false; +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "nm", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "nm"); +#endif if (data_hid < 0) { @@ -913,7 +953,11 @@ if (nm == "@") { +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "fcn", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "fcn"); +#endif if (data_hid < 0) { @@ -988,8 +1032,13 @@ // turn off error reporting temporarily, but save the error // reporting function: +#if HAVE_HDF5_18 + H5Eget_auto (H5E_DEFAULT, &err_func, &err_func_data); + H5Eset_auto (H5E_DEFAULT, 0, 0); +#else H5Eget_auto (&err_func, &err_func_data); H5Eset_auto (0, 0); +#endif hid_t attr_id = H5Aopen_name (group_hid, "SYMBOL_TABLE"); @@ -1002,7 +1051,11 @@ } // restore error reporting: +#if HAVE_HDF5_18 + H5Eset_auto (H5E_DEFAULT, err_func, err_func_data); +#else H5Eset_auto (err_func, err_func_data); +#endif unwind_protect::frame_id_t uwp_frame = unwind_protect::begin_frame (); @@ -1020,7 +1073,11 @@ if (len > 0 && success) { hsize_t num_obj = 0; +#if HAVE_HDF5_18 + data_hid = H5Gopen (group_hid, "symbol table", H5P_DEFAULT); +#else data_hid = H5Gopen (group_hid, "symbol table"); +#endif H5Gget_num_objs (data_hid, &num_obj); H5Gclose (data_hid); @@ -1091,8 +1148,13 @@ // turn off error reporting temporarily, but save the error // reporting function: +#if HAVE_HDF5_18 + H5Eget_auto (H5E_DEFAULT, &err_func, &err_func_data); + H5Eset_auto (H5E_DEFAULT, 0, 0); +#else H5Eget_auto (&err_func, &err_func_data); H5Eset_auto (0, 0); +#endif hid_t attr_id = H5Aopen_name (group_hid, "OCTAVEROOT"); if (attr_id >= 0) @@ -1152,7 +1214,11 @@ } // restore error reporting: +#if HAVE_HDF5_18 + H5Eset_auto (H5E_DEFAULT, err_func, err_func_data); +#else H5Eset_auto (err_func, err_func_data); +#endif success = (success ? set_fcn (octaveroot, fpath) : success); } diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-fcn-inline.cc --- a/src/ov-fcn-inline.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-fcn-inline.cc Tue Dec 01 00:49:07 2009 +0100 @@ -273,7 +273,11 @@ bool /* save_as_floats */) { hid_t group_hid = -1; +#if HAVE_HDF5_18 + group_hid = H5Gcreate (loc_id, name, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else group_hid = H5Gcreate (loc_id, name, 0); +#endif if (group_hid < 0 ) return false; size_t len = 0; @@ -299,9 +303,13 @@ H5Gclose (group_hid); return false; } - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "args", H5T_NATIVE_CHAR, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "args", H5T_NATIVE_CHAR, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -349,8 +357,12 @@ H5Gclose (group_hid); return false; } - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "nm", type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "nm", type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0 || H5Dwrite (data_hid, type_hid, H5S_ALL, H5S_ALL, H5P_DEFAULT, nm.c_str ()) < 0) { @@ -369,8 +381,13 @@ return false; } +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "iftext", type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "iftext", type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0 || H5Dwrite (data_hid, type_hid, H5S_ALL, H5S_ALL, H5P_DEFAULT, iftext.c_str ()) < 0) { @@ -395,10 +412,18 @@ hsize_t rank; int slen; +#if HAVE_HDF5_18 + group_hid = H5Gopen (loc_id, name, H5P_DEFAULT); +#else group_hid = H5Gopen (loc_id, name); +#endif if (group_hid < 0 ) return false; +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "args", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "args"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -434,7 +459,11 @@ for (size_t i = 0; i < hdims[1]; i++) ifargs(i) = std::string (s1 + i*hdims[0]); +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "nm", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "nm"); +#endif if (data_hid < 0) { @@ -492,7 +521,11 @@ H5Dclose (data_hid); nm = nm_tmp; +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "iftext", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "iftext"); +#endif if (data_hid < 0) { diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-float.cc --- a/src/ov-float.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-float.cc Tue Dec 01 00:49:07 2009 +0100 @@ -189,9 +189,13 @@ space_hid = H5Screate_simple (0, dimens, 0); if (space_hid < 0) return false; - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_FLOAT, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_FLOAT, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -211,7 +215,11 @@ bool octave_float_scalar::load_hdf5 (hid_t loc_id, const char *name) { +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t space_id = H5Dget_space (data_hid); hsize_t rank = H5Sget_simple_extent_ndims (space_id); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-flt-complex.cc --- a/src/ov-flt-complex.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-flt-complex.cc Tue Dec 01 00:49:07 2009 +0100 @@ -305,8 +305,12 @@ H5Sclose (space_hid); return false; } - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -329,7 +333,11 @@ octave_float_complex::load_hdf5 (hid_t loc_id, const char *name) { bool retval = false; +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t type_hid = H5Dget_type (data_hid); hid_t complex_type = hdf5_make_complex_type (H5T_NATIVE_FLOAT); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-flt-cx-mat.cc --- a/src/ov-flt-cx-mat.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-flt-cx-mat.cc Tue Dec 01 00:49:07 2009 +0100 @@ -550,8 +550,12 @@ H5Sclose (space_hid); return false; } - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -593,7 +597,11 @@ if (empty) return (empty > 0); +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t type_hid = H5Dget_type (data_hid); hid_t complex_type = hdf5_make_complex_type (H5T_NATIVE_FLOAT); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-flt-re-mat.cc --- a/src/ov-flt-re-mat.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-flt-re-mat.cc Tue Dec 01 00:49:07 2009 +0100 @@ -575,9 +575,13 @@ = save_type_to_hdf5 (get_save_type (max_val, min_val)); } #endif /* HAVE_HDF5_INT2FLOAT_CONVERSIONS */ - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -606,7 +610,11 @@ if (empty) return (empty > 0); +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t space_id = H5Dget_space (data_hid); hsize_t rank = H5Sget_simple_extent_ndims (space_id); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-list.cc --- a/src/ov-list.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-list.cc Tue Dec 01 00:49:07 2009 +0100 @@ -686,7 +686,11 @@ { hid_t data_hid = -1; +#if HAVE_HDF5_18 + data_hid = H5Gcreate (loc_id, name, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Gcreate (loc_id, name, 0); +#endif if (data_hid < 0) return false; // recursively add each element of the list to this group @@ -722,7 +726,11 @@ octave_value_list lst; int current_item = 0; hsize_t num_obj = 0; +#if HAVE_HDF5_18 + hid_t group_id = H5Gopen (loc_id, name, H5P_DEFAULT); +#else hid_t group_id = H5Gopen (loc_id, name); +#endif H5Gget_num_objs (group_id, &num_obj); H5Gclose (group_id); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-range.cc --- a/src/ov-range.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-range.cc Tue Dec 01 00:49:07 2009 +0100 @@ -462,8 +462,12 @@ H5Sclose (space_hid); return false; } - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -492,7 +496,11 @@ { bool retval = false; +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t type_hid = H5Dget_type (data_hid); hid_t range_type = hdf5_make_range_type (H5T_NATIVE_DOUBLE); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-re-mat.cc --- a/src/ov-re-mat.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-re-mat.cc Tue Dec 01 00:49:07 2009 +0100 @@ -603,9 +603,14 @@ = save_type_to_hdf5 (get_save_type (max_val, min_val)); } #endif /* HAVE_HDF5_INT2FLOAT_CONVERSIONS */ - + +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, save_type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -634,7 +639,11 @@ if (empty) return (empty > 0); +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t space_id = H5Dget_space (data_hid); hsize_t rank = H5Sget_simple_extent_ndims (space_id); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-re-sparse.cc --- a/src/ov-re-sparse.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-re-sparse.cc Tue Dec 01 00:49:07 2009 +0100 @@ -410,7 +410,11 @@ // Ensure that additional memory is deallocated matrix.maybe_compress (); +#if HAVE_HDF5_18 + hid_t group_hid = H5Gcreate (loc_id, name, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else hid_t group_hid = H5Gcreate (loc_id, name, 0); +#endif if (group_hid < 0) return false; @@ -426,9 +430,13 @@ H5Gclose (group_hid); return false; } - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "nr", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "nr", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -446,9 +454,13 @@ H5Gclose (group_hid); return false; } - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "nc", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "nc", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -467,8 +479,13 @@ return false; } +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "nz", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "nz", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -500,8 +517,13 @@ return false; } +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "cidx", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "cidx", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -532,9 +554,13 @@ H5Gclose (group_hid); return false; } - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "ridx", H5T_NATIVE_IDX, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "ridx", H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -577,8 +603,13 @@ } #endif /* HAVE_HDF5_INT2FLOAT_CONVERSIONS */ +#if HAVE_HDF5_18 + data_hid = H5Dcreate (group_hid, "data", save_type_hid, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (group_hid, "data", save_type_hid, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -610,10 +641,18 @@ if (empty) return (empty > 0); +#if HAVE_HDF5_18 + group_hid = H5Gopen (loc_id, name, H5P_DEFAULT); +#else group_hid = H5Gopen (loc_id, name); +#endif if (group_hid < 0) return false; +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "nr", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "nr"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -634,7 +673,11 @@ H5Dclose (data_hid); +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "nc", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "nc"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -655,7 +698,11 @@ H5Dclose (data_hid); +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "nz", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "nz"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -680,7 +727,11 @@ static_cast (nc), static_cast (nz)); +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "cidx", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "cidx"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -719,7 +770,11 @@ H5Sclose (space_hid); H5Dclose (data_hid); +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "ridx", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "ridx"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); @@ -754,7 +809,11 @@ H5Sclose (space_hid); H5Dclose (data_hid); +#if HAVE_HDF5_18 + data_hid = H5Dopen (group_hid, "data", H5P_DEFAULT); +#else data_hid = H5Dopen (group_hid, "data"); +#endif space_hid = H5Dget_space (data_hid); rank = H5Sget_simple_extent_ndims (space_hid); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-scalar.cc --- a/src/ov-scalar.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-scalar.cc Tue Dec 01 00:49:07 2009 +0100 @@ -205,8 +205,13 @@ space_hid = H5Screate_simple (0, dimens, 0); if (space_hid < 0) return false; +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_DOUBLE, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_DOUBLE, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -226,7 +231,11 @@ bool octave_scalar::load_hdf5 (hid_t loc_id, const char *name) { +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t space_id = H5Dget_space (data_hid); hsize_t rank = H5Sget_simple_extent_ndims (space_id); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-str-mat.cc --- a/src/ov-str-mat.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-str-mat.cc Tue Dec 01 00:49:07 2009 +0100 @@ -561,9 +561,13 @@ space_hid = H5Screate_simple (rank, hdims, 0); if (space_hid < 0) return false; - +#if HAVE_HDF5_18 + data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_CHAR, space_hid, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_CHAR, space_hid, H5P_DEFAULT); +#endif if (data_hid < 0) { H5Sclose (space_hid); @@ -596,7 +600,11 @@ if (empty) return (empty > 0); +#if HAVE_HDF5_18 + hid_t data_hid = H5Dopen (loc_id, name, H5P_DEFAULT); +#else hid_t data_hid = H5Dopen (loc_id, name); +#endif hid_t space_hid = H5Dget_space (data_hid); hsize_t rank = H5Sget_simple_extent_ndims (space_hid); hid_t type_hid = H5Dget_type (data_hid); diff -r 1506a17832c9 -r ac69e6f4b33d src/ov-struct.cc --- a/src/ov-struct.cc Mon Nov 30 14:32:10 2009 -0500 +++ b/src/ov-struct.cc Tue Dec 01 00:49:07 2009 +0100 @@ -1487,7 +1487,11 @@ { hid_t data_hid = -1; +#if HAVE_HDF5_18 + data_hid = H5Gcreate (loc_id, name, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +#else data_hid = H5Gcreate (loc_id, name, 0); +#endif if (data_hid < 0) return false; // recursively add each element of the structure to this group @@ -1528,7 +1532,11 @@ Octave_map m (dim_vector (1, 1)); int current_item = 0; hsize_t num_obj = 0; - hid_t group_id = H5Gopen (loc_id, name); +#if HAVE_HDF5_18 + hid_t group_id = H5Gopen (loc_id, name, H5P_DEFAULT); +#else + hid_t group_id = H5Gopen (loc_id, name); +#endif H5Gget_num_objs (group_id, &num_obj); H5Gclose (group_id);