equal
deleted
inserted
replaced
200 } |
200 } |
201 } |
201 } |
202 |
202 |
203 // compl_get_category_list() |
203 // compl_get_category_list() |
204 // Returns a slist of all words in the categories specified by the given flags |
204 // Returns a slist of all words in the categories specified by the given flags |
205 GSList *compl_get_category_list(guint cat_flags) |
205 // Iff this function sets *dynlist to TRUE, then the caller must free the |
|
206 // whole list after use. |
|
207 GSList *compl_get_category_list(guint cat_flags, guint *dynlist) |
206 { |
208 { |
207 GSList *sl_cat; |
209 GSList *sl_cat; |
|
210 |
|
211 *dynlist = FALSE; |
|
212 |
208 // Look for category |
213 // Look for category |
209 // XXX Actually that's not that simple... cat_flags can be a combination |
214 // XXX Actually that's not that simple... cat_flags can be a combination |
210 // of several flags! |
215 // of several flags! |
211 for (sl_cat=Categories; sl_cat; sl_cat = g_slist_next(sl_cat)) { |
216 for (sl_cat=Categories; sl_cat; sl_cat = g_slist_next(sl_cat)) { |
212 if (cat_flags == ((category*)sl_cat->data)->flag) |
217 if (cat_flags == ((category*)sl_cat->data)->flag) |
214 } |
219 } |
215 if (sl_cat) // Category was found, easy... |
220 if (sl_cat) // Category was found, easy... |
216 return ((category*)sl_cat->data)->words; |
221 return ((category*)sl_cat->data)->words; |
217 |
222 |
218 // Handle dynamic SLists |
223 // Handle dynamic SLists |
|
224 *dynlist = TRUE; |
219 if (cat_flags == COMPL_GROUPNAME) { |
225 if (cat_flags == COMPL_GROUPNAME) { |
220 return compl_list(ROSTER_TYPE_GROUP); |
226 return compl_list(ROSTER_TYPE_GROUP); |
221 } |
227 } |
222 if (cat_flags == COMPL_JID) { |
228 if (cat_flags == COMPL_JID) { |
223 return compl_list(ROSTER_TYPE_USER); |
229 return compl_list(ROSTER_TYPE_USER); |
227 } |
233 } |
228 if (cat_flags == COMPL_EVENTSID) { |
234 if (cat_flags == COMPL_EVENTSID) { |
229 return evs_geteventslist(TRUE); |
235 return evs_geteventslist(TRUE); |
230 } |
236 } |
231 |
237 |
|
238 *dynlist = FALSE; |
232 return NULL; |
239 return NULL; |
233 } |
240 } |
234 |
241 |
235 /* vim: set expandtab cindent cinoptions=>2\:2(0: For Vim users... */ |
242 /* vim: set expandtab cindent cinoptions=>2\:2(0: For Vim users... */ |