New function Lists_CheckReason() to get reason of list entries

This commit is contained in:
Alexander Barton 2012-01-22 18:11:24 +01:00
parent 9882e578e9
commit 6e28f4a7d1
2 changed files with 17 additions and 3 deletions

View File

@ -321,6 +321,19 @@ Lists_MakeMask(const char *Pattern)
*/ */
bool bool
Lists_Check(struct list_head *h, CLIENT *Client) Lists_Check(struct list_head *h, CLIENT *Client)
{
return Lists_CheckReason(h, Client) != NULL;
}
/**
* Check if a client is listed in a list and return the "reason".
*
* @param h List head.
* @param Client Client to check.
* @return true if client is listed, false if not.
*/
char *
Lists_CheckReason(struct list_head *h, CLIENT *Client)
{ {
struct list_elem *e, *last, *next; struct list_elem *e, *last, *next;
@ -338,13 +351,13 @@ Lists_Check( struct list_head *h, CLIENT *Client)
e->mask); e->mask);
Lists_Unlink(h, last, e); Lists_Unlink(h, last, e);
} }
return true; return e->reason ? e->reason : "";
} }
last = e; last = e;
e = next; e = next;
} }
return false; return NULL;
} }
/** /**

View File

@ -30,6 +30,7 @@ GLOBAL struct list_elem *Lists_GetFirst PARAMS((const struct list_head *));
GLOBAL struct list_elem *Lists_GetNext PARAMS((const struct list_elem *)); GLOBAL struct list_elem *Lists_GetNext PARAMS((const struct list_elem *));
GLOBAL bool Lists_Check PARAMS((struct list_head *head, CLIENT *client)); GLOBAL bool Lists_Check PARAMS((struct list_head *head, CLIENT *client));
GLOBAL char *Lists_CheckReason PARAMS((struct list_head *head, CLIENT *client));
GLOBAL struct list_elem *Lists_CheckDupeMask PARAMS((const struct list_head *head, GLOBAL struct list_elem *Lists_CheckDupeMask PARAMS((const struct list_head *head,
const char *mask)); const char *mask));