Add command subcommands: list and exec

Also handle list result
This commit is contained in:
Paul Fariello
2018-03-22 04:47:52 +02:20
parent ca022ec75e
commit c9f6a78f57
10 changed files with 158 additions and 26 deletions

View File

@@ -377,6 +377,8 @@ void win_show_info(ProfWin *window, PContact contact);
void win_clear(ProfWin *window);
char* win_get_tab_identifier(ProfWin *window);
char* win_to_string(ProfWin *window);
void win_command_list_error(ProfWin *window, const char *const error);
void win_handle_command_list(ProfWin *window, GSList *cmds);
// desktop notifications
void notifier_initialise(void);

View File

@@ -1724,3 +1724,31 @@ win_sub_newline_lazy(WINDOW *win)
wmove(win, cury+1, 0);
}
}
void
win_command_list_error(ProfWin *window, const char *const error)
{
assert(window != NULL);
win_println(window, THEME_ERROR, '!', "Error retrieving command list: %s", error);
}
void
win_handle_command_list(ProfWin *window, GSList *cmds)
{
assert(window != NULL);
if (cmds) {
win_println(window, THEME_DEFAULT, '!', "Ad hoc commands:");
GSList *curr_cmd = cmds;
while (curr_cmd) {
const char *cmd = curr_cmd->data;
win_println(window, THEME_DEFAULT, '!', " %s", cmd);
curr_cmd = g_slist_next(curr_cmd);
}
win_println(window, THEME_DEFAULT, '!', "");
} else {
win_println(window, THEME_DEFAULT, '!', "No commands found");
win_println(window, THEME_DEFAULT, '!', "");
}
}