Avoid using the non-portable endian.h conversion functions - xscreenshot - screen capture tool
 (HTM) git clone git://git.codemadness.org/xscreenshot
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit b0165f794fa7eee32c3c29933f60d05e122e9c4d
 (DIR) parent 99787cb985153f007e66f2fd53e2279ee6f7333c
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Tue, 17 Nov 2015 21:20:54 +0100
       
       Avoid using the non-portable endian.h conversion functions
       
       Use the arpa/inet.h conversion functions which are standardized
       in POSIX.
       
       Idea copied over from farbfeld (thanks stateless!).
       
       Diffstat:
         M config.mk                           |       2 +-
         M xscreenshot.c                       |       9 ++++-----
       
       2 files changed, 5 insertions(+), 6 deletions(-)
       ---
 (DIR) diff --git a/config.mk b/config.mk
       @@ -14,7 +14,7 @@ INCS = -I${X11INC}
        LIBS = -L${X11LIB} -lX11
        
        # flags
       -CPPFLAGS = -D_BSD_SOURCE -DVERSION=\"${VERSION}\"
       +CPPFLAGS = -DVERSION=\"${VERSION}\"
        
        # debug
        CFLAGS = -O0 -g -std=c99 -Wall -pedantic ${INCS} ${CPPFLAGS}
 (DIR) diff --git a/xscreenshot.c b/xscreenshot.c
       @@ -1,7 +1,6 @@
        /* see LICENSE / README for more info */
        #include <arpa/inet.h>
        
       -#include <endian.h>
        #include <errno.h>
        #include <stdio.h>
        #include <stdint.h>
       @@ -77,10 +76,10 @@ main(int argc, char *argv[])
                for (h = 0; h < (uint32_t)img->height; h++) {
                        for (w = 0; w < (uint32_t)img->width; w++) {
                                tmp = XGetPixel(img, w, h);
       -                        rgba[0] = htobe16((tmp & img->red_mask) >> 8);
       -                        rgba[1] = htobe16(tmp & img->green_mask);
       -                        rgba[2] = htobe16((tmp & img->blue_mask) << 8);
       -                        rgba[3] = htobe16(65535);
       +                        rgba[0] = htons((tmp & img->red_mask) >> 8);
       +                        rgba[1] = htons(tmp & img->green_mask);
       +                        rgba[2] = htons((tmp & img->blue_mask) << 8);
       +                        rgba[3] = htons(65535);
        
                                if (fwrite(&rgba, 4 * sizeof(uint16_t), 1, stdout) != 1)
                                        die("fwrite() failed");