On Sun, Aug 21, 2022 at 11:08:43PM +0100, Chris Down wrote: > I originally sent these a few years ago and the reply was that > const-correctness wasn't something cared about, but seeing other const > changes in dwm, and purely const-correctness improvements in > quark/st/libgrapheme, I figured maybe it's worth reevaluating and seeing > if they are of interest now.
I would add the attached patch to the list as well. String literals in C are of the type `char []`, however modifying them is actually UB [0] and in practice it can even result in a segfault. The `-Wwrite-strings` flag treats string literals as `const char []` and thus warns about cases where a string literal gets assigned to a `char *`. P.S: I didn't add the flag to config.mk/CFLAGS in the patch since changing the default warning flags can be seen as an opinionated change. [0]: https://port70.net/~nsz/c/c99/n1256.html#6.4.5p6 - NRK
>From 49148ee9fb0bba0e1e503f70016381a779672b36 Mon Sep 17 00:00:00 2001 From: NRK <[email protected]> Date: Mon, 22 Aug 2022 13:56:09 +0600 Subject: [PATCH] fix const-correctness reguarding string literals String literals in C are of the type `char []`, however modifying them is actually UB [0] and in practice it can even result in a segfault. The `-Wwrite-strings` flag treats string literals as `const char []` and thus warns about cases where a string literal gets assigned to a `char *`. [0]: https://port70.net/~nsz/c/c99/n1256.html#6.4.5p6 --- dwm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dwm.c b/dwm.c index 253aba7..55dd68c 100644 --- a/dwm.c +++ b/dwm.c @@ -1808,7 +1808,8 @@ updatebars(void) .background_pixmap = ParentRelative, .event_mask = ButtonPressMask|ExposureMask }; - XClassHint ch = {"dwm", "dwm"}; + char s[] = "dwm"; + XClassHint ch = { s, s }; for (m = mons; m; m = m->next) { if (m->barwin) continue; -- 2.35.1
