commit a8e9513783f335b1ac7255e40a663adfffc4b475 from: Chris Down via: Hiltjo Posthuma date: Mon Apr 20 15:56:41 2020 UTC setmfact: Unify bounds for compile-time and runtime mfact There are two places that mfact can be set: - In the mfact global, which is defined at compile time and passed into m->mfact during monitor setup. No bounds checks are performed, but the comment alongside it says that valid values are [0.05..0.95]: static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ - By setmfact, which adjusts m->mfact at runtime. It also does some minimum and maximum bounds checks, allowing [0.1..0.9]. Values outside of that range are ignored, and mfact is not adjusted. These different thresholds mean that one cannot setmfact 0.95 or 0.05, despite the comment above that lists the legal range for mfact. Clarify this by enforcing the same bounds in setmfact at runtime as those listed for mfact at compile time. commit - c82db690cc0c4624dad4dc6ae899020799ec84db commit + a8e9513783f335b1ac7255e40a663adfffc4b475 blob - 4465af1bf37d03ff16ae0726c55421ebc9ec75a9 blob + 41c6767d60c443e4ffe5e3519503e5d191163fd8 --- dwm.c +++ dwm.c @@ -1520,7 +1520,7 @@ setmfact(const Arg *arg) if (!arg || !selmon->lt[selmon->sellt]->arrange) return; f = arg->f < 1.0 ? arg->f + selmon->mfact : arg->f - 1.0; - if (f < 0.1 || f > 0.9) + if (f < 0.05 || f > 0.95) return; selmon->mfact = f; arrange(selmon);