mirror of
https://github.com/irssi/irssi.git
synced 2026-08-22 10:02:22 +02:00
handle levels more logically
This commit is contained in:
parent
453b648e7e
commit
fe7af7071b
1 changed files with 17 additions and 12 deletions
|
|
@ -173,19 +173,24 @@ int combine_level(int dest, const char *src)
|
||||||
|
|
||||||
g_return_val_if_fail(src != NULL, dest);
|
g_return_val_if_fail(src != NULL, dest);
|
||||||
|
|
||||||
list = g_strsplit(src, " ", -1);
|
if (index(src, '+') == NULL && index(src, '-') == NULL) {
|
||||||
for (item = list; *item != NULL; item++) {
|
dest = level2bits(src, NULL);
|
||||||
itemname = *item + (**item == '+' || **item == '-' ? 1 : 0);
|
}
|
||||||
itemlevel = level_get(itemname);
|
else {
|
||||||
|
list = g_strsplit(src, " ", -1);
|
||||||
|
for (item = list; *item != NULL; item++) {
|
||||||
|
itemname = *item + (**item == '+' || **item == '-' ? 1 : 0);
|
||||||
|
itemlevel = level_get(itemname);
|
||||||
|
|
||||||
if (g_strcmp0(itemname, "NONE") == 0)
|
if (g_strcmp0(itemname, "NONE") == 0)
|
||||||
dest = 0;
|
dest = 0;
|
||||||
else if (**item == '-')
|
else if (**item == '-')
|
||||||
dest &= ~(itemlevel);
|
dest &= ~(itemlevel);
|
||||||
else
|
else
|
||||||
dest |= itemlevel;
|
dest |= itemlevel;
|
||||||
|
}
|
||||||
|
g_strfreev(list);
|
||||||
}
|
}
|
||||||
g_strfreev(list);
|
|
||||||
|
|
||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue