<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dmenu.git, branch master</title>
<subtitle>dynamic menu
</subtitle>
<link rel='alternate' type='text/html' href='https://git.kartoffeltoaster.de/dmenu.git/'/>
<entry>
<title>add -of and -ob arguments for outline colors options for multi-selection</title>
<updated>2026-01-30T10:09:51+00:00</updated>
<author>
<name>Julien Addé</name>
<email>juadde+suckless@gmail.com</email>
</author>
<published>2026-01-28T14:57:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kartoffeltoaster.de/dmenu.git/commit/?id=7175c4880bac3d2a2d4a6262b59193f0a38e2fdb'/>
<id>7175c4880bac3d2a2d4a6262b59193f0a38e2fdb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>drw.c: drw_scm_free: call free inside</title>
<updated>2025-09-29T16:47:16+00:00</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2025-09-29T16:47:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kartoffeltoaster.de/dmenu.git/commit/?id=8b48986f4c730725367e2865e5ea24931855018f'/>
<id>8b48986f4c730725367e2865e5ea24931855018f</id>
<content type='text'>
Because drw_scm_create() allocates it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Because drw_scm_create() allocates it.
</pre>
</div>
</content>
</entry>
<entry>
<title>cleanup schemes and colors</title>
<updated>2025-09-27T10:10:37+00:00</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2025-09-27T10:10:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kartoffeltoaster.de/dmenu.git/commit/?id=77f96d704bd16b04fe731da815a4e76c4e62decb'/>
<id>77f96d704bd16b04fe731da815a4e76c4e62decb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>bump version to 5.4</title>
<updated>2025-08-09T12:33:40+00:00</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2025-08-09T12:33:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kartoffeltoaster.de/dmenu.git/commit/?id=d893c63cdd927c33b9b8c9bc52aaa284199a650a'/>
<id>d893c63cdd927c33b9b8c9bc52aaa284199a650a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>XUngrabKeyboard() instead of XUngrabKey()</title>
<updated>2025-03-17T20:01:05+00:00</updated>
<author>
<name>Adam Purkrt</name>
<email>adam@purkrt.cz</email>
</author>
<published>2025-03-15T18:53:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kartoffeltoaster.de/dmenu.git/commit/?id=b1e217b29aab8936e9831961943676acd9cdcdd8'/>
<id>b1e217b29aab8936e9831961943676acd9cdcdd8</id>
<content type='text'>
XUngrabKey(), which is currently used in cleanup(), is not the right
counterpart to XGrabKeyboard(), which is used in grabkeyboard(),
called from main().

XUngrabKeyboard() is the function to use, as grabbing the whole
keyboard is different to grabbing individual keys.

With the current code the keyboard gets ungrabbed, as far as I can tell,
only by the final XCloseDisplay() in cleanup(), as the XUngrabKey()
there effectively does nothing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
XUngrabKey(), which is currently used in cleanup(), is not the right
counterpart to XGrabKeyboard(), which is used in grabkeyboard(),
called from main().

XUngrabKeyboard() is the function to use, as grabbing the whole
keyboard is different to grabbing individual keys.

With the current code the keyboard gets ungrabbed, as far as I can tell,
only by the final XCloseDisplay() in cleanup(), as the XUngrabKey()
there effectively does nothing.
</pre>
</div>
</content>
</entry>
<entry>
<title>remove extra newline</title>
<updated>2024-10-30T12:03:25+00:00</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2024-10-30T12:03:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kartoffeltoaster.de/dmenu.git/commit/?id=86f0b5119eaa39943013d009967432ffd9d18365'/>
<id>86f0b5119eaa39943013d009967432ffd9d18365</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid unsigned integer underflow in drw_text()</title>
<updated>2024-10-30T12:02:57+00:00</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2024-10-30T12:02:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kartoffeltoaster.de/dmenu.git/commit/?id=dd3d348ae86065edf2d1e2a1bc920685dc4982fc'/>
<id>dd3d348ae86065edf2d1e2a1bc920685dc4982fc</id>
<content type='text'>
Patch by Raymond Cole &lt;rc@wolog.xyz&gt;, thanks.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Patch by Raymond Cole &lt;rc@wolog.xyz&gt;, thanks.
</pre>
</div>
</content>
</entry>
<entry>
<title>util.c: output function might override errno and thus affect perror()</title>
<updated>2024-10-27T19:08:46+00:00</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2024-10-27T19:08:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kartoffeltoaster.de/dmenu.git/commit/?id=545031a076d4b5712442a8fc2d983f1e9d9f4f79'/>
<id>545031a076d4b5712442a8fc2d983f1e9d9f4f79</id>
<content type='text'>
Original patch by Raymond Cole with some modifications, thanks!
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Original patch by Raymond Cole with some modifications, thanks!
</pre>
</div>
</content>
</entry>
<entry>
<title>drw.c: use the same pattern as ellipsis_width to check for infinite recursion</title>
<updated>2024-07-14T09:43:01+00:00</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2024-07-14T09:40:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kartoffeltoaster.de/dmenu.git/commit/?id=475d8093cb8d29d5756937bfa9e0b3b9e415f632'/>
<id>475d8093cb8d29d5756937bfa9e0b3b9e415f632</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>render invalid utf8 sequences as U+FFFD</title>
<updated>2024-07-14T09:42:58+00:00</updated>
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<published>2024-07-04T21:27:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kartoffeltoaster.de/dmenu.git/commit/?id=59936c7d972587a47d61161279bb8e8abc0b02f3'/>
<id>59936c7d972587a47d61161279bb8e8abc0b02f3</id>
<content type='text'>
previously drw_text would do the width calculations as if
invalid utf8 sequences were replaced with U+FFFD but would pass
the invalid utf8 sequence to xft to render where xft would just
cut it off at the first invalid byte.

this change makes invalid utf8 render as U+FFFD and avoids
sending invalid sequences to xft. the following can be used to
check the behavior before and after the patch:

	$ printf "0\xef1234567\ntest" | dmenu

Ref: https://lists.suckless.org/dev/2407/35646.html
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
previously drw_text would do the width calculations as if
invalid utf8 sequences were replaced with U+FFFD but would pass
the invalid utf8 sequence to xft to render where xft would just
cut it off at the first invalid byte.

this change makes invalid utf8 render as U+FFFD and avoids
sending invalid sequences to xft. the following can be used to
check the behavior before and after the patch:

	$ printf "0\xef1234567\ntest" | dmenu

Ref: https://lists.suckless.org/dev/2407/35646.html
</pre>
</div>
</content>
</entry>
</feed>
