mirror of
https://github.com/irssi/irssi.git
synced 2026-08-23 10:32:31 +02:00
Merge 102659f3f4 into c890ecafa0
This commit is contained in:
commit
f7435e3a67
3 changed files with 23 additions and 1 deletions
|
|
@ -261,6 +261,23 @@ char *gslist_to_string(GSList *list, const char *delimiter)
|
|||
return ret;
|
||||
}
|
||||
|
||||
gboolean gslist_is_unique(GSList *list, GCompareFunc func)
|
||||
{
|
||||
const char *prev;
|
||||
|
||||
if (list == NULL)
|
||||
return TRUE;
|
||||
|
||||
prev = (const char *)list->data;
|
||||
|
||||
for (list = list->next; list != NULL; list = list->next) {
|
||||
if (func(list->data, prev) != 0)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void hash_save_key(char *key, void *value, GSList **list)
|
||||
{
|
||||
*list = g_slist_append(*list, key);
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ void *gslist_foreach_find(GSList *list, FOREACH_FIND_FUNC func, const void *data
|
|||
char *gslistptr_to_string(GSList *list, int offset, const char *delimiter);
|
||||
/* `list' contains char* */
|
||||
char *gslist_to_string(GSList *list, const char *delimiter);
|
||||
/* 'list' elements are all the same */
|
||||
gboolean gslist_is_unique(GSList *list, GCompareFunc func);
|
||||
|
||||
GList *optlist_remove_known(const char *cmd, GHashTable *optlist);
|
||||
|
||||
|
|
|
|||
|
|
@ -83,6 +83,9 @@ static void print_mode(MODE_REC *rec)
|
|||
|
||||
tmp = modes; modes = NULL;
|
||||
|
||||
if (gslist_is_unique(rec->nicks, (GCompareFunc)g_strcmp0))
|
||||
nicks = g_strdup(rec->nicks->data);
|
||||
else
|
||||
nicks = gslist_to_string(rec->nicks, ", ");
|
||||
printformat(rec->channel->server, rec->channel->visible_name,
|
||||
MSGLEVEL_MODES, IRCTXT_CHANMODE_CHANGE,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue