1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-12-04 14:46:46 -05:00

XEP-0377: Fix arg parsing

This commit is contained in:
Michael Vetter 2021-07-01 19:43:11 +02:00
parent 07bb790565
commit e4a62f3958

View File

@ -3017,17 +3017,14 @@ cmd_blocked(ProfWin* window, const char* const command, gchar** args)
if (g_strcmp0(args[0], "add") == 0) { if (g_strcmp0(args[0], "add") == 0) {
char* jid = args[1]; char* jid = args[1];
// /blocked add jid or /blocked add (in window) if (jid == NULL && (window->type == WIN_CHAT)) {
if (g_strv_length(args) < 3) { ProfChatWin* chatwin = (ProfChatWin*)window;
if (jid == NULL && (window->type == WIN_CHAT)) { jid = chatwin->barejid;
ProfChatWin* chatwin = (ProfChatWin*)window; }
jid = chatwin->barejid;
}
if (jid == NULL) { if (jid == NULL) {
cons_bad_cmd_usage(command); cons_bad_cmd_usage(command);
return TRUE; return TRUE;
}
} }
gboolean res = blocked_add(jid, br, NULL); gboolean res = blocked_add(jid, br, NULL);
@ -3053,6 +3050,20 @@ cmd_blocked(ProfWin* window, const char* const command, gchar** args)
} }
if (strncmp(args[0], "report-", 7) == 0) { if (strncmp(args[0], "report-", 7) == 0) {
char *jid;
char *msg = NULL;
guint argn = g_strv_length(args);
if (argn >= 2) {
jid = args[1];
} else {
cons_bad_cmd_usage(command);
}
if (argn >= 3) {
msg = args[2];
}
if (args[1] && g_strcmp0(args[0], "report-abuse") == 0) { if (args[1] && g_strcmp0(args[0], "report-abuse") == 0) {
br = BLOCKED_REPORT_ABUSE; br = BLOCKED_REPORT_ABUSE;
} else if (args[1] && g_strcmp0(args[0], "report-spam") == 0) { } else if (args[1] && g_strcmp0(args[0], "report-spam") == 0) {
@ -3067,11 +3078,11 @@ cmd_blocked(ProfWin* window, const char* const command, gchar** args)
return TRUE; return TRUE;
} }
// args[3] is an optional message gboolean res = blocked_add(jid, br, msg);
gboolean res = blocked_add(args[1], br, args[3]);
if (!res) { if (!res) {
cons_show("User %s already blocked.", args[1]); cons_show("User %s already blocked.", args[1]);
} }
return TRUE;
} }
GList* blocked = blocked_list(); GList* blocked = blocked_list();