diff --git a/Makefile.am b/Makefile.am index abd1a1ff..300116b1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,7 +19,6 @@ core_sources = \ src/ui/titlebar.h src/ui/statusbar.h src/ui/inputwin.h \ src/ui/console.c src/ui/notifier.c \ src/ui/windows.c src/ui/windows.h \ - src/ui/keyhandlers.c src/ui/keyhandlers.h \ src/ui/rosterwin.c src/ui/occupantswin.c \ src/ui/buffer.c src/ui/buffer.h \ src/command/command.h src/command/command.c \ @@ -28,7 +27,6 @@ core_sources = \ src/tools/parser.h \ src/tools/p_sha1.h src/tools/p_sha1.c \ src/tools/autocomplete.c src/tools/autocomplete.h \ - src/tools/history.c src/tools/history.h \ src/tools/tinyurl.c src/tools/tinyurl.h \ src/config/accounts.c src/config/accounts.h \ src/config/account.c src/config/account.h \ @@ -51,7 +49,6 @@ tests_sources = \ src/tools/parser.h \ src/tools/p_sha1.h src/tools/p_sha1.c \ src/tools/autocomplete.c src/tools/autocomplete.h \ - src/tools/history.c src/tools/history.h \ src/tools/tinyurl.c src/tools/tinyurl.h \ src/config/accounts.h \ src/config/account.c src/config/account.h \ @@ -59,7 +56,6 @@ tests_sources = \ src/config/theme.c src/config/theme.h \ src/ui/windows.c src/ui/windows.h \ src/ui/window.c src/ui/window.h \ - src/ui/keyhandlers.c src/ui/keyhandlers.h \ src/ui/buffer.c \ src/ui/titlebar.c src/ui/statusbar.c src/ui/inputwin.c \ src/ui/titlebar.h src/ui/statusbar.h src/ui/inputwin.h \ @@ -85,7 +81,6 @@ tests_sources = \ tests/test_common.c tests/test_common.h \ tests/test_contact.c tests/test_contact.h \ tests/test_form.c tests/test_form.h \ - tests/test_history.c tests/test_history.h \ tests/test_jid.c tests/test_jid.h \ tests/test_muc.c tests/test_muc.h \ tests/test_parser.c tests/test_parser.h \ @@ -94,7 +89,6 @@ tests_sources = \ tests/test_server_events.c tests/test_server_events.h \ tests/test_autocomplete.c tests/test_autocomplete.h \ tests/test_chat_session.c tests/test_chat_session.h \ - tests/test_keyhandlers.c tests/test_keyhandlers.h \ tests/testsuite.c main_source = src/main.c diff --git a/src/command/command.c b/src/command/command.c index 8e16276b..909c954c 100644 --- a/src/command/command.c +++ b/src/command/command.c @@ -1736,11 +1736,6 @@ cmd_process_input(char *inp) gboolean result = FALSE; g_strstrip(inp); - // add line to history if something typed - if (strlen(inp) > 0) { - ui_inp_history_append(inp); - } - // just carry on if no input if (strlen(inp) == 0) { result = TRUE; diff --git a/src/tools/history.c b/src/tools/history.c deleted file mode 100644 index def10feb..00000000 --- a/src/tools/history.c +++ /dev/null @@ -1,283 +0,0 @@ -/* - * history.c - * - * Copyright (C) 2012 - 2014 James Booth - * - * This file is part of Profanity. - * - * Profanity is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Profanity is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Profanity. If not, see . - * - * In addition, as a special exception, the copyright holders give permission to - * link the code of portions of this program with the OpenSSL library under - * certain conditions as described in each individual source file, and - * distribute linked combinations including the two. - * - * You must obey the GNU General Public License in all respects for all of the - * code used other than OpenSSL. If you modify file(s) with this exception, you - * may extend this exception to your version of the file(s), but you are not - * obligated to do so. If you do not wish to do so, delete this exception - * statement from your version. If you delete this exception statement from all - * source files in the program, then also delete it here. - * - */ - -#include -#include - -#include - -#include "history.h" - -struct history_session_t { - GList *items; - GList *sess_curr; - GList *sess_new; - GList *orig_curr; -}; - -struct history_t { - GList *items; - guint max_size; - struct history_session_t session; -}; - -static void _replace_history_with_session(History history); -static gboolean _adding_new(History history); -static void _reset_session(History history); -static gboolean _has_session(History history); -static void _remove_first(History history); -static void _update_current_session_item(History history, char *item); -static void _add_to_history(History history, char *item); -static void _remove_last_session_item(History history); -static void _replace_current_with_original(History history); -static void _create_session(History history); -static void _session_previous(History history); -static void _session_next(History history); - -History -history_new(unsigned int size) -{ - History new_history = malloc(sizeof(struct history_t)); - new_history->items = NULL; - new_history->max_size = size; - - _reset_session(new_history); - - return new_history; -} - -void -history_append(History history, char *item) -{ - char *copied = ""; - if (item != NULL) { - copied = strdup(item); - } - - if (history->items == NULL) { - _add_to_history(history, copied); - return; - } - - if (!_has_session(history)) { - if (g_list_length(history->items) == history->max_size) { - _remove_first(history); - } - - _add_to_history(history, copied); - - } else { - _update_current_session_item(history, copied); - - if (_adding_new(history)) { - if (strcmp(history->session.sess_curr->data, "") == 0) { - _remove_last_session_item(history); - } - - _replace_history_with_session(history); - - } else { - _remove_last_session_item(history); - - char *new = strdup(history->session.sess_curr->data); - history->session.items = g_list_append(history->session.items, new); - - _replace_current_with_original(history); - _replace_history_with_session(history); - } - } -} - -char * -history_previous(History history, char *item) -{ - // no history - if (history->items == NULL) { - return NULL; - } - - char *copied = ""; - if (item != NULL) { - copied = strdup(item); - } - - if (!_has_session(history)) { - _create_session(history); - - // add the new item - history->session.items = g_list_append(history->session.items, copied); - history->session.sess_new = g_list_last(history->session.items); - - char *result = strdup(history->session.sess_curr->data); - return result; - } else { - _update_current_session_item(history, copied); - _session_previous(history); - } - - char *result = strdup(history->session.sess_curr->data); - return result; -} - -char * -history_next(History history, char *item) -{ - // no history, or no session, return NULL - if ((history->items == NULL) || (history->session.items == NULL)) { - return NULL; - } - - if (g_list_next(history->session.sess_curr) == NULL) { - return NULL; - } - - char *copied = ""; - if (item != NULL) { - copied = strdup(item); - } - - _update_current_session_item(history, copied); - _session_next(history); - - char *result = strdup(history->session.sess_curr->data); - return result; -} - -static void -_replace_history_with_session(History history) -{ - g_list_free(history->items); - history->items = g_list_copy(history->session.items); - - if (g_list_length(history->items) > history->max_size) { - _remove_first(history); - } - - _reset_session(history); -} - -static gboolean -_adding_new(History history) -{ - return (history->session.sess_curr == - g_list_last(history->session.items)); -} - -static void -_reset_session(History history) -{ - history->session.items = NULL; - history->session.sess_curr = NULL; - history->session.sess_new = NULL; - history->session.orig_curr = NULL; -} - -static gboolean -_has_session(History history) -{ - return (history->session.items != NULL); -} - -static void -_remove_first(History history) -{ - GList *first = g_list_first(history->items); - char *first_item = first->data; - history->items = g_list_remove(history->items, first_item); -} - -static void -_update_current_session_item(History history, char *item) -{ - history->session.sess_curr->data = item; -} - -static void -_add_to_history(History history, char *item) -{ - history->items = g_list_append(history->items, item); -} - -static void -_remove_last_session_item(History history) -{ - history->session.items = g_list_reverse(history->session.items); - GList *first = g_list_first(history->session.items); - history->session.items = - g_list_remove(history->session.items, first->data); - history->session.items = g_list_reverse(history->session.items); -} - -static void -_replace_current_with_original(History history) -{ - history->session.sess_curr->data = strdup(history->session.orig_curr->data); -} - -static void -_create_session(History history) -{ - history->session.items = g_list_copy(history->items); - history->session.sess_curr = g_list_last(history->session.items); - history->session.orig_curr = g_list_last(history->items); -} - -static void -_session_previous(History history) -{ - history->session.sess_curr = - g_list_previous(history->session.sess_curr); - if (history->session.orig_curr == NULL) - history->session.orig_curr = g_list_last(history->items); - else - history->session.orig_curr = - g_list_previous(history->session.orig_curr); - - if (history->session.sess_curr == NULL) { - history->session.sess_curr = g_list_first(history->session.items); - history->session.orig_curr = g_list_first(history->items); - } -} - -static void -_session_next(History history) -{ - history->session.sess_curr = g_list_next(history->session.sess_curr); - history->session.orig_curr = g_list_next(history->session.orig_curr); - - if (history->session.sess_curr == NULL) { - history->session.sess_curr = g_list_last(history->session.items); - history->session.orig_curr = NULL; - } -} diff --git a/src/tools/history.h b/src/tools/history.h deleted file mode 100644 index 7b334718..00000000 --- a/src/tools/history.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * history.h - * - * Copyright (C) 2012 - 2014 James Booth - * - * This file is part of Profanity. - * - * Profanity is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Profanity is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Profanity. If not, see . - * - * In addition, as a special exception, the copyright holders give permission to - * link the code of portions of this program with the OpenSSL library under - * certain conditions as described in each individual source file, and - * distribute linked combinations including the two. - * - * You must obey the GNU General Public License in all respects for all of the - * code used other than OpenSSL. If you modify file(s) with this exception, you - * may extend this exception to your version of the file(s), but you are not - * obligated to do so. If you do not wish to do so, delete this exception - * statement from your version. If you delete this exception statement from all - * source files in the program, then also delete it here. - * - */ - -#ifndef HISTORY_H -#define HISTORY_H - -typedef struct history_t *History; - -History history_new(unsigned int size); -char * history_previous(History history, char *item); -char * history_next(History history, char *item); -void history_append(History history, char *item); - -#endif diff --git a/src/ui/core.c b/src/ui/core.c index 3520f81d..84a442f2 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -206,12 +206,6 @@ ui_readline(void) // return line; } -void -ui_inp_history_append(char *inp) -{ - inp_history_append(inp); -} - void ui_input_clear(void) { diff --git a/src/ui/inputwin.c b/src/ui/inputwin.c index 4b3ec296..d669f67b 100644 --- a/src/ui/inputwin.c +++ b/src/ui/inputwin.c @@ -53,7 +53,6 @@ #include "config/accounts.h" #include "config/preferences.h" #include "config/theme.h" -#include "tools/history.h" #include "log.h" #include "muc.h" #include "profanity.h" @@ -63,7 +62,6 @@ #include "ui/inputwin.h" #include "ui/windows.h" #include "xmpp/xmpp.h" -#include "ui/keyhandlers.h" #define KEY_CTRL_A 0001 #define KEY_CTRL_B 0002 @@ -78,7 +76,6 @@ #define MAX_HISTORY 100 static WINDOW *inp_win; -static History history; static struct timeval p_rl_timeout; static fd_set fds; @@ -92,15 +89,6 @@ static int line_utf8_pos; static int pad_start = 0; -static int _handle_edit(int key_type, const wint_t ch); -static int _handle_alt_key(int key); - -static void _handle_delete_previous_word(void); -static void _handle_backspace(void); - -static gboolean _is_ctrl_left(int key_type, const wint_t ch); -static gboolean _is_ctrl_right(int key_type, const wint_t ch); - static void _inp_win_update_virtual(void); static void @@ -131,7 +119,6 @@ create_input_window(void) keypad(inp_win, TRUE); wmove(inp_win, 0, 0); _inp_win_update_virtual(); - history = history_new(MAX_HISTORY); line_utf8_pos = 0; line[0] = '\0'; } @@ -207,15 +194,14 @@ gboolean inp_readline(void) { FD_ZERO(&fds); - FD_SET(fileno (rl_instream), &fds); + FD_SET(fileno(rl_instream), &fds); r = select(FD_SETSIZE, &fds, NULL, NULL, &p_rl_timeout); if (r < 0) { log_error("Readline failed."); - rl_callback_handler_remove(); return false; } - if (FD_ISSET (fileno (rl_instream), &fds)) { + if (FD_ISSET(fileno(rl_instream), &fds)) { rl_callback_read_char(); inp_write(rl_line_buffer, rl_point); } @@ -232,68 +218,68 @@ inp_close(void) rl_callback_handler_remove(); } -char * -inp_read(int *key_type, wint_t *ch) -{ - // echo off, and get some more input - noecho(); - *key_type = wget_wch(inp_win, ch); - - int bytes_len = strlen(line); - - gboolean in_command = FALSE; - if ((bytes_len > 0 && line[0] == '/') || - (bytes_len == 0 && *ch == '/')) { - in_command = TRUE; - } - - if (*key_type == ERR) { - prof_handle_idle(); - } - if ((*key_type != ERR) && (*key_type != KEY_CODE_YES) && !in_command && utf8_is_printable(*ch)) { - prof_handle_activity(); - } - - // if it wasn't an arrow key etc - if (!_handle_edit(*key_type, *ch)) { - if (utf8_is_printable(*ch) && *key_type != KEY_CODE_YES) { - if (bytes_len >= INP_WIN_MAX) { - *ch = ERR; - return NULL; - } - - int col = getcurx(inp_win); - int maxx = getmaxx(stdscr); - key_printable(line, &line_utf8_pos, &col, &pad_start, *ch, maxx); - - werase(inp_win); - waddstr(inp_win, line); - wmove(inp_win, 0, col); - _inp_win_update_virtual(); - - cmd_reset_autocomplete(); - } - } - - echo(); - - char *result = NULL; - if (*ch == '\n') { - result = strdup(line); - line[0] = '\0'; - line_utf8_pos = 0; - } - - if (*ch != ERR && *key_type != ERR) { - cons_debug("BYTE LEN = %d", strlen(line)); - cons_debug("UTF8 LEN = %d", utf8_display_len(line)); - cons_debug("CURR COL = %d", getcurx(inp_win)); - cons_debug("CURR UNI = %d", line_utf8_pos); - cons_debug(""); - } - - return result; -} +//char * +//inp_read(int *key_type, wint_t *ch) +//{ +// // echo off, and get some more input +// noecho(); +// *key_type = wget_wch(inp_win, ch); +// +// int bytes_len = strlen(line); +// +// gboolean in_command = FALSE; +// if ((bytes_len > 0 && line[0] == '/') || +// (bytes_len == 0 && *ch == '/')) { +// in_command = TRUE; +// } +// +// if (*key_type == ERR) { +// prof_handle_idle(); +// } +// if ((*key_type != ERR) && (*key_type != KEY_CODE_YES) && !in_command && utf8_is_printable(*ch)) { +// prof_handle_activity(); +// } +// +// // if it wasn't an arrow key etc +// if (!_handle_edit(*key_type, *ch)) { +// if (utf8_is_printable(*ch) && *key_type != KEY_CODE_YES) { +// if (bytes_len >= INP_WIN_MAX) { +// *ch = ERR; +// return NULL; +// } +// +// int col = getcurx(inp_win); +// int maxx = getmaxx(stdscr); +// key_printable(line, &line_utf8_pos, &col, &pad_start, *ch, maxx); +// +// werase(inp_win); +// waddstr(inp_win, line); +// wmove(inp_win, 0, col); +// _inp_win_update_virtual(); +// +// cmd_reset_autocomplete(); +// } +// } +// +// echo(); +// +// char *result = NULL; +// if (*ch == '\n') { +// result = strdup(line); +// line[0] = '\0'; +// line_utf8_pos = 0; +// } +// +// if (*ch != ERR && *key_type != ERR) { +// cons_debug("BYTE LEN = %d", strlen(line)); +// cons_debug("UTF8 LEN = %d", utf8_display_len(line)); +// cons_debug("CURR COL = %d", getcurx(inp_win)); +// cons_debug("CURR UNI = %d", line_utf8_pos); +// cons_debug(""); +// } +// +// return result; +//} void inp_get_password(char *passwd) @@ -329,572 +315,152 @@ inp_win_clear(void) _inp_win_update_virtual(); } -void -inp_history_append(char *inp) -{ - history_append(history, inp); -} - /* * Deal with command editing, return 1 if ch was an edit * key press: up, down, left, right or backspace * return 0 if it wasn't */ -static int -_handle_edit(int key_type, const wint_t ch) -{ - int col = getcurx(inp_win); - int utf8_len = g_utf8_strlen(line, -1); - int wcols = getmaxx(stdscr); - - // CTRL-LEFT - if (_is_ctrl_left(key_type, ch)) { - key_ctrl_left(line, &line_utf8_pos, &col, &pad_start, wcols); - wmove(inp_win, 0, col); - return 1; - - // CTRL-RIGHT - } else if (_is_ctrl_right(key_type, ch)) { - key_ctrl_right(line, &line_utf8_pos, &col, &pad_start, wcols); - wmove(inp_win, 0, col); - return 1; - - // ALT-LEFT - } else if ((key_type == KEY_CODE_YES) && (ch == 537 || ch == 542)) { - ui_previous_win(); - return 1; - - // ALT-RIGHT - } else if ((key_type == KEY_CODE_YES) && (ch == 552 || ch == 557)) { - ui_next_win(); - return 1; - - // other editing keys - } else { - int display_len; - int bytes_len = strlen(line); - int next_ch; - - switch(ch) { - - case 27: // ESC - // check for ALT-key - next_ch = wgetch(inp_win); - if (next_ch != ERR) { - return _handle_alt_key(next_ch); - } else { - werase(inp_win); - wmove(inp_win, 0, 0); - pad_start = 0; - line[0] = '\0'; - line_utf8_pos = 0; - _inp_win_update_virtual(); - return 1; - } - - case 127: - _handle_backspace(); - return 1; - case KEY_BACKSPACE: - if (key_type != KEY_CODE_YES) { - return 0; - } - _handle_backspace(); - return 1; - - case KEY_DC: // DEL - if (key_type != KEY_CODE_YES) { - return 0; - } - case KEY_CTRL_D: - if (line_utf8_pos == utf8_len) { - return 1; - } else if (line_utf8_pos == utf8_len-1) { - gchar *curr_ch = g_utf8_offset_to_pointer(line, line_utf8_pos); - int bytes_len_ch = strlen(curr_ch); - bytes_len -= bytes_len_ch; - line[bytes_len] = '\0'; - line_utf8_pos--; - wdelch(inp_win); - - return 1; - } else if (line_utf8_pos < utf8_len-1) { - gchar *start = g_utf8_substring(line, 0, col); - gchar *end = g_utf8_substring(line, col+1, bytes_len); - GString *new = g_string_new(start); - g_string_append(new, end); - - for (bytes_len = 0; bytes_len < strlen(new->str); bytes_len++) { - line[bytes_len] = new->str[bytes_len]; - } - line[bytes_len] = '\0'; - - g_free(start); - g_free(end); - g_string_free(new, FALSE); - - werase(inp_win); - wmove(inp_win, 0, 0); - pad_start = 0; - line[0] = '\0'; - line_utf8_pos = 0; - waddstr(inp_win, line); - wmove(inp_win, 0, col); - } - return 1; - - case KEY_LEFT: - if (key_type != KEY_CODE_YES) { - return 0; - } - case KEY_CTRL_B: - if (line_utf8_pos > 0) { - col--; - gchar *curr_ch = g_utf8_offset_to_pointer(line, line_utf8_pos); - gchar *prev_ch = g_utf8_find_prev_char(line, curr_ch); - if (prev_ch) { - gunichar uni = g_utf8_get_char(prev_ch); - if (g_unichar_iswide(uni)) { - col--; - } - } - wmove(inp_win, 0, col); - line_utf8_pos--; - - // current position off screen to left - if (col < pad_start) { - pad_start--; - _inp_win_update_virtual(); - } - } - return 1; - - case KEY_RIGHT: - if (key_type != KEY_CODE_YES) { - return 0; - } - case KEY_CTRL_F: - if (line_utf8_pos < utf8_len) { - col++; - gchar *curr_ch = g_utf8_offset_to_pointer(line, line_utf8_pos); - if (curr_ch) { - gunichar uni = g_utf8_get_char(curr_ch); - if (g_unichar_iswide(uni)) { - col++; - } - } - wmove(inp_win, 0, col); - line_utf8_pos++; - - // current position off screen to right - int wcols = getmaxx(stdscr); - if ((col - pad_start) >= wcols) { - pad_start++; - _inp_win_update_virtual(); - } - } - return 1; - - case KEY_UP: - if (key_type != KEY_CODE_YES) { - return 0; - } - case KEY_CTRL_P: - line[bytes_len] = '\0'; - char *prev = history_previous(history, line); - if (prev) { - werase(inp_win); - wmove(inp_win, 0, 0); - pad_start = 0; - line[0] = '\0'; - line_utf8_pos = 0; - strncpy(line, prev, INP_WIN_MAX); - waddstr(inp_win, line); - - int display_len = utf8_display_len(line); - wmove(inp_win, 0, display_len); - line_utf8_pos = g_utf8_strlen(line, -1); - - int wcols = getmaxx(stdscr); - if (display_len > wcols-2) { - pad_start = display_len - wcols + 1; - _inp_win_update_virtual(); - } - } - return 1; - - case KEY_DOWN: - if (key_type != KEY_CODE_YES) { - return 0; - } - case KEY_CTRL_N: - line[bytes_len] = '\0'; - char *next = history_next(history, line); - if (next) { - werase(inp_win); - wmove(inp_win, 0, 0); - pad_start = 0; - line[0] = '\0'; - line_utf8_pos = 0; - strncpy(line, next, INP_WIN_MAX); - waddstr(inp_win, line); - - int display_len = utf8_display_len(line); - wmove(inp_win, 0, display_len); - line_utf8_pos = g_utf8_strlen(line, -1); - - int wcols = getmaxx(stdscr); - if (display_len > wcols-2) { - pad_start = display_len - wcols + 1; - _inp_win_update_virtual(); - } - } else if (bytes_len != 0) { - line[bytes_len] = '\0'; - history_append(history, line); - werase(inp_win); - wmove(inp_win, 0, 0); - pad_start = 0; - line[0] = '\0'; - line_utf8_pos = 0; - strncpy(line, "", INP_WIN_MAX); - waddstr(inp_win, line); - - int display_len = utf8_display_len(line); - wmove(inp_win, 0, display_len); - line_utf8_pos = g_utf8_strlen(line, -1); - - int wcols = getmaxx(stdscr); - if (display_len > wcols-2) { - pad_start = display_len - wcols + 1; - _inp_win_update_virtual(); - } - } - return 1; - - case KEY_HOME: - if (key_type != KEY_CODE_YES) { - return 0; - } - case KEY_CTRL_A: - wmove(inp_win, 0, 0); - pad_start = 0; - line_utf8_pos = 0; - _inp_win_update_virtual(); - return 1; - - case KEY_END: - if (key_type != KEY_CODE_YES) { - return 0; - } - case KEY_CTRL_E: - display_len = utf8_display_len(line); - wmove(inp_win, 0, display_len); - line_utf8_pos = g_utf8_strlen(line, -1); - - int wcols = getmaxx(stdscr); - if (display_len > wcols-2) { - pad_start = display_len - wcols + 1; - _inp_win_update_virtual(); - } - return 1; - - case 9: // tab - if (bytes_len != 0) { - line[bytes_len] = '\0'; - if ((strncmp(line, "/", 1) != 0) && (ui_current_win_type() == WIN_MUC)) { - char *result = muc_autocomplete(line); - if (result) { - werase(inp_win); - wmove(inp_win, 0, 0); - pad_start = 0; - line[0] = '\0'; - line_utf8_pos = 0; - strncpy(line, result, INP_WIN_MAX); - waddstr(inp_win, line); - - int display_len = utf8_display_len(line); - wmove(inp_win, 0, display_len); - line_utf8_pos = g_utf8_strlen(line, -1); - - int wcols = getmaxx(stdscr); - if (display_len > wcols-2) { - pad_start = display_len - wcols + 1; - _inp_win_update_virtual(); - } - - free(result); - } - } else if (strncmp(line, "/", 1) == 0) { - char *result = cmd_autocomplete(line); - if (result) { - werase(inp_win); - wmove(inp_win, 0, 0); - pad_start = 0; - line[0] = '\0'; - line_utf8_pos = 0; - strncpy(line, result, INP_WIN_MAX); - waddstr(inp_win, line); - - int display_len = utf8_display_len(line); - wmove(inp_win, 0, display_len); - line_utf8_pos = g_utf8_strlen(line, -1); - - int wcols = getmaxx(stdscr); - if (display_len > wcols-2) { - pad_start = display_len - wcols + 1; - _inp_win_update_virtual(); - } - - free(result); - } - } - } - return 1; - - case KEY_CTRL_W: - _handle_delete_previous_word(); - return 1; - break; - - case KEY_CTRL_U: - while (getcurx(inp_win) > 0) { - _handle_delete_previous_word(); - } - return 1; - break; - - default: - return 0; - } - } -} - -static void -_handle_backspace(void) -{ - int col = getcurx(inp_win); - int utf8_len = g_utf8_strlen(line, -1); - roster_reset_search_attempts(); - - if (utf8_len > 0) { - // if at end, delete last char - if (line_utf8_pos >= utf8_len) { - gchar *new_line = g_utf8_substring(line, 0, utf8_len-1); - werase(inp_win); - wmove(inp_win, 0, 0); - pad_start = 0; - line[0] = '\0'; - line_utf8_pos = 0; - strncpy(line, new_line, INP_WIN_MAX); - waddstr(inp_win, line); - - int display_len = utf8_display_len(line); - wmove(inp_win, 0, display_len); - line_utf8_pos = g_utf8_strlen(line, -1); - - int wcols = getmaxx(stdscr); - if (display_len > wcols-2) { - pad_start = display_len - wcols + 1; - _inp_win_update_virtual(); - } - - // if in middle, delete and shift chars left - } else if (line_utf8_pos > 0 && line_utf8_pos < utf8_len) { - gchar *del_char = g_utf8_offset_to_pointer(line, line_utf8_pos-1); - gunichar uni = g_utf8_get_char(del_char); - - gchar *start = g_utf8_substring(line, 0, line_utf8_pos-1); - gchar *end = g_utf8_substring(line, line_utf8_pos, utf8_len); - GString *new_line = g_string_new(start); - g_string_append(new_line, end); - - int old_pos = line_utf8_pos; - werase(inp_win); - wmove(inp_win, 0, 0); - pad_start = 0; - line[0] = '\0'; - line_utf8_pos = 0; - strncpy(line, new_line->str, INP_WIN_MAX); - waddstr(inp_win, line); - - int display_len = utf8_display_len(line); - wmove(inp_win, 0, display_len); - line_utf8_pos = g_utf8_strlen(line, -1); - - int wcols = getmaxx(stdscr); - if (display_len > wcols-2) { - pad_start = display_len - wcols + 1; - _inp_win_update_virtual(); - } - - line_utf8_pos = old_pos-1; - - g_free(start); - g_free(end); - g_string_free(new_line, TRUE); - - col--; - if (g_unichar_iswide(uni)) { - col--; - } - - wmove(inp_win, 0, col); - } - - // if gone off screen to left, jump left (half a screen worth) - if (col <= pad_start) { - int wcols = getmaxx(stdscr); - pad_start = pad_start - (wcols / 2); - if (pad_start < 0) { - pad_start = 0; - } - - _inp_win_update_virtual(); - } - } - -} - -static int -_handle_alt_key(int key) -{ - switch (key) - { - case '1': - ui_switch_win(1); - break; - case '2': - ui_switch_win(2); - break; - case '3': - ui_switch_win(3); - break; - case '4': - ui_switch_win(4); - break; - case '5': - ui_switch_win(5); - break; - case '6': - ui_switch_win(6); - break; - case '7': - ui_switch_win(7); - break; - case '8': - ui_switch_win(8); - break; - case '9': - ui_switch_win(9); - break; - case '0': - ui_switch_win(0); - break; - case KEY_LEFT: - ui_previous_win(); - break; - case KEY_RIGHT: - ui_next_win(); - break; - case 263: - case 127: - _handle_delete_previous_word(); - break; - default: - break; - } - return 1; -} - -static void -_handle_delete_previous_word(void) -{ - int end_del = getcurx(inp_win); - int start_del = end_del; - - gchar *curr_ch = g_utf8_offset_to_pointer(line, end_del); - curr_ch = g_utf8_find_prev_char(line, curr_ch); - gchar *prev_ch; - gunichar curr_uni; - gunichar prev_uni; - - while (curr_ch != NULL) { - curr_uni = g_utf8_get_char(curr_ch); - - if (g_unichar_isspace(curr_uni)) { - curr_ch = g_utf8_find_prev_char(line, curr_ch); - } else { - prev_ch = g_utf8_find_prev_char(line, curr_ch); - if (prev_ch == NULL) { - curr_ch = NULL; - break; - } else { - prev_uni = g_utf8_get_char(prev_ch); - if (g_unichar_isspace(prev_uni)) { - break; - } else { - curr_ch = prev_ch; - } - } - } - } - - if (curr_ch == NULL) { - start_del = 0; - } else { - start_del = g_utf8_pointer_to_offset(line, curr_ch); - } - - gint len = g_utf8_strlen(line, -1); - gchar *start_string = g_utf8_substring(line, 0, start_del); - gchar *end_string = g_utf8_substring(line, end_del, len); - - int i; - for (i = 0; i < strlen(start_string); i++) { - line[i] = start_string[i]; - } - for (i = 0; i < strlen(end_string); i++) { - line[strlen(start_string)+i] = end_string[i]; - } - - int bytes_len = strlen(start_string)+i; - line[bytes_len] = '\0'; - - werase(inp_win); - wmove(inp_win, 0, 0); - pad_start = 0; - line[0] = '\0'; - line_utf8_pos = 0; - - waddstr(inp_win, line); - wmove(inp_win, 0, start_del); - - // if gone off screen to left, jump left (half a screen worth) - if (start_del <= pad_start) { - int wcols = getmaxx(stdscr); - pad_start = pad_start - (wcols / 2); - if (pad_start < 0) { - pad_start = 0; - } - - _inp_win_update_virtual(); - } -} - -static gboolean -_is_ctrl_left(int key_type, const wint_t ch) -{ - return ((key_type == KEY_CODE_YES) - && (ch == 547 || ch == 545 || ch == 544 || ch == 540 || ch == 539)); -} - -static gboolean -_is_ctrl_right(int key_type, const wint_t ch) -{ - return ((key_type == KEY_CODE_YES) - && (ch == 562 || ch == 560 || ch == 555 || ch == 559 || ch == 554)); -} - +//static int +//_handle_edit(int key_type, const wint_t ch) +//{ +// // ALT-LEFT +// if ((key_type == KEY_CODE_YES) && (ch == 537 || ch == 542)) { +// ui_previous_win(); +// return 1; +// +// // ALT-RIGHT +// } else if ((key_type == KEY_CODE_YES) && (ch == 552 || ch == 557)) { +// ui_next_win(); +// return 1; +// +// // other editing keys +// } else { +// int bytes_len = strlen(line); +// int next_ch; +// +// switch(ch) { +// +// case 27: // ESC +// // check for ALT-key +// next_ch = wgetch(inp_win); +// if (next_ch != ERR) { +// return _handle_alt_key(next_ch); +// } else { +// werase(inp_win); +// wmove(inp_win, 0, 0); +// pad_start = 0; +// line[0] = '\0'; +// line_utf8_pos = 0; +// _inp_win_update_virtual(); +// return 1; +// } +// +// case 9: // tab +// if (bytes_len != 0) { +// line[bytes_len] = '\0'; +// if ((strncmp(line, "/", 1) != 0) && (ui_current_win_type() == WIN_MUC)) { +// char *result = muc_autocomplete(line); +// if (result) { +// werase(inp_win); +// wmove(inp_win, 0, 0); +// pad_start = 0; +// line[0] = '\0'; +// line_utf8_pos = 0; +// strncpy(line, result, INP_WIN_MAX); +// waddstr(inp_win, line); +// +// int display_len = utf8_display_len(line); +// wmove(inp_win, 0, display_len); +// line_utf8_pos = g_utf8_strlen(line, -1); +// +// int wcols = getmaxx(stdscr); +// if (display_len > wcols-2) { +// pad_start = display_len - wcols + 1; +// _inp_win_update_virtual(); +// } +// +// free(result); +// } +// } else if (strncmp(line, "/", 1) == 0) { +// char *result = cmd_autocomplete(line); +// if (result) { +// werase(inp_win); +// wmove(inp_win, 0, 0); +// pad_start = 0; +// line[0] = '\0'; +// line_utf8_pos = 0; +// strncpy(line, result, INP_WIN_MAX); +// waddstr(inp_win, line); +// +// int display_len = utf8_display_len(line); +// wmove(inp_win, 0, display_len); +// line_utf8_pos = g_utf8_strlen(line, -1); +// +// int wcols = getmaxx(stdscr); +// if (display_len > wcols-2) { +// pad_start = display_len - wcols + 1; +// _inp_win_update_virtual(); +// } +// +// free(result); +// } +// } +// } +// return 1; +// +// default: +// return 0; +// } +// } +//} + +//static int +//_handle_alt_key(int key) +//{ +// switch (key) +// { +// case '1': +// ui_switch_win(1); +// break; +// case '2': +// ui_switch_win(2); +// break; +// case '3': +// ui_switch_win(3); +// break; +// case '4': +// ui_switch_win(4); +// break; +// case '5': +// ui_switch_win(5); +// break; +// case '6': +// ui_switch_win(6); +// break; +// case '7': +// ui_switch_win(7); +// break; +// case '8': +// ui_switch_win(8); +// break; +// case '9': +// ui_switch_win(9); +// break; +// case '0': +// ui_switch_win(0); +// break; +// case KEY_LEFT: +// ui_previous_win(); +// break; +// case KEY_RIGHT: +// ui_next_win(); +// break; +// default: +// break; +// } +// return 1; +//} +// static void _inp_win_update_virtual(void) { diff --git a/src/ui/keyhandlers.c b/src/ui/keyhandlers.c deleted file mode 100644 index 0836737b..00000000 --- a/src/ui/keyhandlers.c +++ /dev/null @@ -1,216 +0,0 @@ -/* - * keyhandlers.c - * - * Copyright (C) 2012 - 2014 James Booth - * - * This file is part of Profanity. - * - * Profanity is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Profanity is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Profanity. If not, see . - * - * In addition, as a special exception, the copyright holders give permission to - * link the code of portions of this program with the OpenSSL library under - * certain conditions as described in each individual source file, and - * distribute linked combinations including the two. - * - * You must obey the GNU General Public License in all respects for all of the - * code used other than OpenSSL. If you modify file(s) with this exception, you - * may extend this exception to your version of the file(s), but you are not - * obligated to do so. If you do not wish to do so, delete this exception - * statement from your version. If you delete this exception statement from all - * source files in the program, then also delete it here. - * - */ - -#include -#include -#include - -#include - -#include "ui/inputwin.h" -#include "common.h" - -void -key_printable(char * const line, int * const line_utf8_pos, int * const col, int * const pad_start, const wint_t ch, const int maxx) -{ - int utf8_len = g_utf8_strlen(line, -1); - - // handle insert if not at end of input - if (*line_utf8_pos < utf8_len) { - char bytes[MB_CUR_MAX]; - size_t utf8_ch_len = wcrtomb(bytes, ch, NULL); - bytes[utf8_ch_len] = '\0'; - gchar *start = g_utf8_substring(line, 0, *line_utf8_pos); - gchar *end = g_utf8_substring(line, *line_utf8_pos, utf8_len); - GString *new_line_str = g_string_new(start); - g_string_append(new_line_str, bytes); - g_string_append(new_line_str, end); - char *new_line = new_line_str->str; - g_free(start); - g_free(end); - g_string_free(new_line_str, FALSE); - - strncpy(line, new_line, INP_WIN_MAX); - free(new_line); - - gunichar uni = g_utf8_get_char(bytes); - if (*col == (*pad_start + maxx)) { - (*pad_start)++; - if (g_unichar_iswide(uni)) { - (*pad_start)++; - } - } - - (*line_utf8_pos)++; - - (*col)++; - if (g_unichar_iswide(uni)) { - (*col)++; - } - - // otherwise just append - } else { - char bytes[MB_CUR_MAX+1]; - size_t utf8_ch_len = wcrtomb(bytes, ch, NULL); - if (utf8_ch_len < MB_CUR_MAX) { - int i; - int bytes_len = strlen(line); - - for (i = 0 ; i < utf8_ch_len; i++) { - line[bytes_len++] = bytes[i]; - } - line[bytes_len] = '\0'; - - (*line_utf8_pos)++; - - (*col)++; - bytes[utf8_ch_len] = '\0'; - gunichar uni = g_utf8_get_char(bytes); - if (g_unichar_iswide(uni)) { - (*col)++; - } - - if (*col - *pad_start > maxx-1) { - (*pad_start)++; - if (g_unichar_iswide(uni)) { - (*pad_start)++; - } - } - } - } -} - -void -key_ctrl_left(const char * const line, int * const line_utf8_pos, int * const col, int * const pad_start, const int maxx) -{ - if (*line_utf8_pos == 0) { - return; - } - - gchar *curr_ch = g_utf8_offset_to_pointer(line, *line_utf8_pos); - gunichar curr_uni = g_utf8_get_char(curr_ch); - - (*line_utf8_pos)--; - (*col)--; - if (g_unichar_iswide(curr_uni)) { - (*col)--; - } - - curr_ch = g_utf8_find_prev_char(line, curr_ch); - - gchar *prev_ch; - gunichar prev_uni; - while (curr_ch != NULL) { - curr_uni = g_utf8_get_char(curr_ch); - if (g_unichar_isspace(curr_uni)) { - curr_ch = g_utf8_find_prev_char(line, curr_ch); - (*line_utf8_pos)--; - (*col)--; - } else { - prev_ch = g_utf8_find_prev_char(line, curr_ch); - if (prev_ch == NULL) { - curr_ch = NULL; - break; - } else { - prev_uni = g_utf8_get_char(prev_ch); - (*line_utf8_pos)--; - (*col)--; - if (g_unichar_iswide(curr_uni)) { - (*col)--; - } - if (g_unichar_isspace(prev_uni)) { - break; - } else { - curr_ch = prev_ch; - } - } - } - } - - if (curr_ch == NULL) { - (*col) = 0; - (*line_utf8_pos) = 0; - } else { - (*col)++; - (*line_utf8_pos)++; - } - - if (*col < *pad_start) { - *pad_start = *col; - } -} - -void -key_ctrl_right(const char * const line, int * const line_utf8_pos, int * const col, int * const pad_start, const int maxx) -{ - int utf8_len = g_utf8_strlen(line, -1); - if (*line_utf8_pos >= utf8_len) { - return; - } - - gchar *curr_ch = g_utf8_offset_to_pointer(line, *line_utf8_pos); - gunichar curr_uni = g_utf8_get_char(curr_ch); - - // find next word if in whitespace - while (g_unichar_isspace(curr_uni)) { - (*col)++; - (*line_utf8_pos)++; - curr_ch = g_utf8_find_next_char(curr_ch, NULL); - if (!curr_ch) { - break; - } - curr_uni = g_utf8_get_char(curr_ch); - } - - if (curr_ch) { - while (!g_unichar_isspace(curr_uni)) { - (*line_utf8_pos)++; - (*col)++; - if (g_unichar_iswide(curr_uni)) { - (*col)++; - } - curr_ch = g_utf8_find_next_char(curr_ch, NULL); - if (!curr_ch || *line_utf8_pos >= utf8_len) { - break; - } - curr_uni = g_utf8_get_char(curr_ch); - } - } - - // if gone off screen to right, jump right (half a screen worth) -// if (col > pad_start + wcols) { -// pad_start = pad_start + (wcols / 2); -// _inp_win_update_virtual(); -// } -} diff --git a/src/ui/keyhandlers.h b/src/ui/keyhandlers.h deleted file mode 100644 index 62a2c0d6..00000000 --- a/src/ui/keyhandlers.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * keyhandlers.c - * - * Copyright (C) 2012 - 2014 James Booth - * - * This file is part of Profanity. - * - * Profanity is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Profanity is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Profanity. If not, see . - * - * In addition, as a special exception, the copyright holders give permission to - * link the code of portions of this program with the OpenSSL library under - * certain conditions as described in each individual source file, and - * distribute linked combinations including the two. - * - * You must obey the GNU General Public License in all respects for all of the - * code used other than OpenSSL. If you modify file(s) with this exception, you - * may extend this exception to your version of the file(s), but you are not - * obligated to do so. If you do not wish to do so, delete this exception - * statement from your version. If you delete this exception statement from all - * source files in the program, then also delete it here. - * - */ - -#ifndef UI_KEYHANDLERS_H -#define UI_KEYHANDLERS_H - -#include - -void key_printable(char * const line, int * const line_utf8_pos, int * const col, int * const pad_start, const wint_t ch, const int maxx); - -void key_ctrl_left(const char * const line, int * const line_utf8_pos, int * const col, int * const pad_start, const int maxx); -void key_ctrl_right(const char * const line, int * const line_utf8_pos, int * const col, int * const pad_start, const int maxx); - -#endif diff --git a/tests/test_history.c b/tests/test_history.c deleted file mode 100644 index 1584b390..00000000 --- a/tests/test_history.c +++ /dev/null @@ -1,219 +0,0 @@ -#include -#include -#include -#include -#include - -#include "tools/history.h" - -void previous_on_empty_returns_null(void **state) -{ - History history = history_new(10); - char *item = history_previous(history, "inp"); - - assert_null(item); -} - -void next_on_empty_returns_null(void **state) -{ - History history = history_new(10); - char *item = history_next(history, "inp"); - - assert_null(item); -} - -void previous_once_returns_last(void **state) -{ - History history = history_new(10); - history_append(history, "Hello"); - - char *item = history_previous(history, "inp"); - - assert_string_equal("Hello", item); -} - -void previous_twice_when_one_returns_first(void **state) -{ - History history = history_new(10); - history_append(history, "Hello"); - - char *item1 = history_previous(history, NULL); - char *item2 = history_previous(history, item1); - - assert_string_equal("Hello", item2); -} - -void previous_always_stops_at_first(void **state) -{ - History history = history_new(10); - history_append(history, "Hello"); - - char *item1 = history_previous(history, NULL); - char *item2 = history_previous(history, item1); - char *item3 = history_previous(history, item2); - char *item4 = history_previous(history, item3); - char *item5 = history_previous(history, item4); - char *item6 = history_previous(history, item5); - - assert_string_equal("Hello", item6); -} - -void previous_goes_to_correct_element(void **state) -{ - History history = history_new(10); - history_append(history, "Hello"); - history_append(history, "world"); - history_append(history, "whats"); - history_append(history, "going"); - history_append(history, "on"); - history_append(history, "here"); - - char *item1 = history_previous(history, NULL); - char *item2 = history_previous(history, item1); - char *item3 = history_previous(history, item2); - - assert_string_equal("going", item3); -} - -void prev_then_next_returns_empty(void **state) -{ - History history = history_new(10); - history_append(history, "Hello"); - - char *item1 = history_previous(history, NULL); - char *item2 = history_next(history, item1); - - assert_string_equal("", item2); -} - -void prev_with_val_then_next_returns_val(void **state) -{ - History history = history_new(10); - history_append(history, "Hello"); - - char *item1 = history_previous(history, "Oioi"); - char *item2 = history_next(history, item1); - - assert_string_equal("Oioi", item2); -} - -void prev_with_val_then_next_twice_returns_null(void **state) -{ - History history = history_new(10); - history_append(history, "Hello"); - - char *item1 = history_previous(history, "Oioi"); - char *item2 = history_next(history, item1); - char *item3 = history_next(history, item2); - - assert_null(item3); -} - -void navigate_then_append_new(void **state) -{ - History history = history_new(10); - history_append(history, "Hello"); - history_append(history, "again"); - history_append(history, "testing"); - history_append(history, "history"); - history_append(history, "append"); - - char *item1 = history_previous(history, "new text"); - assert_string_equal("append", item1); - - char *item2 = history_previous(history, item1); - assert_string_equal("history", item2); - - char *item3 = history_previous(history, item2); - assert_string_equal("testing", item3); - - char *item4 = history_next(history, item3); - assert_string_equal("history", item4); - - char *item5 = history_next(history, item4); - assert_string_equal("append", item5); - - char *item6 = history_next(history, item5); - assert_string_equal("new text", item6); -} - -void edit_item_mid_history(void **state) -{ - History history = history_new(10); - history_append(history, "Hello"); - history_append(history, "again"); - history_append(history, "testing"); - history_append(history, "history"); - history_append(history, "append"); - - char *item1 = history_previous(history, "new item"); - assert_string_equal("append", item1); - - char *item2 = history_previous(history, item1); - assert_string_equal("history", item2); - - char *item3 = history_previous(history, item2); - assert_string_equal("testing", item3); - - char *item4 = history_previous(history, "EDITED"); - assert_string_equal("again", item4); - - char *item5 = history_previous(history, item4); - assert_string_equal("Hello", item5); - - char *item6 = history_next(history, item5); - assert_string_equal("again", item6); - - char *item7 = history_next(history, item6); - assert_string_equal("EDITED", item7); - - char *item8 = history_next(history, item7); - assert_string_equal("history", item8); - - char *item9 = history_next(history, item8); - assert_string_equal("append", item9); - - char *item10 = history_next(history, item9); - assert_string_equal("new item", item10); -} - -void edit_previous_and_append(void **state) -{ - History history = history_new(10); - history_append(history, "Hello"); - history_append(history, "again"); - history_append(history, "testing"); - history_append(history, "history"); - history_append(history, "append"); - - char *item1 = history_previous(history, "new item"); - assert_string_equal("append", item1); - - char *item2 = history_previous(history, item1); - assert_string_equal("history", item2); - - char *item3 = history_previous(history, item2); - assert_string_equal("testing", item3); - - history_append(history, "EDITED"); - - char *item4 = history_previous(history, NULL); - assert_string_equal("EDITED", item4); -} - -void start_session_add_new_submit_previous(void **state) -{ - History history = history_new(10); - history_append(history, "hello"); - - char *item1 = history_previous(history, NULL); - assert_string_equal("hello", item1); - - char *item2 = history_next(history, item1); - assert_string_equal("", item2); - - char *item3 = history_previous(history, "new text"); - assert_string_equal("hello", item3); - - history_append(history, item3); -} diff --git a/tests/test_history.h b/tests/test_history.h deleted file mode 100644 index e6e8ec3f..00000000 --- a/tests/test_history.h +++ /dev/null @@ -1,13 +0,0 @@ -void previous_on_empty_returns_null(void **state); -void next_on_empty_returns_null(void **state); -void previous_once_returns_last(void **state); -void previous_twice_when_one_returns_first(void **state); -void previous_always_stops_at_first(void **state); -void previous_goes_to_correct_element(void **state); -void prev_then_next_returns_empty(void **state); -void prev_with_val_then_next_returns_val(void **state); -void prev_with_val_then_next_twice_returns_null(void **state); -void navigate_then_append_new(void **state); -void edit_item_mid_history(void **state); -void edit_previous_and_append(void **state); -void start_session_add_new_submit_previous(void **state); diff --git a/tests/testsuite.c b/tests/testsuite.c index ca53961f..92abee4b 100644 --- a/tests/testsuite.c +++ b/tests/testsuite.c @@ -21,7 +21,6 @@ #include "test_cmd_sub.h" #include "test_cmd_statuses.h" #include "test_cmd_otr.h" -#include "test_history.h" #include "test_jid.h" #include "test_parser.h" #include "test_roster_list.h" @@ -35,7 +34,6 @@ #include "test_cmd_win.h" #include "test_cmd_disconnect.h" #include "test_form.h" -#include "test_keyhandlers.h" int main(int argc, char* argv[]) { const UnitTest all_tests[] = { @@ -104,20 +102,6 @@ int main(int argc, char* argv[]) { unit_test(add_two_same_adds_one), unit_test(add_two_same_updates), - unit_test(previous_on_empty_returns_null), - unit_test(next_on_empty_returns_null), - unit_test(previous_once_returns_last), - unit_test(previous_twice_when_one_returns_first), - unit_test(previous_always_stops_at_first), - unit_test(previous_goes_to_correct_element), - unit_test(prev_then_next_returns_empty), - unit_test(prev_with_val_then_next_returns_val), - unit_test(prev_with_val_then_next_twice_returns_null), - unit_test(navigate_then_append_new), - unit_test(edit_item_mid_history), - unit_test(edit_previous_and_append), - unit_test(start_session_add_new_submit_previous), - unit_test(create_jid_from_null_returns_null), unit_test(create_jid_from_empty_string_returns_null), unit_test(create_jid_from_full_returns_full), @@ -623,56 +607,6 @@ int main(int argc, char* argv[]) { unit_test(remove_text_multi_value_removes_when_many), unit_test(clears_chat_sessions), - - unit_test(append_to_empty), - unit_test(append_wide_to_empty), - - unit_test(append_to_single), - unit_test(append_wide_to_single_non_wide), - unit_test(append_non_wide_to_single_wide), - unit_test(append_wide_to_single_wide), - - unit_test(append_non_wide_when_overrun), - - unit_test(insert_non_wide_to_non_wide), - unit_test(insert_single_non_wide_when_pad_scrolled), - unit_test(insert_many_non_wide_when_pad_scrolled), - unit_test(insert_single_non_wide_last_column), - unit_test(insert_many_non_wide_last_column), - - unit_test(ctrl_left_when_no_input), - unit_test(ctrl_left_when_at_start), - unit_test(ctrl_left_when_in_first_word), - unit_test(ctrl_left_when_in_first_space), - unit_test(ctrl_left_when_at_start_of_second_word), - unit_test(ctrl_left_when_in_second_word), - unit_test(ctrl_left_when_at_end_of_second_word), - unit_test(ctrl_left_when_in_second_space), - unit_test(ctrl_left_when_at_start_of_third_word), - unit_test(ctrl_left_when_in_third_word), - unit_test(ctrl_left_when_at_end_of_third_word), - unit_test(ctrl_left_when_in_third_space), - unit_test(ctrl_left_when_at_end), - unit_test(ctrl_left_when_in_only_whitespace), - unit_test(ctrl_left_when_start_whitespace_start_of_word), - unit_test(ctrl_left_when_start_whitespace_middle_of_word), - unit_test(ctrl_left_in_whitespace_between_words), - unit_test(ctrl_left_in_whitespace_between_words_start_of_word), - unit_test(ctrl_left_in_whitespace_between_words_middle_of_word), - unit_test(ctrl_left_when_word_overrun_to_left), - - unit_test(ctrl_right_when_no_input), - unit_test(ctrl_right_when_at_end), - unit_test(ctrl_right_one_word_at_start), - unit_test(ctrl_right_one_word_in_middle), - unit_test(ctrl_right_one_word_at_end), - unit_test(ctrl_right_two_words_from_middle_first), - unit_test(ctrl_right_two_words_from_end_first), - unit_test(ctrl_right_two_words_from_space), - unit_test(ctrl_right_two_words_from_start_second), - unit_test(ctrl_right_one_word_leading_whitespace), - unit_test(ctrl_right_two_words_in_whitespace), - unit_test(ctrl_right_trailing_whitespace_from_middle), }; return run_tests(all_tests);