1
0
mirror of https://github.com/libretro/RetroArch synced 2024-07-08 12:15:49 +00:00

Simplify _PSUPP_BUF and make it not use strlen

This commit is contained in:
libretroadmin 2023-08-17 19:14:31 +02:00
parent f53ada6489
commit 9ae1a5fbee

View File

@ -251,14 +251,6 @@
#define BSV_MOVIE_ARG
#endif
#define _PSUPP_BUF(buf, var, name, desc) \
strlcat(buf, " ", sizeof(buf)); \
snprintf(buf + strlen(buf), sizeof(buf), "%-15s", name); \
strlcat(buf, " - ", sizeof(buf)); \
strlcat(buf, desc, sizeof(buf)); \
strlcat(buf, ": ", sizeof(buf)); \
strlcat(buf, var ? "yes\n" : "no\n", sizeof(buf))
/* Griffin hack */
#ifdef HAVE_QT
#ifndef HAVE_MAIN
@ -5077,63 +5069,64 @@ void libretro_free_system_info(struct retro_system_info *sysinfo)
memset(sysinfo, 0, sizeof(*sysinfo));
}
#define _PSUPP_BUF(buf, len, var, name, desc) snprintf(buf + len, sizeof(buf) - len, " %-15s - %s: %s", name, desc, var ? "yes\n" : "no\n")
static void retroarch_print_features(void)
{
size_t _len;
char buf[4096];
buf[0] = '\0';
frontend_driver_attach_console();
strlcpy(buf, "Features:\n", sizeof(buf));
_PSUPP_BUF(buf, SUPPORTS_LIBRETRODB, "LibretroDB", "LibretroDB support");
_PSUPP_BUF(buf, SUPPORTS_COMMAND, "Command", "Command interface support");
_PSUPP_BUF(buf, SUPPORTS_NETWORK_COMMAND, "Network Command", "Network Command interface support");
_PSUPP_BUF(buf, SUPPORTS_SDL, "SDL", "SDL input/audio/video drivers");
_PSUPP_BUF(buf, SUPPORTS_SDL2, "SDL2", "SDL2 input/audio/video drivers");
_PSUPP_BUF(buf, SUPPORTS_X11, "X11", "X11 input/video drivers");
_PSUPP_BUF(buf, SUPPORTS_UDEV, "UDEV", "UDEV/EVDEV input driver");
_PSUPP_BUF(buf, SUPPORTS_WAYLAND, "Wayland", "Wayland input/video drivers");
_PSUPP_BUF(buf, SUPPORTS_THREAD, "Threads", "Threading support");
_PSUPP_BUF(buf, SUPPORTS_VULKAN, "Vulkan", "Video driver");
_PSUPP_BUF(buf, SUPPORTS_METAL, "Metal", "Video driver");
_PSUPP_BUF(buf, SUPPORTS_OPENGL, "OpenGL", "Video driver");
_PSUPP_BUF(buf, SUPPORTS_OPENGLES, "OpenGLES", "Video driver");
_PSUPP_BUF(buf, SUPPORTS_XVIDEO, "XVideo", "Video driver");
_PSUPP_BUF(buf, SUPPORTS_EGL, "EGL", "Video context driver");
_PSUPP_BUF(buf, SUPPORTS_KMS, "KMS", "Video context driver");
_PSUPP_BUF(buf, SUPPORTS_VG, "OpenVG", "Video context driver");
_PSUPP_BUF(buf, SUPPORTS_COREAUDIO, "CoreAudio", "Audio driver");
_PSUPP_BUF(buf, SUPPORTS_COREAUDIO3, "CoreAudioV3", "Audio driver");
_PSUPP_BUF(buf, SUPPORTS_ALSA, "ALSA", "Audio driver");
_PSUPP_BUF(buf, SUPPORTS_OSS, "OSS", "Audio driver");
_PSUPP_BUF(buf, SUPPORTS_JACK, "Jack", "Audio driver");
_PSUPP_BUF(buf, SUPPORTS_RSOUND, "RSound", "Audio driver");
_PSUPP_BUF(buf, SUPPORTS_ROAR, "RoarAudio", "Audio driver");
_PSUPP_BUF(buf, SUPPORTS_PULSE, "PulseAudio", "Audio driver");
_PSUPP_BUF(buf, SUPPORTS_DSOUND, "DirectSound", "Audio driver");
_PSUPP_BUF(buf, SUPPORTS_WASAPI, "WASAPI", "Audio driver");
_PSUPP_BUF(buf, SUPPORTS_XAUDIO, "XAudio2", "Audio driver");
_PSUPP_BUF(buf, SUPPORTS_AL, "OpenAL", "Audio driver");
_PSUPP_BUF(buf, SUPPORTS_SL, "OpenSL", "Audio driver");
_PSUPP_BUF(buf, SUPPORTS_7ZIP, "7zip", "7zip extraction support");
_PSUPP_BUF(buf, SUPPORTS_ZLIB, "zlib", "zip extraction support");
_PSUPP_BUF(buf, SUPPORTS_DYLIB, "External", "External filter and plugin support");
_PSUPP_BUF(buf, SUPPORTS_CG, "Cg", "Fragment/vertex shader driver");
_PSUPP_BUF(buf, SUPPORTS_GLSL, "GLSL", "Fragment/vertex shader driver");
_PSUPP_BUF(buf, SUPPORTS_HLSL, "HLSL", "Fragment/vertex shader driver");
_PSUPP_BUF(buf, SUPPORTS_SDL_IMAGE, "SDL_image", "SDL_image image loading");
_PSUPP_BUF(buf, SUPPORTS_RPNG, "rpng", "PNG image loading/encoding");
_PSUPP_BUF(buf, SUPPORTS_RJPEG, "rjpeg", "JPEG image loading");
_PSUPP_BUF(buf, SUPPORTS_DYNAMIC, "Dynamic", "Dynamic run-time loading of libretro library");
_PSUPP_BUF(buf, SUPPORTS_FFMPEG, "FFmpeg", "On-the-fly recording of gameplay with libavcodec");
_PSUPP_BUF(buf, SUPPORTS_FREETYPE, "FreeType", "TTF font rendering driver");
_PSUPP_BUF(buf, SUPPORTS_CORETEXT, "CoreText", "TTF font rendering driver");
_PSUPP_BUF(buf, SUPPORTS_NETPLAY, "Netplay", "Peer-to-peer netplay");
_PSUPP_BUF(buf, SUPPORTS_LIBUSB, "Libusb", "Libusb support");
_PSUPP_BUF(buf, SUPPORTS_COCOA, "Cocoa", "Cocoa UI companion support (for OSX and/or iOS)");
_PSUPP_BUF(buf, SUPPORTS_QT, "Qt", "Qt UI companion support");
_PSUPP_BUF(buf, SUPPORTS_V4L2, "Video4Linux2", "Camera driver");
_len = strlcpy(buf, "Features:\n", sizeof(buf));
_len += _PSUPP_BUF(buf, _len, SUPPORTS_LIBRETRODB, "LibretroDB", "LibretroDB support");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_COMMAND, "Command", "Command interface support");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_NETWORK_COMMAND, "Network Command", "Network Command interface support");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_SDL, "SDL", "SDL input/audio/video drivers");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_SDL2, "SDL2", "SDL2 input/audio/video drivers");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_X11, "X11", "X11 input/video drivers");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_UDEV, "UDEV", "UDEV/EVDEV input driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_WAYLAND, "Wayland", "Wayland input/video drivers");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_THREAD, "Threads", "Threading support");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_VULKAN, "Vulkan", "Video driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_METAL, "Metal", "Video driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_OPENGL, "OpenGL", "Video driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_OPENGLES, "OpenGLES", "Video driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_XVIDEO, "XVideo", "Video driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_EGL, "EGL", "Video context driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_KMS, "KMS", "Video context driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_VG, "OpenVG", "Video context driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_COREAUDIO, "CoreAudio", "Audio driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_COREAUDIO3, "CoreAudioV3", "Audio driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_ALSA, "ALSA", "Audio driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_OSS, "OSS", "Audio driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_JACK, "Jack", "Audio driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_RSOUND, "RSound", "Audio driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_ROAR, "RoarAudio", "Audio driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_PULSE, "PulseAudio", "Audio driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_DSOUND, "DirectSound", "Audio driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_WASAPI, "WASAPI", "Audio driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_XAUDIO, "XAudio2", "Audio driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_AL, "OpenAL", "Audio driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_SL, "OpenSL", "Audio driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_7ZIP, "7zip", "7zip extraction support");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_ZLIB, "zlib", "zip extraction support");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_DYLIB, "External", "External filter and plugin support");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_CG, "Cg", "Fragment/vertex shader driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_GLSL, "GLSL", "Fragment/vertex shader driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_HLSL, "HLSL", "Fragment/vertex shader driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_SDL_IMAGE, "SDL_image", "SDL_image image loading");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_RPNG, "rpng", "PNG image loading/encoding");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_RJPEG, "rjpeg", "JPEG image loading");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_DYNAMIC, "Dynamic", "Dynamic run-time loading of libretro library");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_FFMPEG, "FFmpeg", "On-the-fly recording of gameplay with libavcodec");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_FREETYPE, "FreeType", "TTF font rendering driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_CORETEXT, "CoreText", "TTF font rendering driver");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_NETPLAY, "Netplay", "Peer-to-peer netplay");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_LIBUSB, "Libusb", "Libusb support");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_COCOA, "Cocoa", "Cocoa UI companion support (for OSX and/or iOS)");
_len += _PSUPP_BUF(buf, _len, SUPPORTS_QT, "Qt", "Qt UI companion support");
_PSUPP_BUF(buf, _len, SUPPORTS_V4L2, "Video4Linux2", "Camera driver");
fputs(buf, stdout);
}
@ -5413,7 +5406,7 @@ static void retroarch_print_help(const char *arg0)
}
#ifdef HAVE_DYNAMIC
static void retroarch_parse_input_libretro_path(const char *path)
static void retroarch_parse_input_libretro_path(const char *path, size_t path_len)
{
settings_t *settings = config_get_ptr();
int path_stats = 0;
@ -5428,7 +5421,7 @@ static void retroarch_parse_input_libretro_path(const char *path)
/* Check if path refers to a built-in core */
if (string_ends_with_size(path, "builtin",
strlen(path), STRLEN_CONST("builtin")))
path_len, STRLEN_CONST("builtin")))
{
RARCH_LOG("--libretro argument \"%s\" is a built-in core. Ignoring.\n",
path);
@ -5975,7 +5968,7 @@ static bool retroarch_parse_input_and_config(
#ifdef HAVE_DYNAMIC
case 'L':
retroarch_parse_input_libretro_path(optarg);
retroarch_parse_input_libretro_path(optarg, strlen(optarg));
break;
#endif
case 'P':