hidapi: silence redefinition warnings

This commit is contained in:
Ozkan Sezer
2023-06-02 14:36:14 +03:00
committed by Sam Lantinga
parent f082c68b2f
commit 3ecdbf27cc
3 changed files with 97 additions and 7 deletions

View File

@@ -20,22 +20,52 @@
*/
/* Define standard library functions in terms of SDL */
#define free SDL_free
#pragma push_macro("malloc")
#pragma push_macro("realloc")
#pragma push_macro("free")
#pragma push_macro("iconv_t")
#pragma push_macro("iconv")
#pragma push_macro("iconv_open")
#pragma push_macro("iconv_close")
#pragma push_macro("setlocale")
#pragma push_macro("snprintf")
#pragma push_macro("strcmp")
#pragma push_macro("strdup")
#pragma push_macro("strncpy")
#pragma push_macro("tolower")
#pragma push_macro("wcsdup")
#undef malloc
#undef realloc
#undef free
#undef iconv_t
#undef iconv
#undef iconv_open
#undef iconv_close
#undef setlocale
#undef snprintf
#undef strcmp
#undef strdup
#undef strncpy
#undef tolower
#undef wcsdup
#define malloc SDL_malloc
#define realloc SDL_realloc
#define free SDL_free
#define iconv_t SDL_iconv_t
#ifndef ICONV_CONST
#define ICONV_CONST
#define UNDEF_ICONV_CONST
#endif
#define iconv(a,b,c,d,e) SDL_iconv(a, (const char **)b, c, d, e)
#define iconv_open SDL_iconv_open
#define iconv_close SDL_iconv_close
#define malloc SDL_malloc
#define realloc SDL_realloc
#define setlocale(X, Y) NULL
#define snprintf SDL_snprintf
#define strcmp SDL_strcmp
#define strdup SDL_strdup
#define strncpy SDL_strlcpy
#ifdef tolower
#undef tolower
#endif
#define tolower SDL_tolower
#define wcsdup SDL_wcsdup
@@ -57,3 +87,23 @@ static int SDL_libusb_get_string_descriptor(libusb_device_handle *dev,
#undef HIDAPI_H__
#include "libusb/hid.c"
/* restore libc function macros */
#ifdef UNDEF_ICONV_CONST
#undef ICONV_CONST
#undef UNDEF_ICONV_CONST
#endif
#pragma pop_macro("malloc")
#pragma pop_macro("realloc")
#pragma pop_macro("free")
#pragma pop_macro("iconv_t")
#pragma pop_macro("iconv")
#pragma pop_macro("iconv_open")
#pragma pop_macro("iconv_close")
#pragma pop_macro("setlocale")
#pragma pop_macro("snprintf")
#pragma pop_macro("strcmp")
#pragma pop_macro("strdup")
#pragma pop_macro("strncpy")
#pragma pop_macro("tolower")
#pragma pop_macro("wcsdup")