icedb  version 0.5.1
Snow particle scattering database API
util.h
Go to the documentation of this file.
1 #pragma once
2 #ifndef ICEDB_H_UTIL
3 #define ICEDB_H_UTIL
4 #include "defs.h"
5 #include <string.h>
6 
7 #if defined(__cplusplus) || defined(c_plusplus)
8 #else
9 #include <uchar.h>
10 #endif
11 
13 
14 DL_ICEDB size_t ICEDB_COMPAT_strncpy_s(char *dest, size_t destSz, const char* src, size_t srcSz);
15 DL_ICEDB char* ICEDB_COMPAT_strdup_s(const char* src, size_t srcSz);
16 
17 DL_ICEDB size_t ICEDB_COMPAT_wcsncpy_s(wchar_t *dest, size_t destSz, const wchar_t* src, size_t srcSz);
18 DL_ICEDB wchar_t* ICEDB_COMPAT_wcsdup_s(const wchar_t* src, size_t srcSz);
19 
20 
22 #ifdef ICEDB_DEFS_COMPILER_HAS_FPRINTF_S
23 #define ICEDB_COMPAT_fprintf_s fprintf_s
24 #define ICEDB_COMPAT_fwprintf_s fwprintf_s
25 #else
26 #define ICEDB_COMPAT_fprintf_s fprintf
27 #define ICEDB_COMPAT_fwprintf_s fwprintf
28 #endif
29 
31 #ifdef ICEDB_DEFS_COMPILER_HAS_FPUTS_S
32 #define ICEDB_COMPAT_fputs_s fputs
33 #define ICEDB_COMPAT_fputws_s fputws
34 #else
35 #define ICEDB_COMPAT_fputs_s fputs
36 #define ICEDB_COMPAT_fputws_s fputws
37 #endif
38 
39 #ifdef ICEDB_DEFS_COMPILER_HAS_STRNLEN_S
40 #define ICEDB_COMPAT_wcsnlen_s wcsnlen_s
41 #define ICEDB_COMPAT_strnlen_s strnlen_s
42 #else
43 #define ICEDB_COMPAT_wcsnlen_s wcsnlen_s
44 #define ICEDB_COMPAT_strnlen_s strnlen
45 #endif
46 
48 DL_ICEDB void* ICEDB_malloc(size_t numBytes);
49 
51 DL_ICEDB void ICEDB_free(void* obj);
52 
54 
55 #endif
DL_ICEDB wchar_t * ICEDB_COMPAT_wcsdup_s(const wchar_t *src, size_t srcSz)
Definition: util.cpp:80
DL_ICEDB void * ICEDB_malloc(size_t numBytes)
Allocate memory in bytes. Generally this is just malloced, but a custom allocator may be substituted...
Definition: util.cpp:90
#define DL_ICEDB
Definition: defs.h:124
#define ICEDB_BEGIN_DECL_C
Definition: defs.h:20
DL_ICEDB char * ICEDB_COMPAT_strdup_s(const char *src, size_t srcSz)
Definition: util.cpp:42
#define ICEDB_END_DECL_C
Definition: defs.h:21
DL_ICEDB void ICEDB_free(void *obj)
Free memory region. Should not be double-freed.
Definition: util.cpp:97
ICEDB_BEGIN_DECL_C DL_ICEDB size_t ICEDB_COMPAT_strncpy_s(char *dest, size_t destSz, const char *src, size_t srcSz)
Definition: util.cpp:14
DL_ICEDB size_t ICEDB_COMPAT_wcsncpy_s(wchar_t *dest, size_t destSz, const wchar_t *src, size_t srcSz)
Definition: util.cpp:52