while trying compiling on a 32 bits system terminal gets filled with :
worker_net_wm_icon.h:966:1: error: narrowing conversion of ‘4289081996u’ from ‘unsigned int’ to ‘long int’ inside { } [-Wnarrowing]
gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
cc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
it seems an ‘unsigned int’ doesn't fit in a ‘long int’ on some 32bit system
with debian stretch 32bits
sizeof(long) = 4
sizeof(int) = 4
so 'long' lets only 31 bits while 'unsigned' require 32 bits
anyway with changing type to ‘unsigned long int’ in include file and helper functions it compiles.
I can see the icon int the window taskbar + task switcher, so it seems it also works :)
with debian stretch 32bit system using both (unsigned int) or (unsigned long int)
do work, I mean I'm seeing the picture
it seems to me if declaring it as a long it would require twice as much memory on some system though, those having sizeof(unsigned long int) = 8bytes , (considering data is 4bytes aligned)
that would be weird if wm did rely on the type length , I don't know if any are doing .
So, if there was something wrong with declaring it as (unsigned int), it seems to me that would be on another level, X or wm or something elde I don't know.
attached two patches with both options
thanks
argl a fix was uploaded while I was preparing the message....
so sorry it seems I cannot close it