Browse Source

Clean up SDL_GetClipboardText in chat paste (#6731)

pull/6732/head
qndel 2 years ago committed by GitHub
parent
commit
ee2b61dae6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      Source/control.cpp

9
Source/control.cpp

@ -9,6 +9,7 @@
#include <array>
#include <cstddef>
#include <cstdint>
#include <memory>
#include <optional>
#include <string>
@ -52,6 +53,7 @@
#include "utils/parse_int.hpp"
#include "utils/screen_reader.hpp"
#include "utils/sdl_geometry.h"
#include "utils/sdl_ptrs.h"
#include "utils/str_case.hpp"
#include "utils/str_cat.hpp"
#include "utils/string_or_view.hpp"
@ -1594,13 +1596,12 @@ bool control_presskeys(SDL_Keycode vkey)
case SDLK_v:
if ((SDL_GetModState() & KMOD_CTRL) != 0) {
if (SDL_HasClipboardText() == SDL_TRUE) {
char *clipboard = SDL_GetClipboardText();
if (clipboard == nullptr) {
std::unique_ptr<char, SDLFreeDeleter<char>> clipboard { SDL_GetClipboardText() };
if (clipboard == nullptr || *clipboard == '\0') {
Log("{}", SDL_GetError());
} else {
strncat(TalkMessage, clipboard, sizeof(TalkMessage) - strlen(TalkMessage) - 1);
strncat(TalkMessage, clipboard.get(), sizeof(TalkMessage) - strlen(TalkMessage) - 1);
}
SDL_free(clipboard);
}
}
return true;

Loading…
Cancel
Save