summaryrefslogtreecommitdiffstats
path: root/tools/lib/h5tools_filters.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lib/h5tools_filters.c')
-rw-r--r--tools/lib/h5tools_filters.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/tools/lib/h5tools_filters.c b/tools/lib/h5tools_filters.c
index 325023d..000ef0d 100644
--- a/tools/lib/h5tools_filters.c
+++ b/tools/lib/h5tools_filters.c
@@ -55,6 +55,7 @@ int h5tools_canreadf(const char* name, /* object name, serves also as boolean pr
int have_fletcher=0;
int have_nbit=0;
int have_scaleoffset=0;
+ int have_dtype_modify=0;
#ifdef H5_HAVE_FILTER_DEFLATE
have_deflate=1;
@@ -74,7 +75,9 @@ int h5tools_canreadf(const char* name, /* object name, serves also as boolean pr
#ifdef H5_HAVE_FILTER_SCALEOFFSET
have_scaleoffset=1;
#endif
-
+#ifdef H5_HAVE_FILTER_DTYPE_MODIFY
+ have_dtype_modify=1;
+#endif
/* get information about filters */
if ((nfilters = H5Pget_nfilters(dcpl_id))<0)
@@ -173,6 +176,18 @@ int h5tools_canreadf(const char* name, /* object name, serves also as boolean pr
return 0;
}
break;
+/*-------------------------------------------------------------------------
+ * H5Z_FILTER_DTYPE_MODIFY
+ *-------------------------------------------------------------------------
+ */
+ case H5Z_FILTER_DTYPE_MODIFY:
+ if (!have_dtype_modify)
+ {
+ if (name)
+ print_warning(name,"dtype_modify");
+ return 0;
+ }
+ break;
}/*switch*/
}/*for*/
@@ -204,6 +219,7 @@ int h5tools_can_encode( H5Z_filter_t filtn)
int have_fletcher=0;
int have_nbit=0;
int have_scaleoffset=0;
+ int have_dtype_modify=0;
unsigned int filter_config_flags;
#ifdef H5_HAVE_FILTER_DEFLATE
@@ -224,6 +240,9 @@ int h5tools_can_encode( H5Z_filter_t filtn)
#ifdef H5_HAVE_FILTER_SCALEOFFSET
have_scaleoffset=1;
#endif
+#ifdef H5_HAVE_FILTER_DTYPE_MODIFY
+ have_dtype_modify=1;
+#endif
switch (filtn)
{
@@ -288,6 +307,12 @@ int h5tools_can_encode( H5Z_filter_t filtn)
return 0;
}
break;
+ case H5Z_FILTER_DTYPE_MODIFY:
+ if (!have_dtype_modify)
+ {
+ return 0;
+ }
+ break;
}/*switch*/
return 1;