Skip to content

Commit

Permalink
GUACAMOLE-1632: Fill null chars before last printable char with spaces
Browse files Browse the repository at this point in the history
  • Loading branch information
corentin-soriano committed Jun 7, 2024
1 parent 61f943d commit a2b4aaf
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/terminal/select.c
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,7 @@ static void guac_terminal_clipboard_append_row(guac_terminal* terminal,

char buffer[1024];
int i = start;
int eol;

guac_terminal_buffer_row* buffer_row =
guac_terminal_buffer_get_row(terminal->buffer, row, 0);
Expand All @@ -296,6 +297,14 @@ static void guac_terminal_clipboard_append_row(guac_terminal* terminal,
if (end < 0 || end > buffer_row->length - 1)
end = buffer_row->length - 1;

/* Get position of last not null char */
for (eol = buffer_row->length; eol > start; eol--) {

if (buffer_row->characters[eol].value != 0)
break;

}

/* Repeatedly convert chunks of terminal buffer rows until entire specified
* region has been appended to clipboard */
while (i <= end) {
Expand All @@ -308,6 +317,10 @@ static void guac_terminal_clipboard_append_row(guac_terminal* terminal,

int codepoint = buffer_row->characters[i].value;

/* Fill empty with spaces if not at end of line */
if (codepoint == 0 && i < eol)
codepoint = 32;

/* Ignore null (blank) characters */
if (codepoint == 0 || codepoint == GUAC_CHAR_CONTINUATION)
continue;
Expand Down

0 comments on commit a2b4aaf

Please sign in to comment.