diff --git a/CHANGELOG.md b/CHANGELOG.md index c445a445..d87b632f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -59,6 +59,8 @@ state, foot was looking at **depressed** modifiers, not **effective** modifiers, like it should. * Fix crashes after enabling CSD at runtime when `csd.size` is 0. +* Convert `\r` to `\n` when reading clipboard data + (https://codeberg.org/dnkl/foot/issues/752). ### Security diff --git a/selection.c b/selection.c index b6bae978..91523d3b 100644 --- a/selection.c +++ b/selection.c @@ -1609,6 +1609,11 @@ fdm_receive_timeout(struct fdm *fdm, int fd, int events, void *data) static void fdm_receive_decoder_plain(struct clipboard_receive *ctx, char *data, size_t size) { + /* \r -> \n */ + for (size_t i = 0; i < size; i++) { + if (data[i] == '\r') + data[i] = '\n'; + } ctx->cb(data, size, ctx->user); }