URI:
       [dwm][patches][underlinetags] Updated 6.6 patch with underflow bugfix. - sites - public wiki contents of suckless.org
  HTML git clone git://git.suckless.org/sites
   DIR Log
   DIR Files
   DIR Refs
       ---
   DIR commit c368e92da736b618e8c1d57be4e703e76fc79f33
   DIR parent 0812d42af0f38358f4baa24711a4c70fcbe9e8b7
  HTML Author: jeffofbread <jeffofbreadcoding@gmail.com>
       Date:   Sat, 10 Jan 2026 17:42:18 -0500
       
       [dwm][patches][underlinetags] Updated 6.6 patch with underflow bugfix.
       
       Diffstat:
         A dwm.suckless.org/patches/underline… |      35 +++++++++++++++++++++++++++++++
         M dwm.suckless.org/patches/underline… |       2 ++
       
       2 files changed, 37 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/dwm.suckless.org/patches/underlinetags/dwm-underlinetags-6.6.diff b/dwm.suckless.org/patches/underlinetags/dwm-underlinetags-6.6.diff
       @@ -0,0 +1,35 @@
       +commit 50a6c42f8b206943cfe44c3077ed4b6c9d389e57
       +Author: jeffofbread <jeffofbreadcoding@gmail.com>
       +Date:   Sat Nov 1 22:26:00 2025 -0400
       +
       +    Fix integer underflow.
       +
       +diff --git a/config.def.h b/config.def.h
       +index 81c3fc0..c2bd4c6 100644
       +--- a/config.def.h
       ++++ b/config.def.h
       +@@ -21,6 +21,11 @@ static const char *colors[][3]      = {
       + /* tagging */
       + static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
       + 
       ++static const unsigned int ulinepad                = 5;        /* horizontal padding between the underline and tag */
       ++static const unsigned int ulinestroke        = 2;        /* thickness / height of the underline */
       ++static const unsigned int ulinevoffset        = 0;        /* how far above the bottom of the bar the line should appear */
       ++static const int ulineall                                = 0;        /* 1 to show underline on all tags, 0 for just the active ones */
       ++
       + static const Rule rules[] = {
       +         /* xprop(1):
       +          *        WM_CLASS(STRING) = instance, class
       +diff --git a/dwm.c b/dwm.c
       +index 4cf07eb..7b9df9b 100644
       +--- a/dwm.c
       ++++ b/dwm.c
       +@@ -723,6 +723,8 @@ drawbar(Monitor *m)
       +                 w = TEXTW(tags[i]);
       +                 drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeSel : SchemeNorm]);
       +                 drw_text(drw, x, 0, w, bh, lrpad / 2, tags[i], urg & 1 << i);
       ++                if (ulineall || m->tagset[m->seltags] & 1 << i) /* if there are conflicts, just move these lines directly underneath both 'drw_setscheme' and 'drw_text' :) */
       ++                        drw_rect(drw, x + ulinepad, bh - ulinestroke - ulinevoffset, (ulinepad * 2) > w ? 0 : w - (ulinepad * 2), ulinestroke, 1, 0);
       +                 if (occ & 1 << i)
       +                         drw_rect(drw, x + boxs, boxs, boxw, boxw,
       +                                 m == selmon && selmon->sel && selmon->sel->tags & 1 << i,
   DIR diff --git a/dwm.suckless.org/patches/underlinetags/index.md b/dwm.suckless.org/patches/underlinetags/index.md
       @@ -14,7 +14,9 @@ Config variables are avaliable to edit the size and position of the underline, a
        Download
        --------
        * [dwm-underlinetags-6.2.diff](dwm-underlinetags-6.2.diff)
       +* [dwm-underlinetags-6.6.diff](dwm-underlinetags-6.6.diff)
        
        Author
        ------
        * Tim Keller <tjk@tjkeller.xyz>
       +* JeffOfBread <jeffofbreadcoding@gmail.com> (bugfix)