<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dwm.git, branch 6.6</title>
<subtitle>My fork of dwm
</subtitle>
<id>https://git.marcelscrem.com/dwm.git/atom?h=6.6</id>
<link rel='self' href='https://git.marcelscrem.com/dwm.git/atom?h=6.6'/>
<link rel='alternate' type='text/html' href='https://git.marcelscrem.com/dwm.git/'/>
<updated>2025-08-09T12:34:03Z</updated>
<entry>
<title>bump version to 6.6</title>
<updated>2025-08-09T12:34:03Z</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2025-08-09T12:34:03Z</published>
<link rel='alternate' type='text/html' href='https://git.marcelscrem.com/dwm.git/commit/?id=693d94d350c806e77677c35958e18590c26e19d2'/>
<id>urn:sha1:693d94d350c806e77677c35958e18590c26e19d2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Avoid unsigned integer underflow in drw_text()</title>
<updated>2024-10-30T12:02:17Z</updated>
<author>
<name>Raymond Cole</name>
<email>rc@wolog.xyz</email>
</author>
<published>2024-10-28T00:34:55Z</published>
<link rel='alternate' type='text/html' href='https://git.marcelscrem.com/dwm.git/commit/?id=cfb8627a80a334f200f68c2c8f3e384313ebbaf5'/>
<id>urn:sha1:cfb8627a80a334f200f68c2c8f3e384313ebbaf5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>util.c: output function might override errno and thus affect perror()</title>
<updated>2024-10-27T19:10:07Z</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2024-10-27T19:10:07Z</published>
<link rel='alternate' type='text/html' href='https://git.marcelscrem.com/dwm.git/commit/?id=fcb2476b693ca4c40ad32c7119e27bbeb856865c'/>
<id>urn:sha1:fcb2476b693ca4c40ad32c7119e27bbeb856865c</id>
<content type='text'>
Original patch by Raymond Cole with some modifications, thanks!
</content>
</entry>
<entry>
<title>sync drw.{c,h} from dmenu</title>
<updated>2024-10-05T11:06:08Z</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2024-10-05T11:01:49Z</published>
<link rel='alternate' type='text/html' href='https://git.marcelscrem.com/dwm.git/commit/?id=8933ebcf50024f4378a78e556b1ac08091197206'/>
<id>urn:sha1:8933ebcf50024f4378a78e556b1ac08091197206</id>
<content type='text'>
- drw: minor improvement to the nomatches cache
- overhaul utf8decoding and render invalid utf8 sequences as U+FFFD.

Thanks NRK for these improvements!
</content>
</entry>
<entry>
<title>Add missing void to updateclientlist definition</title>
<updated>2024-06-08T16:21:00Z</updated>
<author>
<name>Pontus Stenetorp</name>
<email>pontus@stenetorp.se</email>
</author>
<published>2024-06-08T10:36:15Z</published>
<link rel='alternate' type='text/html' href='https://git.marcelscrem.com/dwm.git/commit/?id=5687f4696472ba6029bbba18e293e3e8b9e154ea'/>
<id>urn:sha1:5687f4696472ba6029bbba18e293e3e8b9e154ea</id>
<content type='text'>
Caught by -pedantic implying -Wstrict-prototypes for OpenBSD's 16.0.6 Clang.
</content>
</entry>
<entry>
<title>bump version to 6.5</title>
<updated>2024-03-19T11:13:16Z</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2024-03-19T11:13:16Z</published>
<link rel='alternate' type='text/html' href='https://git.marcelscrem.com/dwm.git/commit/?id=061e9fe9a7db396c0c4f3d996c3908fb43a6d50c'/>
<id>urn:sha1:061e9fe9a7db396c0c4f3d996c3908fb43a6d50c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Makefile: remove the options target</title>
<updated>2023-09-22T13:13:29Z</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2023-09-22T13:13:29Z</published>
<link rel='alternate' type='text/html' href='https://git.marcelscrem.com/dwm.git/commit/?id=9f8855343c881bdc01b9fff5b956537ba1106b76'/>
<id>urn:sha1:9f8855343c881bdc01b9fff5b956537ba1106b76</id>
<content type='text'>
The Makefile used to suppress output (by using @), so this target made sense at
the time.

But the Makefile should be simple and make debugging with less abstractions or
fancy printing.  The Makefile was made verbose and doesn't hide the build
output, so remove this target.

Prompted by a question on the mailing list about the options target.
</content>
</entry>
<entry>
<title>restore SIGCHLD sighandler to default before spawning a program</title>
<updated>2023-04-09T10:37:14Z</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2023-04-09T10:37:14Z</published>
<link rel='alternate' type='text/html' href='https://git.marcelscrem.com/dwm.git/commit/?id=e81f17d4c196aaed6893fd4beed49991caa3e2a4'/>
<id>urn:sha1:e81f17d4c196aaed6893fd4beed49991caa3e2a4</id>
<content type='text'>
From sigaction(2):
A child created via fork(2) inherits a copy of its parent's signal dispositions.
During an execve(2), the dispositions of handled signals are reset to the default;
the dispositions of ignored signals are left unchanged.

This refused to start directly some programs from configuring in config.h:

static Key keys[] = {
	MODKEY,                       XK_o,      spawn,          {.v = cmd } },
};

Some reported programs that didn't start were: mpv, anki, dmenu_extended.

Reported by pfx.
Initial patch suggestion by Storkman.
</content>
</entry>
<entry>
<title>config.mk: update to _XOPEN_SOURCE=700L</title>
<updated>2023-02-17T14:27:34Z</updated>
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<published>2023-02-17T05:05:09Z</published>
<link rel='alternate' type='text/html' href='https://git.marcelscrem.com/dwm.git/commit/?id=348f6559ab0d4793db196ffa56ba96ab95a594a6'/>
<id>urn:sha1:348f6559ab0d4793db196ffa56ba96ab95a594a6</id>
<content type='text'>
SA_NOCLDWAIT is marked as XSI in the posix spec [0] and FreeBSD and NetBSD
seems to more be strict about the feature test macro [1].

so update the macro to use _XOPEN_SOURCE=700L instead, which is equivalent to
_POSIX_C_SOURCE=200809L except that it also unlocks the X/Open System
Interfaces.

[0]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/signal.h.html#tag_13_42
[1]: https://lists.suckless.org/dev/2302/35111.html

Tested on:
* NetBSD 9.3 (fixed).
* FreeBSD 13 (fixed).
* Void Linux musl.
* Void Linux glibc.
* OpenBSD 7.2 (stable).
* Slackware 11.

Reported-by: beastie &lt;pufferfish@riseup.net&gt;
</content>
</entry>
<entry>
<title>Use sigaction(SA_NOCLDWAIT) for SIGCHLD handling</title>
<updated>2023-01-28T12:34:43Z</updated>
<author>
<name>Chris Down</name>
<email>chris@chrisdown.name</email>
</author>
<published>2023-01-28T11:53:48Z</published>
<link rel='alternate' type='text/html' href='https://git.marcelscrem.com/dwm.git/commit/?id=712d6639ff8e863560328131bbb92b248dc9cde7'/>
<id>urn:sha1:712d6639ff8e863560328131bbb92b248dc9cde7</id>
<content type='text'>
signal() semantics are pretty unclearly specified. For example, depending on OS
kernel and libc, the handler may be returned to SIG_DFL (hence the inner call
to read the signal handler). Moving to sigaction() means the behaviour is
consistently defined.

Using SA_NOCLDWAIT also allows us to avoid calling the non-reentrant function
die() in the handler.

Some addditional notes for archival purposes:

* NRK pointed out errno of waitpid could also theoretically get clobbered.
* The original patch was iterated on and modified by NRK and Hiltjo:
  * SIG_DFL was changed to SIG_IGN, this is required, atleast on older systems
    such as tested on Slackware 11.
  * signals are not blocked using sigprocmask, because in theory it would
    briefly for example also ignore a SIGTERM signal. It is OK if waitpid() is (in
    theory interrupted).

POSIX reference:
"Consequences of Process Termination":
https://pubs.opengroup.org/onlinepubs/9699919799/functions/_Exit.html#tag_16_01_03_01
</content>
</entry>
</feed>
