Mercurial > hg
comparison mcabber/src/commands.c @ 820:80bd7f49075f
Allow '*' in /event command
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sat, 22 Apr 2006 22:41:06 +0200 |
parents | f6cda389db48 |
children | dd865cc57aa2 |
comparison
equal
deleted
inserted
replaced
819:c2d7d9dd4193 | 820:80bd7f49075f |
---|---|
2084 static void do_event(char *arg) | 2084 static void do_event(char *arg) |
2085 { | 2085 { |
2086 char **paramlst; | 2086 char **paramlst; |
2087 char *evid, *subcmd; | 2087 char *evid, *subcmd; |
2088 int action = -1; | 2088 int action = -1; |
2089 GSList *evidlst; | |
2089 | 2090 |
2090 paramlst = split_arg(arg, 2, 0); // id, subcmd | 2091 paramlst = split_arg(arg, 2, 0); // id, subcmd |
2091 evid = *paramlst; | 2092 evid = *paramlst; |
2092 subcmd = *(paramlst+1); | 2093 subcmd = *(paramlst+1); |
2093 | 2094 |
2110 action = 2; | 2111 action = 2; |
2111 | 2112 |
2112 if (action == -1) { | 2113 if (action == -1) { |
2113 scr_LogPrint(LPRINT_NORMAL, "Wrong action parameter."); | 2114 scr_LogPrint(LPRINT_NORMAL, "Wrong action parameter."); |
2114 } else if (action >= 0 && action <= 2) { | 2115 } else if (action >= 0 && action <= 2) { |
2116 GSList *p; | |
2117 | |
2115 if (action == 2) { | 2118 if (action == 2) { |
2116 action = EVS_CONTEXT_CANCEL; | 2119 action = EVS_CONTEXT_CANCEL; |
2117 } else { | 2120 } else { |
2118 action += EVS_CONTEXT_USER; | 2121 action += EVS_CONTEXT_USER; |
2119 } | 2122 } |
2120 if (evs_callback(evid, action) == -1) { | 2123 |
2121 scr_LogPrint(LPRINT_NORMAL, "Event %s not found.", evid); | 2124 if (!strcmp(evid, "*")) { |
2122 } | 2125 // Use completion list |
2126 evidlst = evs_geteventslist(FALSE); | |
2127 } else { | |
2128 // Let's create a slist with the provided event id | |
2129 evidlst = g_slist_append(NULL, g_strdup(evid)); | |
2130 } | |
2131 for (p = evidlst; p; p = g_slist_next(p)) { | |
2132 if (evs_callback(p->data, action) == -1) { | |
2133 scr_LogPrint(LPRINT_NORMAL, "Event %s not found.", p->data); | |
2134 } | |
2135 g_free(p->data); | |
2136 } | |
2137 g_slist_free(evidlst); | |
2123 } | 2138 } |
2124 | 2139 |
2125 free_arg_lst(paramlst); | 2140 free_arg_lst(paramlst); |
2126 } | 2141 } |
2127 | 2142 |