summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/H5.c36
-rw-r--r--src/H5private.h3
2 files changed, 38 insertions, 1 deletions
diff --git a/src/H5.c b/src/H5.c
index 9988414..d2024ab 100644
--- a/src/H5.c
+++ b/src/H5.c
@@ -3150,3 +3150,39 @@ void HDsrand(unsigned int seed)
}
#endif
+/*-------------------------------------------------------------------------
+ * Function: HDremove_all
+ *
+ * Purpose: Wrapper function for remove on VMS systems
+ *
+ * This function deletes all versions of a file
+ *
+ * Return: Success: 0;
+ *
+ * Failure: -1
+ *
+ * Programmer: Elena Pourmal
+ * March 22, 2006
+ *
+ * Modifications:
+ *-------------------------------------------------------------------------
+ */
+#ifdef H5_VMS
+
+
+int HDremove_all(char *fname)
+{
+ int ret_value = -1;
+ char *_fname;
+ _fname = malloc(strlen(fname)+3); /* to accomodate ;* and null */
+ if(_fname) {
+ strcpy(_fname, fname);
+ strcat(_fname,";*");
+ remove(_fname);
+ free(_fname);
+ ret_value = 0;
+ }
+ return ret_value;
+}
+#endif
+
diff --git a/src/H5private.h b/src/H5private.h
index 8a10783..cf16bce 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -789,7 +789,8 @@ H5_DLL int HDrand(void);
#define HDreaddir(D) readdir(D)
#define HDrealloc(M,Z) realloc(M,Z)
#ifdef H5_VMS
-#define HDremove(Y) remove(Y";*")
+#define HDremove(S) HDremove_all(S)
+int HDremove_all(char * fname);
#else
#define HDremove(S) remove(S)
#endif /*H5_VMS*/