For each release, the date it taken from the corresponding
git tag; the one exception is 2.4.0, where the tag was created
months after the commit it points to.
Information about releases is taken from [1] and minimally
edited to work in the new context, along with being fixed when
necessary.
While every single release from 1.0.0 onwards is now accounted
for, several of them lack detailed information: tracking
existing release notes about them or writing them from scratch
is left as an exercise to the reader.
[1] https://sourceforge.net/projects/scrotwm/files/
Reflow the most recent entry to fit into 80 columns, make sure
there are two empty lines between entries, and fix the release
date for spectrwm 3.0.0 (the tag was created on May 2, despite
the "releases" page on GitHub claiming otherwise).
Add XOpenDisplay intercept to preload atoms.
Looking up/creating atoms when handling XCreateWindow can cause
deadlocks and other unexpected behavior in some applications. Instead,
preload the atoms on XOpenDisplay.
Since 3.0.0, release notes for spectrwm are already being
compiled and ultimately published at
https://github.com/conformal/spectrwm/releases
but it would be useful if they were included in the release
tarball themselves as well.
The contents of the NEWS.md file are taken straight from the
page mentioned above, with only very minor editing.
man: /usr/man/man1/spectrwm.1.gz:231:18: WARNING: new sentence, new line
man: /usr/man/man1/spectrwm.1.gz:986:71: WARNING: new sentence, new line
new sentence, new line
(mdoc) A new sentence starts in the middle of a text line. Start it on a
new input line to help formatters produce correct spacing
https://man.openbsd.org/mandoc.1
On the musl libc, autorun, layout and workspace name settings were
always rejected as invalid. As it turns out, parsing those was relying
on sscanf incorrectly matching %Nc as long as there is at least one
character. This is fixed by matching only the initial part of the string
via sscanf and skipping ahead by the amount of bytes consumed. This also
avoids unnecessary zeroing, copying and possible implicit truncation.
Relevant glibc bug:
https://sourceware.org/bugzilla/show_bug.cgi?id=12701
This silences the following warnings reported by mandoc.
man: /usr/man/man1/spectrwm.1.gz:653:10: STYLE: no blank before trailing delimiter: Cm M-,
man: /usr/man/man1/spectrwm.1.gz:655:10: STYLE: no blank before trailing delimiter: Cm M-.
man: /usr/man/man1/spectrwm.1.gz:657:12: STYLE: no blank before trailing delimiter: Cm M-S-,
man: /usr/man/man1/spectrwm.1.gz:659:12: STYLE: no blank before trailing delimiter: Cm M-S-.
man: /usr/man/man1/spectrwm.1.gz:761:10: STYLE: no blank before trailing delimiter: Cm M-]
man: /usr/man/man1/spectrwm.1.gz:765:12: STYLE: no blank before trailing delimiter: Cm M-S-]
If the status bar script returns NUL as the first character through
stdin, spectrwm is prone to an out of boundary access. Depending on
the memory layout of the machine, it could turn into an OOB write.
The fix is simple: If the string is empty, do not further check for
newline character.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Update example configuration file with new options bar_color_selected
and bar_font_color_selected.
Also update the example with dmenu to use the new colors.
Add two other dmenu examples, search and name_workspace, that was added
to the manual with the same commit as the new color options.