as it has been pointed out already , xfce4's xinitrc runs xrdb -merge on the user's Xresources file using the -nocpp option. While I can certainly understand the benefit of using -nocpp for well-defined system-wide resources, doing so on a user's Xresources file (which in fact often contains cpp preprocessor directives) results in undefined behaviour and breaks compatibility with other desktops environments. Instead, I would prefer to have either the -nocpp option or the xrdb call removed completely. The latter will simply result in the correct behavior on most distributions since there the user's Xresources are already (correctly) loaded without -nocpp by a system-wide xsession.d-snippet.
Created attachment 6078
Drop -nocpp flag
I'm surprised this isn't a more discussed issue. Anyone who uses XFCE and has preprocessor directives in their .Xresources file should run into this. As noted above, there was a long winded discussion at Debian about this, but it went off on a tangent about shaving a few microseconds off startup time and died out. It was eventually marked as fixed there, so I guess they patch it themselves?
Regardless, Archlinux ships this script vanilla, and patching it by hand every time the package gets updated is starting to get old.
like you pointed out, the behaviour has been finally fixed in Debian right after I've bumped it again. Here's the according commit:
Thanks! Pushed to master in:
Author: Justin Brewer <email@example.com>
Date: Fri Mar 13 17:59:26 2015 -0400
Drop -nocpp option from call to xrdb
Users' .Xresources files often contain preprocessor directives, so disabling the
preprocessor breaks the behavior of these files.
Signed-off-by: Eric Koegel <firstname.lastname@example.org>