selection: convert \r -> \n when reading clipboard data

This fixes an issue where pasting (using e.g. OSC-52) in client
applications that doesn’t do this conversion themselves, like tmux,
doesn’t work.

Closes #752
This commit is contained in:
Daniel Eklöf 2021-10-19 21:34:04 +02:00
parent 6dfacb9c08
commit 5ab49de7f2
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 7 additions and 0 deletions

View file

@ -59,6 +59,8 @@
state, foot was looking at **depressed** modifiers, not state, foot was looking at **depressed** modifiers, not
**effective** modifiers, like it should. **effective** modifiers, like it should.
* Fix crashes after enabling CSD at runtime when `csd.size` is 0. * 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 ### Security

View file

@ -1609,6 +1609,11 @@ fdm_receive_timeout(struct fdm *fdm, int fd, int events, void *data)
static void static void
fdm_receive_decoder_plain(struct clipboard_receive *ctx, char *data, size_t size) 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); ctx->cb(data, size, ctx->user);
} }