Commit d304ad37 for guacamole.apache.org

commit d304ad3790579d73935dd43af30d20b948b9ef9a
Merge: 95f24ddf 8141f38d
Author: Michael Jumper <mjumper@apache.org>
Date:   Mon Apr 6 08:56:50 2026 -0700

    Merge changes from patch branch back to main.

diff --cc src/terminal/terminal.c
index 8f2c18a2,9156b40b..d87c9a97
--- a/src/terminal/terminal.c
+++ b/src/terminal/terminal.c
@@@ -1677,27 -1553,12 +1645,27 @@@ static int __guac_terminal_send_key(gua
                  char backspace_str[] = { term->backspace, '\0' };
                  return guac_terminal_send_string(term, backspace_str);
              }
 +
              if (keysym == 0xFF09 || keysym == 0xFF89) return guac_terminal_send_string(term, "\x09"); /* Tab */
-             if (keysym == 0xFF0A) return guac_terminal_send_string(term, GUAC_TERMINAL_ASCII_CR);                     /* Line Feed -> CR */
-             if (keysym == 0xFF0D || keysym == 0xFF8D) return guac_terminal_send_string(term, GUAC_TERMINAL_ASCII_CR); /* Enter */
+             if (keysym == 0xFF0A) return guac_terminal_send_string(term, "\x0A");                     /* Line Feed */
+             if (keysym == 0xFF0D || keysym == 0xFF8D) return guac_terminal_send_string(term, "\x0D"); /* Enter */
              if (keysym == 0xFF1B) return guac_terminal_send_string(term, "\x1B");                     /* Esc */

 -            if (keysym == 0xFF50 || keysym == 0xFF95) return guac_terminal_send_string(term, "\x1B[1~"); /* Home */
 +            /* Tab */
 +            if (keysym == GUAC_TERMINAL_KEY_TAB || keysym == GUAC_TERMINAL_KEY_KP_TAB)
 +                return guac_terminal_send_string(term, GUAC_TERMINAL_ASCII_TAB);
 +
 +            /* Enter */
 +            if (keysym == GUAC_TERMINAL_KEY_ENTER || keysym == GUAC_TERMINAL_KEY_KP_ENTER)
 +                return guac_terminal_send_string(term, GUAC_TERMINAL_ASCII_CR);
 +
 +            /* Esc */
 +            if (keysym == GUAC_TERMINAL_KEY_ESCAPE)
 +                return guac_terminal_send_string(term, GUAC_TERMINAL_ASCII_ESCAPE);
 +
 +            /* Home */
 +            if (keysym == GUAC_TERMINAL_KEY_HOME || keysym == GUAC_TERMINAL_KEY_KP_HOME)
 +                return guac_terminal_send_string(term, GUAC_TERMINAL_ESC_SEQ_HOME);

              /* Arrow keys w/ application cursor */
              if (term->application_cursor_keys) {