fixed behavior on setFlag()

This commit is contained in:
Patrik Karisch 2013-07-10 23:52:37 +02:00
parent 5403184e5b
commit 5e62f87077

View File

@ -179,21 +179,27 @@ class Server
return;
if (isset(self::$exclusiveFlags[$flag])) {
$kill = $flag;
$kill = self::$exclusiveFlags[$flag];
} elseif ($index = array_search($flag, self::$exclusiveFlags)) {
$kill = $index;
}
if (isset($kill) && isset($this->flags[$kill]))
unset($this->flags[$kill]);
if (isset($kill) && false !== $index = array_search($kill, $this->flags))
unset($this->flags[$index]);
$index = array_search($flag, $this->flags);
if (isset($value) && $value !== true) {
if ($value == false) {
unset($this->flags[$flag]);
if ($value == false && $index !== false) {
unset($this->flags[$index]);
} elseif ($value != false) {
$match = preg_grep('/' . $flag . '/', $this->flags);
if (reset($match)) {
$this->flags[key($match)] = $flag . '=' . $value;
} else {
$this->flags[] = $flag . '=' . $value;
}
} else {
}
} elseif ($index === false) {
$this->flags[] = $flag;
}
}