isetmfact: Unify bounds for compile-time and runtime mfact - dwm - dynamic window manager Err parazyd.org 70 hgit clone https://git.parazyd.org/dwm URL:https://git.parazyd.org/dwm parazyd.org 70 1Log /git/dwm/log.gph parazyd.org 70 1Files /git/dwm/files.gph parazyd.org 70 1Refs /git/dwm/refs.gph parazyd.org 70 1README /git/dwm/file/README.gph parazyd.org 70 1LICENSE /git/dwm/file/LICENSE.gph parazyd.org 70 i--- Err parazyd.org 70 1commit a8e9513783f335b1ac7255e40a663adfffc4b475 /git/dwm/commit/a8e9513783f335b1ac7255e40a663adfffc4b475.gph parazyd.org 70 1parent c82db690cc0c4624dad4dc6ae899020799ec84db /git/dwm/commit/c82db690cc0c4624dad4dc6ae899020799ec84db.gph parazyd.org 70 hAuthor: Chris Down URL:mailto:chris@chrisdown.name parazyd.org 70 iDate: Mon, 20 Apr 2020 16:41:52 +0100 Err parazyd.org 70 i Err parazyd.org 70 isetmfact: Unify bounds for compile-time and runtime mfact Err parazyd.org 70 i Err parazyd.org 70 iThere are two places that mfact can be set: Err parazyd.org 70 i Err parazyd.org 70 i- In the mfact global, which is defined at compile time and passed Err parazyd.org 70 i into m->mfact during monitor setup. No bounds checks are performed, Err parazyd.org 70 i but the comment alongside it says that valid values are [0.05..0.95]: Err parazyd.org 70 i Err parazyd.org 70 i static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ Err parazyd.org 70 i Err parazyd.org 70 i- By setmfact, which adjusts m->mfact at runtime. It also does some Err parazyd.org 70 i minimum and maximum bounds checks, allowing [0.1..0.9]. Values outside Err parazyd.org 70 i of that range are ignored, and mfact is not adjusted. Err parazyd.org 70 i Err parazyd.org 70 iThese different thresholds mean that one cannot setmfact 0.95 or 0.05, Err parazyd.org 70 idespite the comment above that lists the legal range for mfact. Err parazyd.org 70 i Err parazyd.org 70 iClarify this by enforcing the same bounds in setmfact at runtime as Err parazyd.org 70 ithose listed for mfact at compile time. Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i M dwm.c | 2 +- Err parazyd.org 70 i Err parazyd.org 70 i1 file changed, 1 insertion(+), 1 deletion(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/dwm.c b/dwm.c /git/dwm/file/dwm.c.gph parazyd.org 70 i@@ -1520,7 +1520,7 @@ setmfact(const Arg *arg) Err parazyd.org 70 i if (!arg || !selmon->lt[selmon->sellt]->arrange) Err parazyd.org 70 i return; Err parazyd.org 70 i f = arg->f < 1.0 ? arg->f + selmon->mfact : arg->f - 1.0; Err parazyd.org 70 i- if (f < 0.1 || f > 0.9) Err parazyd.org 70 i+ if (f < 0.05 || f > 0.95) Err parazyd.org 70 i return; Err parazyd.org 70 i selmon->mfact = f; Err parazyd.org 70 i arrange(selmon); Err parazyd.org 70 .