mike-jumper commented on a change in pull request #350:
URL: https://github.com/apache/guacamole-server/pull/350#discussion_r745178699



##########
File path: src/terminal/terminal.c
##########
@@ -1590,17 +1590,129 @@ static int __guac_terminal_send_key(guac_terminal* 
term, int keysym, int pressed
                 if (keysym == 0xFF54 || keysym == 0xFF99) return 
guac_terminal_send_string(term, "\x1B[B"); /* Down */
             }
 
+            /* Shift + Function keys. */
+            if (term->mod_shift) { 
+                if (keysym == 0xFFBE || keysym == 0xFF91) return 
guac_terminal_send_string(term, "\x1B[1;2P"); /* F1  */
+                if (keysym == 0xFFBF || keysym == 0xFF92) return 
guac_terminal_send_string(term, "\x1B[1;2Q"); /* F2  */
+                if (keysym == 0xFFC0 || keysym == 0xFF93) return 
guac_terminal_send_string(term, "\x1B[1;2R"); /* F3  */
+                if (keysym == 0xFFC1 || keysym == 0xFF94) return 
guac_terminal_send_string(term, "\x1B[1;2S"); /* F4  */
+                if (keysym == 0xFFC2) return guac_terminal_send_string(term, 
"\x1B[15;2~"); /* F5  */
+                if (keysym == 0xFFC3) return guac_terminal_send_string(term, 
"\x1B[17;2~"); /* F6  */
+                if (keysym == 0xFFC4) return guac_terminal_send_string(term, 
"\x1B[18;2~"); /* F7  */
+                if (keysym == 0xFFC5) return guac_terminal_send_string(term, 
"\x1B[19;2~"); /* F8  */
+                if (keysym == 0xFFC6) return guac_terminal_send_string(term, 
"\x1B[20;2~"); /* F9  */
+                if (keysym == 0xFFC7) return guac_terminal_send_string(term, 
"\x1B[21;2~"); /* F10 */
+                if (keysym == 0xFFC8) return guac_terminal_send_string(term, 
"\x1B[23;2~"); /* F11 */
+                if (keysym == 0xFFC9) return guac_terminal_send_string(term, 
"\x1B[24;2~"); /* F12 */
+            }
+
+            /* Alt + Function keys. */
+            if (term->mod_alt) { 
+                if (keysym == 0xFFBE || keysym == 0xFF91) return 
guac_terminal_send_string(term, "\x1B[1;3P"); /* F1  */
+                if (keysym == 0xFFBF || keysym == 0xFF92) return 
guac_terminal_send_string(term, "\x1B[1;3Q"); /* F2  */
+                if (keysym == 0xFFC0 || keysym == 0xFF93) return 
guac_terminal_send_string(term, "\x1B[1;3R"); /* F3  */
+                if (keysym == 0xFFC1 || keysym == 0xFF94) return 
guac_terminal_send_string(term, "\x1B[1;3S"); /* F4  */
+                if (keysym == 0xFFC2) return guac_terminal_send_string(term, 
"\x1B[15;3~"); /* F5  */
+                if (keysym == 0xFFC3) return guac_terminal_send_string(term, 
"\x1B[17;3~"); /* F6  */
+                if (keysym == 0xFFC4) return guac_terminal_send_string(term, 
"\x1B[18;3~"); /* F7  */
+                if (keysym == 0xFFC5) return guac_terminal_send_string(term, 
"\x1B[19;3~"); /* F8  */
+                if (keysym == 0xFFC6) return guac_terminal_send_string(term, 
"\x1B[20;3~"); /* F9  */
+                if (keysym == 0xFFC7) return guac_terminal_send_string(term, 
"\x1B[21;3~"); /* F10 */
+                if (keysym == 0xFFC8) return guac_terminal_send_string(term, 
"\x1B[23;3~"); /* F11 */
+                if (keysym == 0xFFC9) return guac_terminal_send_string(term, 
"\x1B[24;3~"); /* F12 */
+            }
+
+            /* Shift + Alt + Function keys. */
+            if(term->mod_shift && term->mod_alt){
+                if (keysym == 0xFFBE || keysym == 0xFF91) return 
guac_terminal_send_string(term, "\x1B[1;4P"); /* F1  */
+                if (keysym == 0xFFBF || keysym == 0xFF92) return 
guac_terminal_send_string(term, "\x1B[1;4Q"); /* F2  */
+                if (keysym == 0xFFC0 || keysym == 0xFF93) return 
guac_terminal_send_string(term, "\x1B[1;4R"); /* F3  */
+                if (keysym == 0xFFC1 || keysym == 0xFF94) return 
guac_terminal_send_string(term, "\x1B[1;4S"); /* F4  */
+                if (keysym == 0xFFC2) return guac_terminal_send_string(term, 
"\x1B[15;4~"); /* F5  */
+                if (keysym == 0xFFC3) return guac_terminal_send_string(term, 
"\x1B[17;4~"); /* F6  */
+                if (keysym == 0xFFC4) return guac_terminal_send_string(term, 
"\x1B[18;4~"); /* F7  */
+                if (keysym == 0xFFC5) return guac_terminal_send_string(term, 
"\x1B[19;4~"); /* F8  */
+                if (keysym == 0xFFC6) return guac_terminal_send_string(term, 
"\x1B[20;4~"); /* F9  */
+                if (keysym == 0xFFC7) return guac_terminal_send_string(term, 
"\x1B[21;4~"); /* F10 */
+                if (keysym == 0xFFC8) return guac_terminal_send_string(term, 
"\x1B[23;4~"); /* F11 */
+                if (keysym == 0xFFC9) return guac_terminal_send_string(term, 
"\x1B[24;4~"); /* F12 */
+            }
+
+            /* Ctrl+ Function keys. */
+            if (term->mod_ctrl) { 
+                if (keysym == 0xFFBE || keysym == 0xFF91) return 
guac_terminal_send_string(term, "\x1B[1;5P"); /* F1  */
+                if (keysym == 0xFFBF || keysym == 0xFF92) return 
guac_terminal_send_string(term, "\x1B[1;5Q"); /* F2  */
+                if (keysym == 0xFFC0 || keysym == 0xFF93) return 
guac_terminal_send_string(term, "\x1B[1;5R"); /* F3  */
+                if (keysym == 0xFFC1 || keysym == 0xFF94) return 
guac_terminal_send_string(term, "\x1B[1;5S"); /* F4  */
+                if (keysym == 0xFFC2) return guac_terminal_send_string(term, 
"\x1B[15;5~"); /* F5  */
+                if (keysym == 0xFFC3) return guac_terminal_send_string(term, 
"\x1B[17;5~"); /* F6  */
+                if (keysym == 0xFFC4) return guac_terminal_send_string(term, 
"\x1B[18;5~"); /* F7  */
+                if (keysym == 0xFFC5) return guac_terminal_send_string(term, 
"\x1B[19;5~"); /* F8  */
+                if (keysym == 0xFFC6) return guac_terminal_send_string(term, 
"\x1B[20;5~"); /* F9  */
+                if (keysym == 0xFFC7) return guac_terminal_send_string(term, 
"\x1B[21;5~"); /* F10 */
+                if (keysym == 0xFFC8) return guac_terminal_send_string(term, 
"\x1B[23;5~"); /* F11 */
+                if (keysym == 0xFFC9) return guac_terminal_send_string(term, 
"\x1B[24;5~"); /* F12 */
+            }
+
+            /* Shift + Ctrl + Function keys. */
+            if(term->mod_shift && term->mod_ctrl){

Review comment:
       Same here:
   
   * Please follow established style.
   * This will never actually be reached as earlier `if` tests will have 
already been satisfied and the function will already have exited.

##########
File path: src/terminal/terminal.c
##########
@@ -1590,17 +1590,129 @@ static int __guac_terminal_send_key(guac_terminal* 
term, int keysym, int pressed
                 if (keysym == 0xFF54 || keysym == 0xFF99) return 
guac_terminal_send_string(term, "\x1B[B"); /* Down */
             }
 
+            /* Shift + Function keys. */
+            if (term->mod_shift) { 
+                if (keysym == 0xFFBE || keysym == 0xFF91) return 
guac_terminal_send_string(term, "\x1B[1;2P"); /* F1  */
+                if (keysym == 0xFFBF || keysym == 0xFF92) return 
guac_terminal_send_string(term, "\x1B[1;2Q"); /* F2  */
+                if (keysym == 0xFFC0 || keysym == 0xFF93) return 
guac_terminal_send_string(term, "\x1B[1;2R"); /* F3  */
+                if (keysym == 0xFFC1 || keysym == 0xFF94) return 
guac_terminal_send_string(term, "\x1B[1;2S"); /* F4  */
+                if (keysym == 0xFFC2) return guac_terminal_send_string(term, 
"\x1B[15;2~"); /* F5  */
+                if (keysym == 0xFFC3) return guac_terminal_send_string(term, 
"\x1B[17;2~"); /* F6  */
+                if (keysym == 0xFFC4) return guac_terminal_send_string(term, 
"\x1B[18;2~"); /* F7  */
+                if (keysym == 0xFFC5) return guac_terminal_send_string(term, 
"\x1B[19;2~"); /* F8  */
+                if (keysym == 0xFFC6) return guac_terminal_send_string(term, 
"\x1B[20;2~"); /* F9  */
+                if (keysym == 0xFFC7) return guac_terminal_send_string(term, 
"\x1B[21;2~"); /* F10 */
+                if (keysym == 0xFFC8) return guac_terminal_send_string(term, 
"\x1B[23;2~"); /* F11 */
+                if (keysym == 0xFFC9) return guac_terminal_send_string(term, 
"\x1B[24;2~"); /* F12 */
+            }
+
+            /* Alt + Function keys. */
+            if (term->mod_alt) { 
+                if (keysym == 0xFFBE || keysym == 0xFF91) return 
guac_terminal_send_string(term, "\x1B[1;3P"); /* F1  */
+                if (keysym == 0xFFBF || keysym == 0xFF92) return 
guac_terminal_send_string(term, "\x1B[1;3Q"); /* F2  */
+                if (keysym == 0xFFC0 || keysym == 0xFF93) return 
guac_terminal_send_string(term, "\x1B[1;3R"); /* F3  */
+                if (keysym == 0xFFC1 || keysym == 0xFF94) return 
guac_terminal_send_string(term, "\x1B[1;3S"); /* F4  */
+                if (keysym == 0xFFC2) return guac_terminal_send_string(term, 
"\x1B[15;3~"); /* F5  */
+                if (keysym == 0xFFC3) return guac_terminal_send_string(term, 
"\x1B[17;3~"); /* F6  */
+                if (keysym == 0xFFC4) return guac_terminal_send_string(term, 
"\x1B[18;3~"); /* F7  */
+                if (keysym == 0xFFC5) return guac_terminal_send_string(term, 
"\x1B[19;3~"); /* F8  */
+                if (keysym == 0xFFC6) return guac_terminal_send_string(term, 
"\x1B[20;3~"); /* F9  */
+                if (keysym == 0xFFC7) return guac_terminal_send_string(term, 
"\x1B[21;3~"); /* F10 */
+                if (keysym == 0xFFC8) return guac_terminal_send_string(term, 
"\x1B[23;3~"); /* F11 */
+                if (keysym == 0xFFC9) return guac_terminal_send_string(term, 
"\x1B[24;3~"); /* F12 */
+            }
+
+            /* Shift + Alt + Function keys. */
+            if(term->mod_shift && term->mod_alt){

Review comment:
       This `if` will never actually be reached, as either of the previous `if 
(term->mod_shift)` and `if (term->mod_alt)` will exit the function first.

##########
File path: src/terminal/terminal.c
##########
@@ -1590,17 +1590,129 @@ static int __guac_terminal_send_key(guac_terminal* 
term, int keysym, int pressed
                 if (keysym == 0xFF54 || keysym == 0xFF99) return 
guac_terminal_send_string(term, "\x1B[B"); /* Down */
             }
 
+            /* Shift + Function keys. */
+            if (term->mod_shift) { 
+                if (keysym == 0xFFBE || keysym == 0xFF91) return 
guac_terminal_send_string(term, "\x1B[1;2P"); /* F1  */
+                if (keysym == 0xFFBF || keysym == 0xFF92) return 
guac_terminal_send_string(term, "\x1B[1;2Q"); /* F2  */
+                if (keysym == 0xFFC0 || keysym == 0xFF93) return 
guac_terminal_send_string(term, "\x1B[1;2R"); /* F3  */
+                if (keysym == 0xFFC1 || keysym == 0xFF94) return 
guac_terminal_send_string(term, "\x1B[1;2S"); /* F4  */
+                if (keysym == 0xFFC2) return guac_terminal_send_string(term, 
"\x1B[15;2~"); /* F5  */
+                if (keysym == 0xFFC3) return guac_terminal_send_string(term, 
"\x1B[17;2~"); /* F6  */
+                if (keysym == 0xFFC4) return guac_terminal_send_string(term, 
"\x1B[18;2~"); /* F7  */
+                if (keysym == 0xFFC5) return guac_terminal_send_string(term, 
"\x1B[19;2~"); /* F8  */
+                if (keysym == 0xFFC6) return guac_terminal_send_string(term, 
"\x1B[20;2~"); /* F9  */
+                if (keysym == 0xFFC7) return guac_terminal_send_string(term, 
"\x1B[21;2~"); /* F10 */
+                if (keysym == 0xFFC8) return guac_terminal_send_string(term, 
"\x1B[23;2~"); /* F11 */
+                if (keysym == 0xFFC9) return guac_terminal_send_string(term, 
"\x1B[24;2~"); /* F12 */
+            }
+
+            /* Alt + Function keys. */
+            if (term->mod_alt) { 
+                if (keysym == 0xFFBE || keysym == 0xFF91) return 
guac_terminal_send_string(term, "\x1B[1;3P"); /* F1  */
+                if (keysym == 0xFFBF || keysym == 0xFF92) return 
guac_terminal_send_string(term, "\x1B[1;3Q"); /* F2  */
+                if (keysym == 0xFFC0 || keysym == 0xFF93) return 
guac_terminal_send_string(term, "\x1B[1;3R"); /* F3  */
+                if (keysym == 0xFFC1 || keysym == 0xFF94) return 
guac_terminal_send_string(term, "\x1B[1;3S"); /* F4  */
+                if (keysym == 0xFFC2) return guac_terminal_send_string(term, 
"\x1B[15;3~"); /* F5  */
+                if (keysym == 0xFFC3) return guac_terminal_send_string(term, 
"\x1B[17;3~"); /* F6  */
+                if (keysym == 0xFFC4) return guac_terminal_send_string(term, 
"\x1B[18;3~"); /* F7  */
+                if (keysym == 0xFFC5) return guac_terminal_send_string(term, 
"\x1B[19;3~"); /* F8  */
+                if (keysym == 0xFFC6) return guac_terminal_send_string(term, 
"\x1B[20;3~"); /* F9  */
+                if (keysym == 0xFFC7) return guac_terminal_send_string(term, 
"\x1B[21;3~"); /* F10 */
+                if (keysym == 0xFFC8) return guac_terminal_send_string(term, 
"\x1B[23;3~"); /* F11 */
+                if (keysym == 0xFFC9) return guac_terminal_send_string(term, 
"\x1B[24;3~"); /* F12 */
+            }
+
+            /* Shift + Alt + Function keys. */
+            if(term->mod_shift && term->mod_alt){

Review comment:
       Please follow established code style here - there should be spaces 
between the `if` and `(` and the `)` and `{` (see elsewhere in this file).




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to