mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
Add support for form edition in command execution
Also change wins_get_by_string prototype in order to handle const str.
This commit is contained in:
parent
40eee1caab
commit
7123e94e82
@ -364,7 +364,7 @@ wins_get_by_num(int i)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ProfWin*
|
ProfWin*
|
||||||
wins_get_by_string(char *str)
|
wins_get_by_string(const char *str)
|
||||||
{
|
{
|
||||||
if (g_strcmp0(str, "console") == 0) {
|
if (g_strcmp0(str, "console") == 0) {
|
||||||
ProfWin *conswin = wins_get_console();
|
ProfWin *conswin = wins_get_console();
|
||||||
|
@ -68,7 +68,7 @@ ProfWin* wins_get_current(void);
|
|||||||
void wins_set_current_by_num(int i);
|
void wins_set_current_by_num(int i);
|
||||||
|
|
||||||
ProfWin* wins_get_by_num(int i);
|
ProfWin* wins_get_by_num(int i);
|
||||||
ProfWin* wins_get_by_string(char *str);
|
ProfWin* wins_get_by_string(const char *str);
|
||||||
|
|
||||||
ProfWin* wins_get_next(void);
|
ProfWin* wins_get_next(void);
|
||||||
ProfWin* wins_get_previous(void);
|
ProfWin* wins_get_previous(void);
|
||||||
|
@ -1097,7 +1097,7 @@ _command_exec_response_handler(xmpp_stanza_t *const stanza, void *const userdata
|
|||||||
{
|
{
|
||||||
const char *id = xmpp_stanza_get_id(stanza);
|
const char *id = xmpp_stanza_get_id(stanza);
|
||||||
const char *type = xmpp_stanza_get_type(stanza);
|
const char *type = xmpp_stanza_get_type(stanza);
|
||||||
char *from = strdup(xmpp_stanza_get_from(stanza));
|
const char *from = xmpp_stanza_get_from(stanza);
|
||||||
const char *const command = userdata;
|
const char *const command = userdata;
|
||||||
|
|
||||||
if (id) {
|
if (id) {
|
||||||
@ -1115,7 +1115,6 @@ _command_exec_response_handler(xmpp_stanza_t *const stanza, void *const userdata
|
|||||||
win_command_exec_error(win, command, error_message);
|
win_command_exec_error(win, command, error_message);
|
||||||
}
|
}
|
||||||
free(error_message);
|
free(error_message);
|
||||||
free(from);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1136,13 +1135,31 @@ _command_exec_response_handler(xmpp_stanza_t *const stanza, void *const userdata
|
|||||||
win_handle_command_exec_result_note(win, type, value);
|
win_handle_command_exec_result_note(win, type, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (g_strcmp0(status, "executing") == 0) {
|
return 0;
|
||||||
} else if (g_strcmp0(status, "canceled") == 0) {
|
|
||||||
} else {
|
|
||||||
/* TODO */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
free(from);
|
if (g_strcmp0(status, "executing") == 0) {
|
||||||
|
xmpp_stanza_t *x = xmpp_stanza_get_child_by_ns(cmd, STANZA_NS_DATA);
|
||||||
|
if (x == NULL) {
|
||||||
|
/* TODO */
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *form_type = xmpp_stanza_get_type(x);
|
||||||
|
if (g_strcmp0(form_type, "form") != 0) {
|
||||||
|
/* TODO */
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataForm *form = form_create(x);
|
||||||
|
ProfMucConfWin *confwin = (ProfMucConfWin*)wins_new_muc_config(from, form);
|
||||||
|
mucconfwin_handle_configuration(confwin, form);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g_strcmp0(status, "canceled") == 0) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TODO */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user