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.
Match the type of the array to the `format` argument (32).
Could change the format to 16, but the value is documented to be a `CARD32`, so may as well use 32 bit input.
Remove all uses of the .Cm macro that are immediately followed
by another macro, such as .Ns or .Aq.
[rk@rejii.com: tweak commit message; resolves 'man --warnings']
closes#138
One xcb module, one header file: <xcb/xcb.h> should to be
included directly, instead of relying on other modules dragging
it in; on the other hand, it's okay to include just the top
level <xcb/xcb_util.h> instead of the three separate sub-headers.
[rk@rejii.com: skip xcb_util.h since it breaks xcb-util < 0.3.8]
closes#142
PIE (position-independent executables) is a security feature
that has been made reasonably cheap by recent improvements in
GCC; as a result, more and more Linux distributions are pushing
for its adoption.
Unfortunately, PIE and PIC are not compatible, so we have to
manage the CFLAGS and LDFLAGS used to compile the library and
the executable indipendently.
According to GCC's documentation, -fpic can have compatibility
issues on some platforms. Use -fPIC instead, which generates
slightly bigger objects but is generally more likely to work.
Get rid of -DPIC, since the symbol is not used anywhere.
Using this flag will cause the linker to ignore any libraries
that have been listed on the command line but whose symbols are
not actually used.
Right now, it just gets rid of the unnecessary linking against
xcb-render (see https://bugs.debian.org/829709), but it might
catch missing dependencies in the future, and it will generally
keep the resulting binaries nice and tidy.
Ubuntu and Arch are both using --as-needed by default already,
and other distributions will probably switch at some point.
Use MAINT_CPPFLAGS only for stuff used directly by spectrwm, and
move all the stuff needed by dependencies to the newly-defined
BIN_CPPFLAGS and LIB_CPPFLAGS.
The libswmhack library uses dlopen() and friends, so it needs
to link against libdl; on the other hand, it doesn't use nearly
as many library as spectrwm itself, so linking against them is
pointless.
Split MAINT_LDLIBS into BIN_LDLIBS and LIB_LDLIBS, and use them
for spectrwm and libswmhack respectively.