summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMohamad Chaarawi <chaarawi@hdfgroup.org>2015-11-05 19:03:06 (GMT)
committerMohamad Chaarawi <chaarawi@hdfgroup.org>2015-11-05 19:03:06 (GMT)
commit26b328aec8e10b9101c76bc049b6b5045b5f00a5 (patch)
tree3d5cb4707febc7d52fe0d325fa06b143bfc68820 /src
parenteb13dc7ec9281a9206f6e0a2a54151adf2ddecd3 (diff)
parent401f0c181ea8e9f486203a6b70710f0631a4a640 (diff)
downloadhdf5-26b328aec8e10b9101c76bc049b6b5045b5f00a5.zip
hdf5-26b328aec8e10b9101c76bc049b6b5045b5f00a5.tar.gz
hdf5-26b328aec8e10b9101c76bc049b6b5045b5f00a5.tar.bz2
[svn-r28288] merge from trunk.
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt58
-rw-r--r--src/H5FDmulti.c6
-rw-r--r--src/H5Fsuper.c1
-rw-r--r--src/H5Gint.c2
-rw-r--r--src/H5Odtype.c2
-rw-r--r--src/H5Omtime.c17
-rw-r--r--src/H5Pgcpl.c2
-rw-r--r--src/H5Pocpl.c1
-rw-r--r--src/H5T.c2
-rw-r--r--src/H5VLnative.c2
-rw-r--r--src/H5Ztrans.c1
-rw-r--r--src/H5private.h16
-rw-r--r--src/H5public.h19
-rw-r--r--src/H5system.c37
-rw-r--r--src/H5win32defs.h2
15 files changed, 97 insertions, 71 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index ca75107..95792c0 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -798,38 +798,21 @@ set (H5_GENERATED_HEADERS
option (HDF5_GENERATE_HEADERS "Rebuild Generated Files" ON)
mark_as_advanced (HDF5_GENERATE_HEADERS)
if (HDF5_GENERATE_HEADERS)
+ set_source_files_properties(${H5_GENERATED_HEADERS} PROPERTIES GENERATED TRUE)
find_package (Perl)
if (PERL_FOUND)
- add_custom_command (
- OUTPUT ${HDF5_SRC_DIR}/H5Edefin.h ${HDF5_SRC_DIR}/H5Einit.h ${HDF5_SRC_DIR}/H5Epubgen.h ${HDF5_SRC_DIR}/H5Eterm.h
- PRE_BUILD
- COMMAND ${PERL_EXECUTABLE}
- ARGS ${HDF5_SOURCE_DIR}/bin/make_err ${HDF5_SRC_DIR}/H5err.txt
- DEPENDS ${HDF5_SRC_DIR}/H5err.txt
- COMMENT " Creating err header"
+ execute_process (
+ COMMAND ${PERL_EXECUTABLE} ${HDF5_SOURCE_DIR}/bin/make_err ${HDF5_SRC_DIR}/H5err.txt OUTPUT_VARIABLE SCRIPT_OUTPUT
)
-
- add_custom_command (
- OUTPUT ${HDF5_SRC_DIR}/H5version.h
- PRE_BUILD
- COMMAND ${PERL_EXECUTABLE}
- ARGS ${HDF5_SOURCE_DIR}/bin/make_vers ${HDF5_SRC_DIR}/H5vers.txt
- DEPENDS ${HDF5_SRC_DIR}/H5vers.txt
- COMMENT " Creating API version macro"
+ message(STATUS ${SCRIPT_OUTPUT})
+ execute_process (
+ COMMAND ${PERL_EXECUTABLE} ${HDF5_SOURCE_DIR}/bin/make_vers ${HDF5_SRC_DIR}/H5vers.txt OUTPUT_VARIABLE SCRIPT_OUTPUT
)
-
- add_custom_command (
- OUTPUT ${HDF5_SRC_DIR}/H5overflow.h
- PRE_BUILD
- COMMAND ${PERL_EXECUTABLE}
- ARGS ${HDF5_SOURCE_DIR}/bin/make_overflow ${HDF5_SRC_DIR}/H5overflow.txt
- DEPENDS ${HDF5_SRC_DIR}/H5overflow.txt
- COMMENT " Creating Assignment overflow macro"
- )
-
- add_custom_target(run_perl_scripts ALL
- DEPENDS ${HDF5_SRC_DIR}/H5Edefin.h ${HDF5_SRC_DIR}/H5Einit.h ${HDF5_SRC_DIR}/H5Epubgen.h ${HDF5_SRC_DIR}/H5Eterm.h ${HDF5_SRC_DIR}/H5version.h ${HDF5_SRC_DIR}/H5overflow.h
+ message(STATUS ${SCRIPT_OUTPUT})
+ execute_process (
+ COMMAND ${PERL_EXECUTABLE} ${HDF5_SOURCE_DIR}/bin/make_overflow ${HDF5_SRC_DIR}/H5overflow.txt OUTPUT_VARIABLE SCRIPT_OUTPUT
)
+ message(STATUS ${SCRIPT_OUTPUT})
else (PERL_FOUND)
message (STATUS "Cannot generate headers - perl not found")
endif (PERL_FOUND)
@@ -844,11 +827,6 @@ TARGET_C_PROPERTIES (H5detect STATIC " " " ")
if (MSVC OR MINGW)
target_link_libraries (H5detect "ws2_32.lib")
endif (MSVC OR MINGW)
-if (HDF5_GENERATE_HEADERS)
- add_dependencies(H5detect run_perl_scripts)
-else (HDF5_GENERATE_HEADERS)
- add_dependencies(H5detect "${H5_GENERATED_HEADERS}")
-endif (HDF5_GENERATE_HEADERS)
set (CMD $<TARGET_FILE:H5detect>)
add_custom_command (
@@ -863,11 +841,6 @@ TARGET_C_PROPERTIES (H5make_libsettings STATIC " " " ")
if (MSVC OR MINGW)
target_link_libraries (H5make_libsettings "ws2_32.lib")
endif (MSVC OR MINGW)
-if (HDF5_GENERATE_HEADERS)
- add_dependencies(H5make_libsettings run_perl_scripts)
-else (HDF5_GENERATE_HEADERS)
- add_dependencies(H5make_libsettings "${H5_GENERATED_HEADERS}")
-endif (HDF5_GENERATE_HEADERS)
set (CMD $<TARGET_FILE:H5make_libsettings>)
add_custom_command (
@@ -899,11 +872,6 @@ set_target_properties (${HDF5_LIB_TARGET} PROPERTIES
FOLDER libraries
INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
)
-if (HDF5_GENERATE_HEADERS)
- add_dependencies(${HDF5_LIB_TARGET} run_perl_scripts)
-else (HDF5_GENERATE_HEADERS)
- add_dependencies(${HDF5_LIB_TARGET} "${HDF5_SRC_DIR}/H5Edefin.h;${HDF5_SRC_DIR}/H5Einit.h;${HDF5_SRC_DIR}/H5Epubgen.h;${HDF5_SRC_DIR}/H5Eterm.h")
-endif (HDF5_GENERATE_HEADERS)
option (HDF5_ENABLE_DEBUG_APIS "Turn on debugging in all packages" OFF)
if (HDF5_ENABLE_DEBUG_APIS)
@@ -932,16 +900,12 @@ if (BUILD_SHARED_LIBS)
INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
)
- if (HDF5_GENERATE_HEADERS)
- add_dependencies(${HDF5_LIBSH_TARGET} run_perl_scripts)
- else (HDF5_GENERATE_HEADERS)
- add_dependencies(${HDF5_LIBSH_TARGET} "${HDF5_SRC_DIR}/H5Edefin.h;${HDF5_SRC_DIR}/H5Einit.h;${HDF5_SRC_DIR}/H5Epubgen.h;${HDF5_SRC_DIR}/H5Eterm.h")
- endif (HDF5_GENERATE_HEADERS)
if (HDF5_ENABLE_THREADSAFE)
set_property (TARGET ${HDF5_LIBSH_TARGET}
APPEND PROPERTY COMPILE_DEFINITIONS
"H5_HAVE_THREADSAFE"
)
+ target_link_libraries (${HDF5_LIBSH_TARGET} Threads::Threads)
endif (HDF5_ENABLE_THREADSAFE)
if (HDF5_ENABLE_DEBUG_APIS)
diff --git a/src/H5FDmulti.c b/src/H5FDmulti.c
index bc61374..92df2ad 100644
--- a/src/H5FDmulti.c
+++ b/src/H5FDmulti.c
@@ -46,14 +46,14 @@
/* Loop through all mapped files */
#define UNIQUE_MEMBERS(MAP,LOOPVAR) { \
H5FD_mem_t _unmapped, LOOPVAR; \
- hbool_t _seen[H5FD_MEM_NTYPES]; \
+ unsigned _seen[H5FD_MEM_NTYPES]; \
\
- memset(_seen, 0, sizeof _seen); \
+ memset(_seen, 0, sizeof _seen); \
for (_unmapped=H5FD_MEM_SUPER; _unmapped<H5FD_MEM_NTYPES; _unmapped=(H5FD_mem_t)(_unmapped+1)) { \
LOOPVAR = MAP[_unmapped]; \
if (H5FD_MEM_DEFAULT==LOOPVAR) LOOPVAR=_unmapped; \
assert(LOOPVAR>0 && LOOPVAR<H5FD_MEM_NTYPES); \
- if (_seen[LOOPVAR]++) continue;
+ if (_seen[LOOPVAR]++) continue; \
#define ALL_MEMBERS(LOOPVAR) { \
H5FD_mem_t LOOPVAR; \
diff --git a/src/H5Fsuper.c b/src/H5Fsuper.c
index 50f6b06..c6b1c83 100644
--- a/src/H5Fsuper.c
+++ b/src/H5Fsuper.c
@@ -934,6 +934,7 @@ H5F__super_init(H5F_t *f, hid_t dxpl_id)
HDassert(driver_size <= H5F_MAX_DRVINFOBLOCK_SIZE);
/* Encode driver-specific data */
+ HDmemset(dbuf, 0, sizeof(dbuf));
if(H5FD_sb_encode(f->shared->lf, info.name, dbuf) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTINIT, FAIL, "unable to encode driver information")
diff --git a/src/H5Gint.c b/src/H5Gint.c
index 3e95b4e..5cdf8fa 100644
--- a/src/H5Gint.c
+++ b/src/H5Gint.c
@@ -1231,7 +1231,7 @@ H5G_get_create_plist(H5G_t *grp)
HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get link pipeline")
/* Set the pipeline for the property list */
- if(H5P_set(new_plist, H5O_CRT_PIPELINE_NAME, &pline) < 0)
+ if(H5P_poke(new_plist, H5O_CRT_PIPELINE_NAME, &pline) < 0)
HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set link pipeline")
} /* end if */
diff --git a/src/H5Odtype.c b/src/H5Odtype.c
index 2dfee20..455b1fa 100644
--- a/src/H5Odtype.c
+++ b/src/H5Odtype.c
@@ -263,7 +263,7 @@ H5O_dtype_decode_helper(H5F_t *f, unsigned *ioflags/*in,out*/, const uint8_t **p
unsigned offset_nbytes; /* Size needed to encode member offsets */
size_t max_memb_pos = 0; /* Maximum member covered, so far */
unsigned max_version = 0; /* Maximum member version */
- hbool_t upgrade_to = 0; /* Version number we can "soft" upgrade to */
+ unsigned upgrade_to = 0; /* Version number we can "soft" upgrade to */
unsigned j;
/* Compute the # of bytes required to store a member offset */
diff --git a/src/H5Omtime.c b/src/H5Omtime.c
index 622d57d..272e54a 100644
--- a/src/H5Omtime.c
+++ b/src/H5Omtime.c
@@ -42,7 +42,7 @@ static size_t H5O_mtime_size(const H5F_t *f, hbool_t disable_shared, const void
static herr_t H5O_mtime_reset(void *_mesg);
static herr_t H5O_mtime_free(void *_mesg);
static herr_t H5O_mtime_debug(H5F_t *f, hid_t dxpl_id, const void *_mesg, FILE *stream,
- int indent, int fwidth);
+ int indent, int fwidth);
/* This message derives from H5O message class */
const H5O_msg_class_t H5O_MSG_MTIME[1] = {{
@@ -148,7 +148,7 @@ H5O_mtime_new_decode(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_
/* The return value */
if (NULL==(mesg = H5FL_MALLOC(time_t)))
- HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed");
+ HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed");
*mesg = (time_t)tmp_time;
/* Set return value */
@@ -212,7 +212,7 @@ H5O_mtime_decode(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5
*/
HDmemset(&tm, 0, sizeof tm);
tm.tm_year = (p[0]-'0')*1000 + (p[1]-'0')*100 +
- (p[2]-'0')*10 + (p[3]-'0') - 1900;
+ (p[2]-'0')*10 + (p[3]-'0') - 1900;
tm.tm_mon = (p[4]-'0')*10 + (p[5]-'0') - 1;
tm.tm_mday = (p[6]-'0')*10 + (p[7]-'0');
tm.tm_hour = (p[8]-'0')*10 + (p[9]-'0');
@@ -226,8 +226,7 @@ H5O_mtime_decode(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, H5O_t H5
/* BSD-like systems */
the_time += tm.tm_gmtoff;
#elif defined(H5_HAVE_TIMEZONE)
- /* GNU/Linux systems */
- the_time -= timezone - (tm.tm_isdst ? 3600 : 0);
+ the_time -= HDgettimezone() - (tm.tm_isdst ? 3600 : 0);
#else
/*
* The catch-all. If we can't convert a character string universal
@@ -323,8 +322,8 @@ H5O_mtime_encode(H5F_t H5_ATTR_UNUSED *f, hbool_t H5_ATTR_UNUSED disable_shared,
/* encode */
tm = HDgmtime(mesg);
sprintf((char*)p, "%04d%02d%02d%02d%02d%02d",
- 1900+tm->tm_year, 1+tm->tm_mon, tm->tm_mday,
- tm->tm_hour, tm->tm_min, tm->tm_sec);
+ 1900+tm->tm_year, 1+tm->tm_mon, tm->tm_mday,
+ tm->tm_hour, tm->tm_min, tm->tm_sec);
FUNC_LEAVE_NOAPI(SUCCEED)
}
@@ -507,7 +506,7 @@ H5O_mtime_free(void *mesg)
*/
static herr_t
H5O_mtime_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const void *_mesg, FILE *stream,
- int indent, int fwidth)
+ int indent, int fwidth)
{
const time_t *mesg = (const time_t *)_mesg;
struct tm *tm;
@@ -527,7 +526,7 @@ H5O_mtime_debug(H5F_t H5_ATTR_UNUSED *f, hid_t H5_ATTR_UNUSED dxpl_id, const voi
HDstrftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S %Z", tm);
HDfprintf(stream, "%*s%-*s %s\n", indent, "", fwidth,
- "Time:", buf);
+ "Time:", buf);
FUNC_LEAVE_NOAPI(SUCCEED)
}
diff --git a/src/H5Pgcpl.c b/src/H5Pgcpl.c
index 47a4354..9c745e4 100644
--- a/src/H5Pgcpl.c
+++ b/src/H5Pgcpl.c
@@ -600,6 +600,7 @@ H5P__gcrt_group_info_dec(const void **_pp, void *_value)
FUNC_ENTER_STATIC_NOERR
/* Set property to default value */
+ HDmemset(ginfo, 0, sizeof(H5O_ginfo_t));
*ginfo = H5G_def_ginfo_g;
UINT32DECODE(*pp, ginfo->lheap_size_hint)
@@ -698,6 +699,7 @@ H5P__gcrt_link_info_dec(const void **_pp, void *_value)
HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL, "unsigned value can't be decoded")
/* Set property to default value */
+ HDmemset(linfo, 0, sizeof(H5O_linfo_t));
*linfo = H5G_def_linfo_g;
H5_DECODE_UNSIGNED(*pp, crt_order_flags)
diff --git a/src/H5Pocpl.c b/src/H5Pocpl.c
index a7b8a72..ae4ae82 100644
--- a/src/H5Pocpl.c
+++ b/src/H5Pocpl.c
@@ -1590,6 +1590,7 @@ H5P__ocrt_pipeline_dec(const void **_pp, void *_value)
nused = (size_t)enc_value;
/* Set property default value */
+ HDmemset(pline, 0, sizeof(H5O_pline_t));
*pline = H5O_def_pline_g;
for(u = 0; u < nused; u++) {
diff --git a/src/H5T.c b/src/H5T.c
index f6aa5f8..2b6c849 100644
--- a/src/H5T.c
+++ b/src/H5T.c
@@ -802,7 +802,7 @@ H5T__init_package(void)
H5T_INIT_TYPE(OFFSET,H5T_NATIVE_HERR_g,COPY,native_int,SET,sizeof(herr_t))
/* hbool_t */
- H5T_INIT_TYPE(OFFSET,H5T_NATIVE_HBOOL_g,COPY,native_int,SET,sizeof(hbool_t))
+ H5T_INIT_TYPE(OFFSET,H5T_NATIVE_HBOOL_g,COPY,native_uint,SET,sizeof(hbool_t))
/*------------------------------------------------------------
* IEEE Types
diff --git a/src/H5VLnative.c b/src/H5VLnative.c
index 45dd1c1..0bc164f 100644
--- a/src/H5VLnative.c
+++ b/src/H5VLnative.c
@@ -2907,7 +2907,7 @@ H5VL_native_link_specific(void *obj, H5VL_loc_params_t loc_params, H5VL_link_spe
}
case H5VL_LINK_ITER:
{
- hbool_t recursive = va_arg (arguments, hbool_t);
+ hbool_t recursive = va_arg (arguments, int);
H5_index_t idx_type = va_arg (arguments, H5_index_t);
H5_iter_order_t order = va_arg (arguments, H5_iter_order_t);
hsize_t *idx_p = va_arg (arguments, hsize_t *);
diff --git a/src/H5Ztrans.c b/src/H5Ztrans.c
index 42d6ceb..0a9a4da 100644
--- a/src/H5Ztrans.c
+++ b/src/H5Ztrans.c
@@ -748,6 +748,7 @@ H5Z_parse_term(H5Z_token *current, H5Z_datval_ptrs* dat_val_pointers)
case H5Z_XFORM_ERROR:
default:
+ H5Z_xform_destroy_parse_tree(term);
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, "bad transform type passed to data transform expression")
} /* end switch */
} /* end for */
diff --git a/src/H5private.h b/src/H5private.h
index 5c9a058..7776ceb 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -367,10 +367,10 @@
* HDF Boolean type.
*/
#ifndef FALSE
-# define FALSE 0
+ #define FALSE false
#endif
#ifndef TRUE
-# define TRUE 1
+ #define TRUE true
#endif
/*
@@ -498,7 +498,7 @@
#endif
/* Double constant wrapper
- *
+ *
* Quiets gcc warnings from -Wunsuffixed-float-constants.
*
* This is a really annoying warning since the standard specifies that
@@ -938,6 +938,14 @@ H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...);
#ifndef HDgets
#define HDgets(S) gets(S)
#endif /* HDgets */
+#ifndef H5_HAVE_TM_GMTOFF
+#ifdef H5_HAVE_TIMEZONE
+ #ifndef HDgettimezone
+ #define HDgettimezone() HDget_timezone()
+ #endif /* HDgettimezone */
+ H5_DLL long int HDget_timezone(void);
+#endif /* H5_HAVE_TIMEZONE */
+#endif /* H5_HAVE_TM_GMTOFF */
#ifndef HDgettimeofday
#define HDgettimeofday(S,P) gettimeofday(S,P)
#endif /* HDgettimeofday */
@@ -2074,7 +2082,7 @@ extern hbool_t H5_MPEinit_g; /* Has the MPE Library been initialized? */
FUNC_ENTER_COMMON_NOERR(!H5_IS_API(FUNC)); \
if(H5_PKG_INIT_VAR || !H5_TERM_GLOBAL) {
-/* Use the following two macros as replacements for the FUNC_ENTER_NOAPI
+/* Use the following two macros as replacements for the FUNC_ENTER_NOAPI
* and FUNC_ENTER_NOAPI_NOINIT macros when the function needs to set
* up a metadata tag. */
#define FUNC_ENTER_NOAPI_TAG(dxpl_id, tag, err) { \
diff --git a/src/H5public.h b/src/H5public.h
index 1c617d1..5b95fb7 100644
--- a/src/H5public.h
+++ b/src/H5public.h
@@ -94,10 +94,10 @@ extern "C" {
/* Version numbers */
#define H5_VERS_MAJOR 1 /* For major interface/format changes */
#define H5_VERS_MINOR 9 /* For minor interface/format changes */
-#define H5_VERS_RELEASE 232 /* For tweaks, bug-fixes, or development */
+#define H5_VERS_RELEASE 233 /* For tweaks, bug-fixes, or development */
#define H5_VERS_SUBRELEASE "" /* For pre-releases like snap0 */
/* Empty string for real releases. */
-#define H5_VERS_INFO "HDF5 library version: 1.9.232" /* Full version string */
+#define H5_VERS_INFO "HDF5 library version: 1.9.233" /* Full version string */
#define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \
H5_VERS_RELEASE)
@@ -141,7 +141,20 @@ typedef int herr_t;
* printf("error determining whether data type is committed\n");
* }
*/
-typedef unsigned int hbool_t;
+#ifdef H5_HAVE_STDBOOL_H
+ #include <stdbool.h>
+#else /* H5_HAVE_STDBOOL_H */
+ #ifndef __cplusplus
+ #if defined(H5_SIZEOF_BOOL) && (H5_SIZEOF_BOOL != 0)
+ #define bool _Bool
+ #else
+ #define bool unsigned int
+ #endif
+ #define true 1
+ #define false 0
+ #endif /* __cplusplus */
+#endif /* H5_HAVE_STDBOOL_H */
+typedef bool hbool_t;
typedef int htri_t;
/* Define the ssize_t type if it not is defined */
diff --git a/src/H5system.c b/src/H5system.c
index e00e5a5..0de920c 100644
--- a/src/H5system.c
+++ b/src/H5system.c
@@ -586,6 +586,43 @@ void HDsrand(unsigned int seed)
/*-------------------------------------------------------------------------
+ * Function: HDget_timezone
+ *
+ * Purpose: Wrapper function for global variable timezone, if it exists
+ * on this system, or use the function if VS2015
+ *
+ * VS2015 removed the deprecated global variable timezone.
+ *
+ * Return: Success: The value of timezone
+ *
+ * Failure: Cannot fail.
+ *
+ *-------------------------------------------------------------------------
+ */
+#ifndef H5_HAVE_TM_GMTOFF
+#ifdef H5_HAVE_TIMEZONE
+
+long int HDget_timezone(void)
+{
+#ifdef H5_HAVE_VISUAL_STUDIO
+#if _MSC_VER >= 1900 /* VS 2015 */
+
+ /* In gcc and in Visual Studio prior to VS 2015 'timezone' is a global
+ * variable declared in time.h. That variable was deprecated and in
+ * VS 2015 is removed, with _get_timezone replacing it.
+ */
+ long int timezone = 0;
+
+ #define HDget_timezone(V) _get_timezone(V);
+ HDget_timezone(&timezone);
+#endif
+#endif
+ return timezone;
+}
+#endif /* H5_HAVE_TIMEZONE */
+#endif /* H5_HAVE_TM_GMTOFF */
+
+/*-------------------------------------------------------------------------
* Function: Wgettimeofday
*
* Purpose: Wrapper function for gettimeofday on Windows systems
diff --git a/src/H5win32defs.h b/src/H5win32defs.h
index 185e9b4..73d8417 100644
--- a/src/H5win32defs.h
+++ b/src/H5win32defs.h
@@ -84,7 +84,7 @@ struct timezone {
#define HDgetlogin() Wgetlogin()
#define HDsnprintf c99_snprintf /*varargs*/
#define HDvsnprintf c99_vsnprintf
-
+
#endif /* H5_HAVE_VISUAL_STUDIO */
/* Non-POSIX functions */