From 1270d8f96a46a25601422b2308d7223c7f3f4bba Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 20 Mar 2016 04:50:29 +0100 Subject: [PATCH] Update libretro-common --- libretro-common/compat/compat_snprintf.c | 53 ++++++++++++++++++++++++ libretro-common/include/retro_common.h | 36 ++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 libretro-common/compat/compat_snprintf.c create mode 100644 libretro-common/include/retro_common.h diff --git a/libretro-common/compat/compat_snprintf.c b/libretro-common/compat/compat_snprintf.c new file mode 100644 index 0000000000..5825fd485f --- /dev/null +++ b/libretro-common/compat/compat_snprintf.c @@ -0,0 +1,53 @@ +/* Copyright (C) 2010-2015 The RetroArch team + * + * --------------------------------------------------------------------------------------- + * The following license statement only applies to this file (compat_snprintf.c). + * --------------------------------------------------------------------------------------- + * + * Permission is hereby granted, free of charge, + * to any person obtaining a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* THIS FILE HAS NOT BEEN VALIDATED ON PLATFORMS BESIDES MSVC */ + +#include + +#include + +/* http://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010 */ + +int c99_vsnprintf_retro__(char *outBuf, size_t size, const char *format, va_list ap) +{ + int count = -1; + + if (size != 0) + count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap); + if (count == -1) + count = _vscprintf(format, ap); + + return count; +} + +int c99_snprintf_retro__(char *outBuf, size_t size, const char *format, ...) +{ + int count; + va_list ap; + + va_start(ap, format); + count = c99_vsnprintf_retro__(outBuf, size, format, ap); + va_end(ap); + + return count; +} \ No newline at end of file diff --git a/libretro-common/include/retro_common.h b/libretro-common/include/retro_common.h new file mode 100644 index 0000000000..d84cafb583 --- /dev/null +++ b/libretro-common/include/retro_common.h @@ -0,0 +1,36 @@ +/* Copyright (C) 2010-2016 The RetroArch team + * + * --------------------------------------------------------------------------------------- + * The following license statement only applies to this file (retro_common.h). + * --------------------------------------------------------------------------------------- + * + * Permission is hereby granted, free of charge, + * to any person obtaining a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef _LIBRETRO_COMMON_RETRO_COMMON_H +#define _LIBRETRO_COMMON_RETRO_COMMON_H + +/* +This file is designed to normalize the libretro-common compiling environment. +It is not to be used in public API headers, as they should be designed as leanly as possible. +Nonetheless.. in the meantime, if you do something like use ssize_t, which is not fully portable, +in a public API, you may need this. +*/ + +/* conditional compilation is handled inside here */ +#include + +#endif \ No newline at end of file