diff --git a/src/protocols/kubernetes/argv.c b/src/protocols/kubernetes/argv.c index 5301855a..009e2480 100644 --- a/src/protocols/kubernetes/argv.c +++ b/src/protocols/kubernetes/argv.c @@ -54,8 +54,8 @@ int guac_kubernetes_argv_callback(guac_user* user, const char* mimetype, /* Update Kubernetes terminal size */ guac_kubernetes_resize(client, - guac_terminal_term_height(terminal), - guac_terminal_term_width(terminal)); + guac_terminal_get_rows(terminal), + guac_terminal_get_columns(terminal)); return 0; diff --git a/src/protocols/kubernetes/input.c b/src/protocols/kubernetes/input.c index b3f5d259..a24f4645 100644 --- a/src/protocols/kubernetes/input.c +++ b/src/protocols/kubernetes/input.c @@ -87,8 +87,8 @@ int guac_kubernetes_user_size_handler(guac_user* user, int width, int height) { /* Update Kubernetes terminal window size if connected */ guac_kubernetes_resize(client, - guac_terminal_term_height(terminal), - guac_terminal_term_width(terminal)); + guac_terminal_get_rows(terminal), + guac_terminal_get_columns(terminal)); return 0; } diff --git a/src/protocols/kubernetes/kubernetes.c b/src/protocols/kubernetes/kubernetes.c index f7142975..4acaa4d8 100644 --- a/src/protocols/kubernetes/kubernetes.c +++ b/src/protocols/kubernetes/kubernetes.c @@ -241,7 +241,7 @@ void* guac_kubernetes_client_thread(void* data) { /* Create terminal options with required parameters */ guac_terminal_options* options = guac_terminal_options_create( - client, settings->width, settings->height, settings->resolution); + settings->width, settings->height, settings->resolution); /* Set optional parameters */ options->disable_copy = settings->disable_copy; @@ -252,7 +252,7 @@ void* guac_kubernetes_client_thread(void* data) { options->backspace = settings->backspace; /* Create terminal */ - kubernetes_client->term = guac_terminal_create(options); + kubernetes_client->term = guac_terminal_create(client, options); /* Free options struct now that it's been used */ free(options); @@ -413,8 +413,8 @@ void guac_kubernetes_force_redraw(guac_client* client) { /* Get current terminal dimensions */ guac_terminal* term = kubernetes_client->term; - int rows = guac_terminal_term_height(term); - int columns = guac_terminal_term_width(term); + int rows = guac_terminal_get_rows(term); + int columns = guac_terminal_get_columns(term); /* Force a redraw by increasing the terminal size by one character in * each dimension and then resizing it back to normal (the same technique diff --git a/src/protocols/ssh/argv.c b/src/protocols/ssh/argv.c index f1a03834..af191f4e 100644 --- a/src/protocols/ssh/argv.c +++ b/src/protocols/ssh/argv.c @@ -54,8 +54,8 @@ int guac_ssh_argv_callback(guac_user* user, const char* mimetype, } /* Update SSH pty size if connected */ - int term_width = guac_terminal_term_width(terminal); - int term_height = guac_terminal_term_height(terminal); + int term_width = guac_terminal_get_columns(terminal); + int term_height = guac_terminal_get_rows(terminal); if (ssh_client->term_channel != NULL) { pthread_mutex_lock(&(ssh_client->term_channel_lock)); libssh2_channel_request_pty_size(ssh_client->term_channel, diff --git a/src/protocols/ssh/input.c b/src/protocols/ssh/input.c index f5826127..73f45fce 100644 --- a/src/protocols/ssh/input.c +++ b/src/protocols/ssh/input.c @@ -88,8 +88,8 @@ int guac_ssh_user_size_handler(guac_user* user, int width, int height) { if (ssh_client->term_channel != NULL) { pthread_mutex_lock(&(ssh_client->term_channel_lock)); libssh2_channel_request_pty_size(ssh_client->term_channel, - guac_terminal_term_width(terminal), - guac_terminal_term_height(terminal)); + guac_terminal_get_columns(terminal), + guac_terminal_get_rows(terminal)); pthread_mutex_unlock(&(ssh_client->term_channel_lock)); } diff --git a/src/protocols/ssh/ssh.c b/src/protocols/ssh/ssh.c index 8249ac07..e1a16541 100644 --- a/src/protocols/ssh/ssh.c +++ b/src/protocols/ssh/ssh.c @@ -240,7 +240,7 @@ void* ssh_client_thread(void* data) { /* Create terminal options with required parameters */ guac_terminal_options* options = guac_terminal_options_create( - client, settings->width, settings->height, settings->resolution); + settings->width, settings->height, settings->resolution); /* Set optional parameters */ options->disable_copy = settings->disable_copy; @@ -251,7 +251,7 @@ void* ssh_client_thread(void* data) { options->backspace = settings->backspace; /* Create terminal */ - ssh_client->term = guac_terminal_create(options); + ssh_client->term = guac_terminal_create(client, options); /* Free options struct now that it's been used */ free(options); @@ -377,8 +377,8 @@ void* ssh_client_thread(void* data) { " Backspace may not work as expected."); /* Request PTY */ - int term_height = guac_terminal_term_height(ssh_client->term); - int term_width = guac_terminal_term_width(ssh_client->term); + int term_height = guac_terminal_get_rows(ssh_client->term); + int term_width = guac_terminal_get_columns(ssh_client->term); if (libssh2_channel_request_pty_ex(ssh_client->term_channel, settings->terminal_type, strlen(settings->terminal_type), ssh_ttymodes, ttymodeBytes, term_width, term_height, 0, 0)) { diff --git a/src/protocols/telnet/argv.c b/src/protocols/telnet/argv.c index 25b1dbe1..59814a71 100644 --- a/src/protocols/telnet/argv.c +++ b/src/protocols/telnet/argv.c @@ -55,8 +55,8 @@ int guac_telnet_argv_callback(guac_user* user, const char* mimetype, /* Update terminal window size if connected */ if (telnet_client->telnet != NULL && telnet_client->naws_enabled) guac_telnet_send_naws(telnet_client->telnet, - guac_terminal_term_width(terminal), - guac_terminal_term_height(terminal)); + guac_terminal_get_columns(terminal), + guac_terminal_get_rows(terminal)); return 0; diff --git a/src/protocols/telnet/input.c b/src/protocols/telnet/input.c index 9ecfbaba..dbd2e5f8 100644 --- a/src/protocols/telnet/input.c +++ b/src/protocols/telnet/input.c @@ -136,8 +136,8 @@ int guac_telnet_user_size_handler(guac_user* user, int width, int height) { /* Update terminal window size if connected */ if (telnet_client->telnet != NULL && telnet_client->naws_enabled) guac_telnet_send_naws(telnet_client->telnet, - guac_terminal_term_width(terminal), - guac_terminal_term_height(terminal)); + guac_terminal_get_columns(terminal), + guac_terminal_get_rows(terminal)); return 0; } diff --git a/src/protocols/telnet/telnet.c b/src/protocols/telnet/telnet.c index 61417854..242542e2 100644 --- a/src/protocols/telnet/telnet.c +++ b/src/protocols/telnet/telnet.c @@ -303,8 +303,8 @@ static void __guac_telnet_event_handler(telnet_t* telnet, telnet_event_t* event, if (event->neg.telopt == TELNET_TELOPT_NAWS) { telnet_client->naws_enabled = 1; guac_telnet_send_naws(telnet, - guac_terminal_term_width(telnet_client->term), - guac_terminal_term_height(telnet_client->term)); + guac_terminal_get_columns(telnet_client->term), + guac_terminal_get_rows(telnet_client->term)); } break; @@ -589,7 +589,7 @@ void* guac_telnet_client_thread(void* data) { /* Create terminal options with required parameters */ guac_terminal_options* options = guac_terminal_options_create( - client, settings->width, settings->height, settings->resolution); + settings->width, settings->height, settings->resolution); /* Set optional parameters */ options->disable_copy = settings->disable_copy; @@ -600,7 +600,7 @@ void* guac_telnet_client_thread(void* data) { options->backspace = settings->backspace; /* Create terminal */ - telnet_client->term = guac_terminal_create(options); + telnet_client->term = guac_terminal_create(client, options); /* Free options struct now that it's been used */ free(options); diff --git a/src/terminal/terminal.c b/src/terminal/terminal.c index ace2056a..c67998cc 100644 --- a/src/terminal/terminal.c +++ b/src/terminal/terminal.c @@ -190,11 +190,11 @@ int guac_terminal_available_scroll(guac_terminal* term) { return guac_terminal_effective_buffer_length(term) - term->term_height; } -int guac_terminal_term_height(guac_terminal* term) { +int guac_terminal_get_rows(guac_terminal* term) { return term->term_height; } -int guac_terminal_term_width(guac_terminal* term) { +int guac_terminal_get_columns(guac_terminal* term) { return term->term_width; } @@ -315,14 +315,12 @@ void* guac_terminal_thread(void* data) { } -guac_terminal_options* guac_terminal_options_create(guac_client* client, +guac_terminal_options* guac_terminal_options_create( int width, int height, int dpi) { - guac_terminal_options* options = malloc(sizeof(guac_terminal_options)); /* Set all required parameters */ - options->client = client; options->width = width; options->height = height; options->dpi = dpi; @@ -338,7 +336,8 @@ guac_terminal_options* guac_terminal_options_create(guac_client* client, return options; } -guac_terminal* guac_terminal_create(guac_terminal_options* options) { +guac_terminal* guac_terminal_create(guac_client* client, + guac_terminal_options* options) { /* The width and height may need to be changed from what's requested */ int width = options->width; @@ -360,7 +359,7 @@ guac_terminal* guac_terminal_create(guac_terminal_options* options) { guac_terminal_color (*default_palette)[256] = (guac_terminal_color(*)[256]) malloc(sizeof(guac_terminal_color[256])); - guac_terminal_parse_color_scheme(options->client, options->color_scheme, + guac_terminal_parse_color_scheme(client, options->color_scheme, &default_char.attributes.foreground, &default_char.attributes.background, default_palette); @@ -372,7 +371,7 @@ guac_terminal* guac_terminal_create(guac_terminal_options* options) { guac_terminal* term = malloc(sizeof(guac_terminal)); term->started = false; - term->client = options->client; + term->client = client; term->upload_path_handler = NULL; term->file_download_handler = NULL; @@ -405,7 +404,7 @@ guac_terminal* guac_terminal_create(guac_terminal_options* options) { &default_char); /* Init display */ - term->display = guac_terminal_display_alloc(options->client, + term->display = guac_terminal_display_alloc(client, options->font_name, options->font_size, options->dpi, &default_char.attributes.foreground, &default_char.attributes.background, @@ -413,13 +412,13 @@ guac_terminal* guac_terminal_create(guac_terminal_options* options) { /* Fail if display init failed */ if (term->display == NULL) { - guac_client_log(options->client, GUAC_LOG_DEBUG, "Display initialization failed"); + guac_client_log(client, GUAC_LOG_DEBUG, "Display initialization failed"); free(term); return NULL; } /* Init common cursor */ - term->cursor = guac_common_cursor_alloc(options->client); + term->cursor = guac_common_cursor_alloc(client); /* Init terminal state */ term->current_attributes = default_char.attributes; diff --git a/src/terminal/terminal/terminal.h b/src/terminal/terminal/terminal.h index 3c7c8e15..c78f61f4 100644 --- a/src/terminal/terminal/terminal.h +++ b/src/terminal/terminal/terminal.h @@ -167,11 +167,6 @@ typedef guac_stream* guac_terminal_file_download_handler(guac_client* client, ch */ typedef struct guac_terminal_options { - /** - * The client to which the terminal will be rendered. - */ - guac_client* client; - /** * Whether copying from the terminal clipboard should be blocked. If set, * the contents of the terminal can still be copied, but will be usable @@ -242,6 +237,9 @@ typedef struct guac_terminal_options { * either the underlying connection has truly succeeded, or until visible * terminal output or user input is required. * + * @param client + * The client to which the terminal will be rendered. + * * @param terminal_options * The configuration used for instantiating the terminal. For information * about the options, see the guac_terminal_options definition. @@ -250,7 +248,8 @@ typedef struct guac_terminal_options { * A new guac_terminal having the given font, dimensions, and attributes * which renders all text to the given client. */ -guac_terminal* guac_terminal_create(guac_terminal_options* terminal_options); +guac_terminal* guac_terminal_create(guac_client* client, + guac_terminal_options* terminal_options); /** * Create a new guac_terminal_options struct. All parameters are required. @@ -260,9 +259,6 @@ guac_terminal* guac_terminal_create(guac_terminal_options* terminal_options); * The guac_terminal_options struct should only be created using this * constructor. * - * @param guac_client - * The client to which the terminal will be rendered. - * * @param width * The width of the terminal, in pixels. * @@ -277,7 +273,7 @@ guac_terminal* guac_terminal_create(guac_terminal_options* terminal_options); * A new terminal options struct with all required options populated, * ready to have any defaults overriden as needed. */ -guac_terminal_options* guac_terminal_options_create(guac_client* client, +guac_terminal_options* guac_terminal_options_create( int width, int height, int dpi); /** @@ -533,7 +529,7 @@ int guac_terminal_available_scroll(guac_terminal* term); * @return * The height of the terminal, in characters. */ -int guac_terminal_term_height(guac_terminal* term); +int guac_terminal_get_rows(guac_terminal* term); /** * Returns the width of the given terminal, in characters. @@ -544,14 +540,16 @@ int guac_terminal_term_height(guac_terminal* term); * @return * The width of the terminal, in characters. */ -int guac_terminal_term_width(guac_terminal* term); +int guac_terminal_get_columns(guac_terminal* term); /** * Clears the clipboard contents for a given terminal, and assigns a new * mimetype for future data. * - * @param terminal The terminal whose clipboard is being reset. - * @param mimetype The mimetype of future data. + * @param terminal + * The terminal whose clipboard is being reset. + * @param mimetype + * The mimetype of future data. */ void guac_terminal_clipboard_reset(guac_terminal* terminal, const char* mimetype); @@ -561,9 +559,12 @@ void guac_terminal_clipboard_reset(guac_terminal* terminal, * terminal. The data must match the mimetype chosen for the clipboard data by * guac_terminal_clipboard_reset(). * - * @param terminal The terminal whose clipboard is being appended to. - * @param data The data to append. - * @param length The number of bytes to append from the data given. + * @param terminal + * The terminal whose clipboard is being appended to. + * @param data + * The data to append. + * @param length + * The number of bytes to append from the data given. */ void guac_terminal_clipboard_append(guac_terminal* terminal, const char* data, int length); @@ -573,8 +574,10 @@ void guac_terminal_clipboard_append(guac_terminal* terminal, * given terminal. This function must be called whenever a user leaves a * terminal connection. * - * @param terminal The terminal that the given user is leaving. - * @param user The user who is disconnecting. + * @param terminal + * The terminal that the given user is leaving. + * @param user + * The user who is disconnecting. */ void guac_terminal_remove_user(guac_terminal* terminal, guac_user* user); diff --git a/src/terminal/terminal/terminal_priv.h b/src/terminal/terminal/terminal_priv.h index 6b165444..b4da851a 100644 --- a/src/terminal/terminal/terminal_priv.h +++ b/src/terminal/terminal/terminal_priv.h @@ -18,8 +18,8 @@ */ -#ifndef _GUAC_TERMINAL_PRIV_H -#define _GUAC_TERMINAL_PRIV_H +#ifndef GUAC_TERMINAL_PRIV_H +#define GUAC_TERMINAL_PRIV_H #include "common/clipboard.h" #include "terminal/terminal.h"