mcabber/src/compl.c
changeset 1076 b9698c89f46d
parent 894 f76b32ff2f14
child 1205 2de8f8ba1f34
equal deleted inserted replaced
1075:03bc225ad763 1076:b9698c89f46d
   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... */