Introduction
Introduction Statistics Contact Development Disclaimer Help
Use uint32-array to store the header - farbfeld - suckless image format with co…
git clone git://git.suckless.org/farbfeld
Log
Files
Refs
README
LICENSE
---
commit 3122c071397b4db9c9122072c56bd31c02085ca7
parent 14df2f24dfedf9d12dcec02d57c596a34be0f197
Author: FRIGN <[email protected]>
Date: Fri, 4 Mar 2016 12:23:04 +0100
Use uint32-array to store the header
this goes around the undefined behaviour imposed by using
(*(uint32_t *)(hdr + 4n))
Diffstat:
M ff2png.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
---
diff --git a/ff2png.c b/ff2png.c
@@ -9,8 +9,6 @@
#include <png.h>
-#define HDR "farbfeld########"
-
static char *argv0;
void
@@ -26,9 +24,8 @@ main(int argc, char *argv[])
png_structp pngs;
png_infop pngi;
size_t rowlen;
- uint32_t width, height, i;
+ uint32_t hdr[4], width, height, i;
uint16_t *row;
- uint8_t hdr[16];
argv0 = argv[0], argc--, argv++;
@@ -38,15 +35,15 @@ main(int argc, char *argv[])
}
/* header */
- if (fread(hdr, 1, sizeof(HDR) - 1, stdin) != sizeof(HDR) - 1) {
+ if (fread(hdr, sizeof(*hdr), 4, stdin) != 4) {
goto readerr;
}
if (memcmp("farbfeld", hdr, sizeof("farbfeld") - 1)) {
fprintf(stderr, "%s: invalid magic value\n", argv0);
return 1;
}
- width = ntohl(*((uint32_t *)(hdr + 8)));
- height = ntohl(*((uint32_t *)(hdr + 12)));
+ width = ntohl(hdr[2]);
+ height = ntohl(hdr[3]);
/* load png */
pngs = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, pngerr,
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.