From 46e2f11b93bb3dfed7b9f5c780961d18cb327b12 Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 19 Jul 2015 22:48:12 +0100 Subject: [PATCH 1/3] Removed /mouse command --- src/command/command.c | 12 ++-------- src/command/commands.c | 13 +++-------- src/command/commands.h | 1 - src/config/preferences.c | 3 --- src/config/preferences.h | 1 - src/ui/console.c | 10 --------- src/ui/core.c | 4 ---- src/ui/inputwin.c | 2 +- src/ui/ui.h | 1 - src/ui/window.c | 47 ---------------------------------------- src/ui/window.h | 1 - 11 files changed, 6 insertions(+), 89 deletions(-) diff --git a/src/command/command.c b/src/command/command.c index 999cab23..9d33f61b 100644 --- a/src/command/command.c +++ b/src/command/command.c @@ -817,14 +817,6 @@ static struct cmd_t command_defs[] = "goodbye : Show a message in the title when exiting profanity.", NULL } } }, - { "/mouse", - cmd_mouse, parse_args, 1, 1, &cons_mouse_setting, - { "/mouse on|off", "Use profanity mouse handling.", - { "/mouse on|off", - "-------------", - "This feature is experimental, default is 'off'.", - NULL } } }, - { "/alias", cmd_alias, parse_args_with_freetext, 1, 3, NULL, { "/alias add|remove|list [name value]", "Add your own command aliases.", @@ -1987,8 +1979,8 @@ _cmd_complete_parameters(ProfWin *window, const char * const input) // autocomplete boolean settings gchar *boolean_choices[] = { "/beep", "/intype", "/states", "/outtype", - "/flash", "/splash", "/chlog", "/grlog", "/mouse", "/history", - "/vercheck", "/privileges", "/presence", "/wrap", "/winstidy", "/carbons", "/encwarn" }; + "/flash", "/splash", "/chlog", "/grlog", "/history", "/vercheck", + "/privileges", "/presence", "/wrap", "/winstidy", "/carbons", "/encwarn" }; for (i = 0; i < ARRAY_SIZE(boolean_choices); i++) { result = autocomplete_param_with_func(input, boolean_choices[i], prefs_autocomplete_boolean_choice); diff --git a/src/command/commands.c b/src/command/commands.c index 396aa880..810772d5 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -840,9 +840,9 @@ cmd_help(ProfWin *window, gchar **args, struct cmd_help_t help) } else if (strcmp(args[0], "settings") == 0) { gchar *filter[] = { "/account", "/autoaway", "/autoping", "/autoconnect", "/beep", "/carbons", "/chlog", "/flash", "/gone", "/grlog", "/history", "/intype", - "/log", "/mouse", "/notify", "/outtype", "/prefs", "/priority", - "/reconnect", "/roster", "/splash", "/states", "/statuses", "/theme", - "/titlebar", "/vercheck", "/privileges", "/occupants", "/presence", "/wrap", "/winstidy" }; + "/log", "/notify", "/outtype", "/prefs", "/priority", "/reconnect", "/roster", + "/splash", "/states", "/statuses", "/theme", "/titlebar", "/vercheck", + "/privileges", "/occupants", "/presence", "/wrap", "/winstidy" }; _cmd_show_filtered_help("Settings commands", filter, ARRAY_SIZE(filter)); } else if (strcmp(args[0], "navigation") == 0) { @@ -4079,13 +4079,6 @@ cmd_grlog(ProfWin *window, gchar **args, struct cmd_help_t help) return result; } -gboolean -cmd_mouse(ProfWin *window, gchar **args, struct cmd_help_t help) -{ - return _cmd_set_boolean_preference(args[0], help, - "Mouse handling", PREF_MOUSE); -} - gboolean cmd_history(ProfWin *window, gchar **args, struct cmd_help_t help) { diff --git a/src/command/commands.h b/src/command/commands.h index 6f2bada2..0b135d71 100644 --- a/src/command/commands.h +++ b/src/command/commands.h @@ -99,7 +99,6 @@ gboolean cmd_invites(ProfWin *window, gchar **args, struct cmd_help_t help); gboolean cmd_join(ProfWin *window, gchar **args, struct cmd_help_t help); gboolean cmd_leave(ProfWin *window, gchar **args, struct cmd_help_t help); gboolean cmd_log(ProfWin *window, gchar **args, struct cmd_help_t help); -gboolean cmd_mouse(ProfWin *window, gchar **args, struct cmd_help_t help); gboolean cmd_msg(ProfWin *window, gchar **args, struct cmd_help_t help); gboolean cmd_nick(ProfWin *window, gchar **args, struct cmd_help_t help); gboolean cmd_notify(ProfWin *window, gchar **args, struct cmd_help_t help); diff --git a/src/config/preferences.c b/src/config/preferences.c index 3662c4ca..ccb1ae3a 100644 --- a/src/config/preferences.c +++ b/src/config/preferences.c @@ -506,7 +506,6 @@ _get_group(preference_t pref) case PREF_FLASH: case PREF_INTYPE: case PREF_HISTORY: - case PREF_MOUSE: case PREF_OCCUPANTS: case PREF_OCCUPANTS_JID: case PREF_STATUSES: @@ -599,8 +598,6 @@ _get_key(preference_t pref) return "receipts.send"; case PREF_RECEIPTS_REQUEST: return "receipts.request"; - case PREF_MOUSE: - return "mouse"; case PREF_OCCUPANTS: return "occupants"; case PREF_OCCUPANTS_JID: diff --git a/src/config/preferences.h b/src/config/preferences.h index 933f7991..f479f7a6 100644 --- a/src/config/preferences.h +++ b/src/config/preferences.h @@ -57,7 +57,6 @@ typedef enum { PREF_CARBONS, PREF_RECEIPTS_SEND, PREF_RECEIPTS_REQUEST, - PREF_MOUSE, PREF_OCCUPANTS, PREF_OCCUPANTS_SIZE, PREF_OCCUPANTS_JID, diff --git a/src/ui/console.c b/src/ui/console.c index ceb02e08..e07ba518 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -981,15 +981,6 @@ cons_vercheck_setting(void) cons_show("Version checking (/vercheck) : OFF"); } -void -cons_mouse_setting(void) -{ - if (prefs_get_boolean(PREF_MOUSE)) - cons_show("Mouse handling (/mouse) : ON"); - else - cons_show("Mouse handling (/mouse) : OFF"); -} - void cons_statuses_setting(void) { @@ -1066,7 +1057,6 @@ cons_show_ui_prefs(void) cons_time_setting(); cons_resource_setting(); cons_vercheck_setting(); - cons_mouse_setting(); cons_statuses_setting(); cons_occupants_setting(); cons_roster_setting(); diff --git a/src/ui/core.c b/src/ui/core.c index fa419e45..5f85a3cd 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -101,10 +101,6 @@ ui_init(void) cbreak(); noecho(); keypad(stdscr, TRUE); - if (prefs_get_boolean(PREF_MOUSE)) { - mousemask(ALL_MOUSE_EVENTS, NULL); - mouseinterval(5); - } ui_load_colours(); refresh(); create_title_bar(); diff --git a/src/ui/inputwin.c b/src/ui/inputwin.c index 1ea46984..cb4d7a7e 100644 --- a/src/ui/inputwin.c +++ b/src/ui/inputwin.c @@ -286,7 +286,7 @@ _inp_printable(const wint_t ch) bytes[utf_len] = '\0'; gunichar unichar = g_utf8_get_char(bytes); - return g_unichar_isprint(unichar) && (ch != KEY_MOUSE); + return g_unichar_isprint(unichar); } static int diff --git a/src/ui/ui.h b/src/ui/ui.h index 7682f57b..637c8f75 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -297,7 +297,6 @@ void cons_presence_setting(void); void cons_wrap_setting(void); void cons_winstidy_setting(void); void cons_time_setting(void); -void cons_mouse_setting(void); void cons_statuses_setting(void); void cons_titlebar_setting(void); void cons_notify_setting(void); diff --git a/src/ui/window.c b/src/ui/window.c index c008e44d..6c76b5f8 100644 --- a/src/ui/window.c +++ b/src/ui/window.c @@ -499,53 +499,6 @@ win_resize(ProfWin *window) win_redraw(window); } -void -win_mouse(ProfWin *window, const wint_t ch, const int result) -{ - int rows = getmaxy(stdscr); - int y = getcury(window->layout->win); - - int page_space = rows - 4; - int *page_start = &(window->layout->y_pos); - - if (prefs_get_boolean(PREF_MOUSE)) { - MEVENT mouse_event; - - if (ch == KEY_MOUSE) { - if (getmouse(&mouse_event) == OK) { - -#ifdef PLATFORM_CYGWIN - if (mouse_event.bstate & BUTTON5_PRESSED) { // mouse wheel down -#else - if (mouse_event.bstate & BUTTON2_PRESSED) { // mouse wheel down -#endif - *page_start += 4; - - // only got half a screen, show full screen - if ((y - (*page_start)) < page_space) - *page_start = y - page_space; - - // went past end, show full screen - else if (*page_start >= y) - *page_start = y - page_space; - - window->layout->paged = 1; - win_update_virtual(window); - } else if (mouse_event.bstate & BUTTON4_PRESSED) { // mouse wheel up - *page_start -= 4; - - // went past beginning, show first page - if (*page_start < 0) - *page_start = 0; - - window->layout->paged = 1; - win_update_virtual(window); - } - } - } - } -} - void win_update_virtual(ProfWin *window) { diff --git a/src/ui/window.h b/src/ui/window.h index 2728c66c..35f82f1c 100644 --- a/src/ui/window.h +++ b/src/ui/window.h @@ -68,7 +68,6 @@ void win_redraw(ProfWin *window); int win_roster_cols(void); int win_occpuants_cols(void); void win_printline_nowrap(WINDOW *win, char *msg); -void win_mouse(ProfWin *current, const wint_t ch, const int result); void win_mark_received(ProfWin *window, const char * const id); gboolean win_has_active_subwin(ProfWin *window); From b63ede7964ffb932d27fac0bfe22aae7b92de2a5 Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 19 Jul 2015 22:56:22 +0100 Subject: [PATCH 2/3] Fixed time preference display --- src/ui/console.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/ui/console.c b/src/ui/console.c index e07ba518..98691a0a 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -955,20 +955,16 @@ cons_time_setting(void) { char *pref_time = prefs_get_string(PREF_TIME); if (g_strcmp0(pref_time, "off") == 0) - cons_show("Time (/time) : OFF"); + cons_show("Time main (/time) : OFF"); else - cons_show("Time (/time) : %s", pref_time); - + cons_show("Time main (/time) : %s", pref_time); prefs_free_string(pref_time); char *pref_time_statusbar = prefs_get_string(PREF_TIME_STATUSBAR); - if (g_strcmp0(pref_time_statusbar, "minutes") == 0) - cons_show("Time statusbar (/time) : minutes"); - else if (g_strcmp0(pref_time_statusbar, "off") == 0) + if (g_strcmp0(pref_time_statusbar, "off") == 0) cons_show("Time statusbar (/time) : OFF"); else - cons_show("Time statusbar (/time) : seconds"); - + cons_show("Time statusbar (/time) : %s", pref_time_statusbar); prefs_free_string(pref_time_statusbar); } From bdcc0ddbf813f9b19016eb873d5abe0d9d417996 Mon Sep 17 00:00:00 2001 From: James Booth Date: Mon, 20 Jul 2015 21:28:25 +0100 Subject: [PATCH 3/3] Added carbon message tests --- tests/functionaltests/functionaltests.c | 6 +++ tests/functionaltests/test_carbons.c | 70 +++++++++++++++++++++++++ tests/functionaltests/test_carbons.h | 3 ++ 3 files changed, 79 insertions(+) diff --git a/tests/functionaltests/functionaltests.c b/tests/functionaltests/functionaltests.c index 60ad341c..b665ad4b 100644 --- a/tests/functionaltests/functionaltests.c +++ b/tests/functionaltests/functionaltests.c @@ -124,6 +124,12 @@ int main(int argc, char* argv[]) { unit_test_setup_teardown(send_disable_carbons, init_prof_test, close_prof_test), + unit_test_setup_teardown(receive_carbon, + init_prof_test, + close_prof_test), + unit_test_setup_teardown(receive_self_carbon, + init_prof_test, + close_prof_test), }; return run_tests(all_tests); diff --git a/tests/functionaltests/test_carbons.c b/tests/functionaltests/test_carbons.c index f0a8214b..96639d60 100644 --- a/tests/functionaltests/test_carbons.c +++ b/tests/functionaltests/test_carbons.c @@ -48,3 +48,73 @@ send_disable_carbons(void **state) "" )); } + +void +receive_carbon(void **state) +{ + prof_input("/carbons on"); + + prof_connect(); + assert_true(stbbr_received( + "" + )); + + stbbr_send( + "" + "10" + "On my mobile" + "" + ); + assert_true(prof_output_exact("Buddy1 (mobile) is online, \"On my mobile\"")); + prof_input("/msg Buddy1"); + prof_output_exact("unencrypted"); + + stbbr_send( + "" + "" + "" + "" + "test carbon from recipient" + "" + "" + "" + "" + ); + + assert_true(prof_output_regex("Buddy1/mobile: .+test carbon from recipient")); +} + +void +receive_self_carbon(void **state) +{ + prof_input("/carbons on"); + + prof_connect(); + assert_true(stbbr_received( + "" + )); + + stbbr_send( + "" + "10" + "On my mobile" + "" + ); + assert_true(prof_output_exact("Buddy1 (mobile) is online, \"On my mobile\"")); + prof_input("/msg Buddy1"); + prof_output_exact("unencrypted"); + + stbbr_send( + "" + "" + "" + "" + "self sent carbon" + "" + "" + "" + "" + ); + + assert_true(prof_output_regex("me: .+self sent carbon")); +} diff --git a/tests/functionaltests/test_carbons.h b/tests/functionaltests/test_carbons.h index 6f756d33..6d24c8ae 100644 --- a/tests/functionaltests/test_carbons.h +++ b/tests/functionaltests/test_carbons.h @@ -1,3 +1,6 @@ void send_enable_carbons(void **state); void connect_with_carbons_enabled(void **state); void send_disable_carbons(void **state); +void receive_carbon(void **state); +void receive_self_carbon(void **state); +