From f43d7358615ea748b948288614c41124a9ad2f2c Mon Sep 17 00:00:00 2001 From: Jfreegman Date: Tue, 19 Nov 2013 15:32:35 -0500 Subject: [PATCH] remove redundant cmd func args, use global prompt instead --- src/chat.c | 9 ++++----- src/chat.h | 4 +++- src/chat_commands.c | 32 +++++++++++++++++--------------- src/chat_commands.h | 10 +++++----- src/execute.c | 12 ++++++------ src/execute.h | 2 +- src/friendlist.c | 9 +++++---- src/friendlist.h | 3 +-- src/global_commands.c | 24 +++++++++++++----------- src/global_commands.h | 22 +++++++++++----------- src/groupchat.c | 11 +++++------ src/misc_tools.h | 2 +- src/prompt.c | 4 ++-- src/toxic_windows.h | 4 +--- src/windows.c | 2 +- 15 files changed, 76 insertions(+), 74 deletions(-) diff --git a/src/chat.c b/src/chat.c index 1f6a229..275b13c 100644 --- a/src/chat.c +++ b/src/chat.c @@ -294,7 +294,7 @@ static void chat_onKey(ToxWindow *self, Tox *m, wint_t key) bool close_win = false; if (line[0] == '/') { - if (close_win = !strncmp(line, "/close", strlen("/close"))) { + if (close_win = !strcmp(line, "/close")) { int f_num = self->num; delwin(ctx->linewin); delwin(statusbar->topline); @@ -303,7 +303,7 @@ static void chat_onKey(ToxWindow *self, Tox *m, wint_t key) } else if (!strncmp(line, "/me ", strlen("/me "))) send_action(self, ctx, m, line + strlen("/me ")); else - execute(ctx->history, self->prompt, m, self->num, line, CHAT_COMMAND_MODE); + execute(ctx->history, self, m, line, CHAT_COMMAND_MODE); } else { /* make sure the string has at least non-space character */ if (!string_is_empty(line)) { @@ -442,11 +442,11 @@ static void chat_onInit(ToxWindow *self, Tox *m) scrollok(ctx->history, 1); ctx->linewin = subwin(self->window, 0, x, y-4, 0); wprintw(ctx->history, "\n\n"); - execute(ctx->history, self->prompt, m, self->num, "/help", CHAT_COMMAND_MODE); + execute(ctx->history, self, m, "/help", CHAT_COMMAND_MODE); wmove(self->window, y - CURS_Y_OFFSET, 0); } -ToxWindow new_chat(Tox *m, ToxWindow *prompt, int friendnum) +ToxWindow new_chat(Tox *m, int friendnum) { ToxWindow ret; memset(&ret, 0, sizeof(ret)); @@ -482,7 +482,6 @@ ToxWindow new_chat(Tox *m, ToxWindow *prompt, int friendnum) exit(EXIT_FAILURE); } - ret.prompt = prompt; ret.num = friendnum; return ret; diff --git a/src/chat.h b/src/chat.h index 25e64b7..a7918df 100644 --- a/src/chat.h +++ b/src/chat.h @@ -1,6 +1,8 @@ #ifndef CHAT_H_6489PZ13 #define CHAT_H_6489PZ13 -ToxWindow new_chat(Tox *m, ToxWindow *prompt, int friendnum); +#include "toxic_windows.h" + +ToxWindow new_chat(Tox *m, int friendnum); #endif /* end of include guard: CHAT_H_6489PZ13 */ diff --git a/src/chat_commands.c b/src/chat_commands.c index 63e3d78..f799abe 100644 --- a/src/chat_commands.c +++ b/src/chat_commands.c @@ -12,7 +12,9 @@ #include "toxic_windows.h" #include "misc_tools.h" -void cmd_chat_help(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +extern ToxWindow *prompt; + +void cmd_chat_help(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { wattron(window, COLOR_PAIR(CYAN) | A_BOLD); wprintw(window, "Chat commands:\n"); @@ -39,7 +41,7 @@ void cmd_chat_help(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, wattroff(window, COLOR_PAIR(CYAN)); } -void cmd_groupinvite(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_groupinvite(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { if (argc < 1) { wprintw(window, "Invalid syntax.\n"); @@ -53,7 +55,7 @@ void cmd_groupinvite(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int arg return; } - if (tox_invite_friend(m, num, groupnum) == -1) { + if (tox_invite_friend(m, self->num, groupnum) == -1) { wprintw(window, "Failed to invite friend.\n"); return; } @@ -61,16 +63,16 @@ void cmd_groupinvite(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int arg wprintw(window, "Invited friend to group chat %d.\n", groupnum); } -void cmd_join_group(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_join_group(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { - uint8_t *groupkey = friends[num].pending_groupchat; + uint8_t *groupkey = friends[self->num].pending_groupchat; if (groupkey[0] == '\0') { wprintw(window, "No pending group chat invite.\n"); return; } - int groupnum = tox_join_groupchat(m, num, groupkey); + int groupnum = tox_join_groupchat(m, self->num, groupkey); if (groupnum == -1) { wprintw(window, "Group chat instance failed to initialize.\n"); @@ -84,7 +86,7 @@ void cmd_join_group(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc } } -void cmd_savefile(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_savefile(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { if (argc != 1) { wprintw(window, "Invalid syntax.\n"); @@ -98,22 +100,22 @@ void cmd_savefile(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, return; } - if (!friends[num].file_receiver.pending[filenum]) { + if (!friends[self->num].file_receiver.pending[filenum]) { wprintw(window, "No pending file transfers with that number.\n"); return; } - uint8_t *filename = friends[num].file_receiver.filenames[filenum]; + uint8_t *filename = friends[self->num].file_receiver.filenames[filenum]; - if (tox_file_sendcontrol(m, num, 1, filenum, TOX_FILECONTROL_ACCEPT, 0, 0)) + if (tox_file_sendcontrol(m, self->num, 1, filenum, TOX_FILECONTROL_ACCEPT, 0, 0)) wprintw(window, "Accepted file transfer %u. Saving file as: '%s'\n", filenum, filename); else wprintw(window, "File transfer failed.\n"); - friends[num].file_receiver.pending[filenum] = false; + friends[self->num].file_receiver.pending[filenum] = false; } -void cmd_sendfile(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_sendfile(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { if (num_file_senders >= MAX_FILES) { wprintw(window,"Please wait for some of your outgoing file transfers to complete.\n"); @@ -151,7 +153,7 @@ void cmd_sendfile(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, uint64_t filesize = ftell(file_to_send); fseek(file_to_send, 0, SEEK_SET); - int filenum = tox_new_filesender(m, num, filesize, path, path_len + 1); + int filenum = tox_new_filesender(m, self->num, filesize, path, path_len + 1); if (filenum == -1) { wprintw(window, "Error sending file.\n"); @@ -167,10 +169,10 @@ void cmd_sendfile(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, file_senders[i].chatwin = window; file_senders[i].file = file_to_send; file_senders[i].filenum = (uint8_t) filenum; - file_senders[i].friendnum = num; + file_senders[i].friendnum = self->num; file_senders[i].timestamp = (uint64_t)time(NULL); file_senders[i].piecelen = fread(file_senders[i].nextpiece, 1, - tox_filedata_size(m, num), file_to_send); + tox_filedata_size(m, self->num), file_to_send); wprintw(window, "Sending file: '%s'\n", path); diff --git a/src/chat_commands.h b/src/chat_commands.h index 08a6481..fd8059a 100644 --- a/src/chat_commands.h +++ b/src/chat_commands.h @@ -2,8 +2,8 @@ * Toxic -- Tox Curses Client */ -void cmd_chat_help(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); -void cmd_groupinvite(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); -void cmd_join_group(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); -void cmd_savefile(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); -void cmd_sendfile(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_chat_help(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_groupinvite(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_join_group(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_savefile(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_sendfile(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); diff --git a/src/execute.c b/src/execute.c index 182761d..911c565 100644 --- a/src/execute.c +++ b/src/execute.c @@ -12,7 +12,7 @@ struct cmd_func { const char *name; - void (*func)(WINDOW *, ToxWindow *, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]); + void (*func)(WINDOW *w, ToxWindow *, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]); }; #define GLOBAL_NUM_COMMANDS 13 @@ -79,14 +79,14 @@ static int parse_command(WINDOW *w, char *cmd, char (*args)[MAX_STR_SIZE]) } /* Matches command to respective function. Returns 0 on match, 1 on no match */ -static int do_command(WINDOW *w, ToxWindow *prompt, Tox *m, int num, int num_args, int num_cmds, +static int do_command(WINDOW *w, ToxWindow *self, Tox *m, int num_args, int num_cmds, struct cmd_func *commands, char (*args)[MAX_STR_SIZE]) { int i; for (i = 0; i < num_cmds; ++i) { if (strcmp(args[0], commands[i].name) == 0) { - (commands[i].func)(w, prompt, m, num, num_args-1, args); + (commands[i].func)(w, self, m, num_args-1, args); return 0; } } @@ -94,7 +94,7 @@ static int do_command(WINDOW *w, ToxWindow *prompt, Tox *m, int num, int num_arg return 1; } -void execute(WINDOW *w, ToxWindow *prompt, Tox *m, int num, char *cmd, int mode) +void execute(WINDOW* w, ToxWindow *self, Tox *m, char *cmd, int mode) { if (string_is_empty(cmd)) return; @@ -111,7 +111,7 @@ void execute(WINDOW *w, ToxWindow *prompt, Tox *m, int num, char *cmd, int mode) Note: Global commands must come last in case of duplicate command names */ switch (mode) { case CHAT_COMMAND_MODE: - if (do_command(w, prompt, m, num, num_args, CHAT_NUM_COMMANDS, chat_commands, args) == 0) + if (do_command(w, self, m, num_args, CHAT_NUM_COMMANDS, chat_commands, args) == 0) return; break; @@ -119,7 +119,7 @@ void execute(WINDOW *w, ToxWindow *prompt, Tox *m, int num, char *cmd, int mode) break; } - if (do_command(w, prompt, m, num, num_args, GLOBAL_NUM_COMMANDS, global_commands, args) == 0) + if (do_command(w, self, m, num_args, GLOBAL_NUM_COMMANDS, global_commands, args) == 0) return; wprintw(w, "Invalid command.\n"); diff --git a/src/execute.h b/src/execute.h index 2b2e49e..2747d16 100644 --- a/src/execute.h +++ b/src/execute.h @@ -10,4 +10,4 @@ enum { GROUPCHAT_COMMAND_MODE, }; -void execute(WINDOW *w, ToxWindow *prompt, Tox *m, int num, char *cmd, int mode); +void execute(WINDOW *w, ToxWindow *self, Tox *m, char *cmd, int mode); diff --git a/src/friendlist.c b/src/friendlist.c index 03e1005..32422f8 100644 --- a/src/friendlist.c +++ b/src/friendlist.c @@ -12,6 +12,7 @@ #include +#include "chat.h" #include "friendlist.h" extern char *DATA_FILE; @@ -57,7 +58,7 @@ static void friendlist_onMessage(ToxWindow *self, Tox *m, int num, uint8_t *str, return; if (friends[num].chatwin == -1) - friends[num].chatwin = add_window(m, new_chat(m, prompt, friends[num].num)); + friends[num].chatwin = add_window(m, new_chat(m, friends[num].num)); } static void friendlist_onConnectionChange(ToxWindow *self, Tox *m, int num, uint8_t status) @@ -140,7 +141,7 @@ static void friendlist_onFileSendRequest(ToxWindow *self, Tox *m, int num, uint8 return; if (friends[num].chatwin == -1) - friends[num].chatwin = add_window(m, new_chat(m, prompt, friends[num].num)); + friends[num].chatwin = add_window(m, new_chat(m, friends[num].num)); } static void friendlist_onGroupInvite(ToxWindow *self, Tox *m, int num, uint8_t *group_pub_key) @@ -149,7 +150,7 @@ static void friendlist_onGroupInvite(ToxWindow *self, Tox *m, int num, uint8_t * return; if (friends[num].chatwin == -1) - friends[num].chatwin = add_window(m, new_chat(m, prompt, friends[num].num)); + friends[num].chatwin = add_window(m, new_chat(m, friends[num].num)); } static void select_friend(Tox *m, wint_t key) @@ -197,7 +198,7 @@ static void friendlist_onKey(ToxWindow *self, Tox *m, wint_t key) if (friends[f].chatwin != -1) { set_active_window(friends[f].chatwin); } else { - friends[f].chatwin = add_window(m, new_chat(m, prompt, friends[f].num)); + friends[f].chatwin = add_window(m, new_chat(m, friends[f].num)); set_active_window(friends[f].chatwin); } } else if (key == 0x107 || key == 0x8 || key == 0x7f) { diff --git a/src/friendlist.h b/src/friendlist.h index ceccddb..4904c2e 100644 --- a/src/friendlist.h +++ b/src/friendlist.h @@ -2,9 +2,8 @@ #define FRIENDLIST_H_53I41IM #include "toxic_windows.h" -#include "chat.h" -ToxWindow new_friendlist(); +ToxWindow new_friendlist(void); void disable_chatwin(int f_num); int get_friendnum(uint8_t *name); void sort_friendlist_index(void); diff --git a/src/global_commands.c b/src/global_commands.c index 7ae9d64..35d4ab6 100644 --- a/src/global_commands.c +++ b/src/global_commands.c @@ -13,13 +13,14 @@ #include "misc_tools.h" extern char *DATA_FILE; +extern ToxWindow *prompt; extern uint8_t pending_frnd_requests[MAX_FRIENDS_NUM][TOX_CLIENT_ID_SIZE]; extern uint8_t num_frnd_requests; extern int num_groupchats; /* command functions */ -void cmd_accept(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_accept(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { /* check arguments */ if (argc != 1) { @@ -60,7 +61,7 @@ void cmd_accept(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, ch num_frnd_requests = i; } -void cmd_add(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_add(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { if (argc < 1) { wprintw(window, "Invalid syntax.\n"); @@ -144,13 +145,13 @@ void cmd_add(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char } } -void cmd_clear(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_clear(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { wclear(window); wprintw(window, "\n\n"); } -void cmd_connect(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_connect(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { /* check arguments */ if (argc != 3) { @@ -174,7 +175,7 @@ void cmd_connect(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, c free(binary_string); } -void cmd_groupchat(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_groupchat(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { if (num_groupchats >= MAX_GROUPCHAT_NUM) { wprintw(window, "\nMaximum number of group chats has been reached.\n"); @@ -197,7 +198,7 @@ void cmd_groupchat(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, wprintw(window, "Group chat created as %d.\n", groupnum); } -void cmd_myid(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_myid(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { char id[TOX_FRIEND_ADDRESS_SIZE * 2 + 1] = {0}; uint8_t address[TOX_FRIEND_ADDRESS_SIZE]; @@ -214,7 +215,7 @@ void cmd_myid(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char wprintw(window, "%s\n", id); } -void cmd_nick(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_nick(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { /* check arguments */ if (argc != 1) { @@ -242,7 +243,7 @@ void cmd_nick(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char store_data(m, DATA_FILE); } -void cmd_note(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_note(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { if (argc < 1) { wprintw(window, "Wrong number of arguments.\n"); @@ -259,10 +260,11 @@ void cmd_note(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char msg[strlen(++msg)-1] = L'\0'; uint16_t len = strlen(msg) + 1; tox_set_statusmessage(m, msg, len); + prompt_update_statusmessage(prompt, msg, len); } -void cmd_prompt_help(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_prompt_help(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { wclear(window); wattron(window, COLOR_PAIR(CYAN) | A_BOLD); @@ -289,12 +291,12 @@ void cmd_prompt_help(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int arg wattroff(window, COLOR_PAIR(CYAN)); } -void cmd_quit(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_quit(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { exit_toxic(m); } -void cmd_status(WINDOW *window, ToxWindow *prompt, Tox *m, int num, int argc, char (*argv)[MAX_STR_SIZE]) +void cmd_status(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { uint8_t *msg = NULL; diff --git a/src/global_commands.h b/src/global_commands.h index 4d049cf..57f16e3 100644 --- a/src/global_commands.h +++ b/src/global_commands.h @@ -2,14 +2,14 @@ * Toxic -- Tox Curses Client */ -void cmd_accept(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); -void cmd_add(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); -void cmd_clear(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); -void cmd_connect(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); -void cmd_groupchat(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); -void cmd_myid(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); -void cmd_nick(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); -void cmd_note(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); -void cmd_prompt_help(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); -void cmd_quit(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); -void cmd_status(WINDOW *, ToxWindow *, Tox *, int num, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_accept(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_add(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_clear(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_connect(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_groupchat(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_myid(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_nick(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_note(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_prompt_help(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_quit(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); +void cmd_status(WINDOW *, ToxWindow *, Tox *, int argc, char (*argv)[MAX_STR_SIZE]); diff --git a/src/groupchat.c b/src/groupchat.c index d1656b2..7c03cd2 100644 --- a/src/groupchat.c +++ b/src/groupchat.c @@ -18,7 +18,7 @@ static GroupChat groupchats[MAX_GROUPCHAT_NUM]; static int max_groupchat_index = 0; int num_groupchats = 0; -ToxWindow new_group_chat(Tox *m, ToxWindow *prompt, int groupnum); +ToxWindow new_group_chat(Tox *m, int groupnum); extern char *DATA_FILE; extern int store_data(Tox *m, char *path); @@ -29,7 +29,7 @@ int init_groupchat_win(ToxWindow *prompt, Tox *m, int groupnum) for (i = 0; i <= max_groupchat_index; ++i) { if (!groupchats[i].active) { - groupchats[i].chatwin = add_window(m, new_group_chat(m, prompt, groupnum)); + groupchats[i].chatwin = add_window(m, new_group_chat(m, groupnum)); groupchats[i].active = true; set_active_window(groupchats[i].chatwin); @@ -153,7 +153,7 @@ static void groupchat_onKey(ToxWindow *self, Tox *m, wint_t key) bool close_win = false; if (line[0] == '/') { - if (close_win = strncmp(line, "/close", strlen("/close")) == 0) { + if (close_win = strcmp(line, "/close") == 0) { set_active_window(0); int groupnum = self->num; delwin(ctx->linewin); @@ -162,7 +162,7 @@ static void groupchat_onKey(ToxWindow *self, Tox *m, wint_t key) } else if (strncmp(line, "/help", strlen("/help")) == 0) print_groupchat_help(ctx); else - execute(ctx->history, self->prompt, m, self->num, line, GROUPCHAT_COMMAND_MODE); + execute(ctx->history, self, m, line, GROUPCHAT_COMMAND_MODE); } else { /* make sure the string has at least non-space character */ if (!string_is_empty(line)) { @@ -216,7 +216,7 @@ static void groupchat_onInit(ToxWindow *self, Tox *m) wmove(self->window, y - CURS_Y_OFFSET, 0); } -ToxWindow new_group_chat(Tox *m, ToxWindow *prompt, int groupnum) +ToxWindow new_group_chat(Tox *m, int groupnum) { ToxWindow ret; memset(&ret, 0, sizeof(ret)); @@ -241,7 +241,6 @@ ToxWindow new_group_chat(Tox *m, ToxWindow *prompt, int groupnum) exit(EXIT_FAILURE); } - ret.prompt = prompt; ret.num = groupnum; return ret; diff --git a/src/misc_tools.h b/src/misc_tools.h index 9c18398..c598fca 100644 --- a/src/misc_tools.h +++ b/src/misc_tools.h @@ -24,4 +24,4 @@ char *wc_to_char(wchar_t ch); bool timed_out(uint64_t timestamp, uint64_t timeout, uint64_t curtime); /* Beeps and makes window tab blink */ -void alert_window(ToxWindow *self); \ No newline at end of file +void alert_window(ToxWindow *self); diff --git a/src/prompt.c b/src/prompt.c index e480042..34c0408 100644 --- a/src/prompt.c +++ b/src/prompt.c @@ -102,7 +102,7 @@ static void prompt_onKey(ToxWindow *self, Tox *m, wint_t key) /* RETURN key: execute command */ else if (key == '\n') { wprintw(self->window, "\n"); - execute(self->window, self, m, self->num, prompt_buf, GLOBAL_COMMAND_MODE); + execute(self->window, self, m, prompt_buf, GLOBAL_COMMAND_MODE); prompt_buf_pos = 0; prompt_buf[0] = '\0'; } @@ -180,7 +180,7 @@ static void prompt_onDraw(ToxWindow *self, Tox *m) static void prompt_onInit(ToxWindow *self, Tox *m) { scrollok(self->window, true); - execute(self->window, self, m, self->num, "/help", GLOBAL_COMMAND_MODE); + execute(self->window, self, m, "/help", GLOBAL_COMMAND_MODE); wclrtoeol(self->window); } diff --git a/src/toxic_windows.h b/src/toxic_windows.h index 5e4d1a3..f2d5cad 100644 --- a/src/toxic_windows.h +++ b/src/toxic_windows.h @@ -66,14 +66,12 @@ struct ToxWindow_ { void(*onFileData)(ToxWindow *, Tox *, int, uint8_t, uint8_t *, uint16_t); char name[TOX_MAX_NAME_LENGTH]; + bool blink; int num; int x; void *chatwin; void *stb; - void *prompt; - - bool blink; WINDOW *window; }; diff --git a/src/windows.c b/src/windows.c index e90e177..037e2d9 100644 --- a/src/windows.c +++ b/src/windows.c @@ -13,8 +13,8 @@ extern char *DATA_FILE; static ToxWindow windows[MAX_WINDOWS_NUM]; static ToxWindow *active_window; -static ToxWindow *prompt; static Tox *m; +static ToxWindow *prompt; /* CALLBACKS START */ void on_request(uint8_t *public_key, uint8_t *data, uint16_t length, void *userdata)