Skip to content

Fix flags behaviour

Simon McVittie requested to merge wip/smcv/fix-flags into master

Sorry @denittis, I should have caught this during review...

  • system-info: Make SRT_DRIVER_FLAGS_NONE the absence of flags

    GLib flags conventionally have a NONE value that is numerically zero and represents default behaviour, with any deviation from default behaviour being represented by a nonzero flag.

    In particular, for the flags we currently know (INCLUDE_ALL and NONE), there are only two states that make sense to have numerically distinct: NONE and INCLUDE_ALL. If NONE is non-zero, then 0 makes no sense (it would request behaviour that differs from the behaviour of not setting any flags, but what would that mean?), while NONE|INCLUDE_ALL logically ought to be equivalent to INCLUDE_ALL.

    Fixing this requires some adjustments to the logic for skipping extra drivers, because (NONE & flags) will never be nonzero. It's the presence or absence of INCLUDE_ALL that we should care about, not the presence or absence of NONE.

  • system-info: Add an undocumented --ignore-extra-drivers option

    This is basically never going to be useful, except to test the previous commit, so I haven't bothered to include it in the man page.

Merge request reports