struct t_infolist * irc_info_infolist_irc_notify_cb (void *data, const char *infolist_name, void *pointer, const char *arguments) { struct t_infolist *ptr_infolist; struct t_irc_server *ptr_server; struct t_irc_notify *ptr_notify; /* make C compiler happy */ (void) data; (void) infolist_name; if (pointer && !irc_notify_valid (NULL, pointer)) return NULL; ptr_infolist = dogechat_infolist_new (); if (!ptr_infolist) return NULL; if (pointer) { /* build list with only one notify */ if (!irc_notify_add_to_infolist (ptr_infolist, pointer)) { dogechat_infolist_free (ptr_infolist); return NULL; } return ptr_infolist; } else { /* build list with notify list of all servers matching arguments */ for (ptr_server = irc_servers; ptr_server; ptr_server = ptr_server->next_server) { if (!arguments || !arguments[0] || dogechat_string_match (ptr_server->name, arguments, 0)) { for (ptr_notify = ptr_server->notify_list; ptr_notify; ptr_notify = ptr_notify->next_notify) { if (!irc_notify_add_to_infolist (ptr_infolist, ptr_notify)) { dogechat_infolist_free (ptr_infolist); return NULL; } } } } return ptr_infolist; } return NULL; }
struct t_infolist * alias_info_infolist_alias_cb (void *data, const char *infolist_name, void *pointer, const char *arguments) { struct t_infolist *ptr_infolist; struct t_alias *ptr_alias; /* make C compiler happy */ (void) data; (void) infolist_name; (void) arguments; if (pointer && !alias_valid (pointer)) return NULL; ptr_infolist = dogechat_infolist_new (); if (!ptr_infolist) return NULL; if (pointer) { /* build list with only one alias */ if (!alias_add_to_infolist (ptr_infolist, pointer)) { dogechat_infolist_free (ptr_infolist); return NULL; } return ptr_infolist; } else { /* build list with all aliases matching arguments */ for (ptr_alias = alias_list; ptr_alias; ptr_alias = ptr_alias->next_alias) { if (!arguments || !arguments[0] || dogechat_string_match (ptr_alias->name, arguments, 0)) { if (!alias_add_to_infolist (ptr_infolist, ptr_alias)) { dogechat_infolist_free (ptr_infolist); return NULL; } } } return ptr_infolist; } return NULL; }