From 5aa71b41c527f822505f6476acf53c2fc1cc296d Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Fri, 20 Oct 2023 15:20:07 +0100 Subject: [PATCH] Clean up `SDL_GetClipboardText` handling --- Source/DiabloUI/diabloui.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Source/DiabloUI/diabloui.cpp b/Source/DiabloUI/diabloui.cpp index fb3f6fc66..c4db15e2d 100644 --- a/Source/DiabloUI/diabloui.cpp +++ b/Source/DiabloUI/diabloui.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include "DiabloUI/button.h" @@ -27,6 +28,7 @@ #include "utils/screen_reader.hpp" #include "utils/sdl_compat.h" #include "utils/sdl_geometry.h" +#include "utils/sdl_ptrs.h" #include "utils/sdl_wrap.h" #include "utils/str_cat.hpp" #include "utils/stubs.h" @@ -410,13 +412,12 @@ void UiFocusNavigation(SDL_Event *event) case SDLK_v: if ((SDL_GetModState() & KMOD_CTRL) != 0) { if (SDL_HasClipboardText() == SDL_TRUE) { - char *clipboard = SDL_GetClipboardText(); - if (clipboard == nullptr) { + std::unique_ptr> clipboard { SDL_GetClipboardText() }; + if (clipboard == nullptr || *clipboard == '\0') { Log("{}", SDL_GetError()); } else { - SelheroCatToName(clipboard, UiTextInput, UiTextInputLen); + SelheroCatToName(clipboard.get(), UiTextInput, UiTextInputLen); } - SDL_free(clipboard); } } return;