returns a list of flags, which byte pattern is found in value
(defun flag-list (value &key
(flag-system *current-flag-system*)
flags)
"returns a list of flags, which byte pattern is found in value"
(let ((ret (list)))
(if flags
(mapc (lambda (key)
(when (has-flag value key flag-system)
(push key ret)))
flags)
(maphash (lambda (key val)
(when (= val (logand val value))
(push key ret)))
(flag-system-flags flag-system)))
ret))Source Context