diff -r c2d7d9dd4193 -r 80bd7f49075f mcabber/src/commands.c --- a/mcabber/src/commands.c Sat Apr 22 10:50:54 2006 +0200 +++ b/mcabber/src/commands.c Sat Apr 22 22:41:06 2006 +0200 @@ -2086,6 +2086,7 @@ char **paramlst; char *evid, *subcmd; int action = -1; + GSList *evidlst; paramlst = split_arg(arg, 2, 0); // id, subcmd evid = *paramlst; @@ -2112,14 +2113,28 @@ if (action == -1) { scr_LogPrint(LPRINT_NORMAL, "Wrong action parameter."); } else if (action >= 0 && action <= 2) { + GSList *p; + if (action == 2) { action = EVS_CONTEXT_CANCEL; } else { action += EVS_CONTEXT_USER; } - if (evs_callback(evid, action) == -1) { - scr_LogPrint(LPRINT_NORMAL, "Event %s not found.", evid); + + if (!strcmp(evid, "*")) { + // Use completion list + evidlst = evs_geteventslist(FALSE); + } else { + // Let's create a slist with the provided event id + evidlst = g_slist_append(NULL, g_strdup(evid)); } + for (p = evidlst; p; p = g_slist_next(p)) { + if (evs_callback(p->data, action) == -1) { + scr_LogPrint(LPRINT_NORMAL, "Event %s not found.", p->data); + } + g_free(p->data); + } + g_slist_free(evidlst); } free_arg_lst(paramlst);