summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/rply/files/rply-1.01-stdint.h.patch')
-rw-r--r--media-libs/rply/files/rply-1.01-stdint.h.patch185
1 files changed, 185 insertions, 0 deletions
diff --git a/media-libs/rply/files/rply-1.01-stdint.h.patch b/media-libs/rply/files/rply-1.01-stdint.h.patch
new file mode 100644
index 000000000000..45c911643bcb
--- /dev/null
+++ b/media-libs/rply/files/rply-1.01-stdint.h.patch
@@ -0,0 +1,185 @@
+From eeb09032068baed6d81cff01cdfcccd6d55a8152 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gmail.com>
+Date: Mon, 26 Sep 2011 04:45:49 -0400
+Subject: [PATCH 1/2] Use stdint.h types
+
+Use stdint.h types (int16_t and int32_t) instead of assuming that short
+and long must always a specific number of bytes. Also, use strtoul for
+reading uint32_t values.
+---
+ rply.c | 61 ++++++++++++++++++++++++++++---------------------------------
+ 1 files changed, 28 insertions(+), 33 deletions(-)
+
+diff --git a/rply.c b/rply.c
+index 042244f..9eaa77f 100644
+--- a/rply.c
++++ b/rply.c
+@@ -15,6 +15,7 @@
+ #include <stdarg.h>
+ #include <stdlib.h>
+ #include <stddef.h>
++#include <stdint.h>
+
+ #include "rply.h"
+
+@@ -1183,18 +1184,12 @@ static e_ply_storage_mode ply_arch_endian(void) {
+ static int ply_type_check(void) {
+ assert(sizeof(char) == 1);
+ assert(sizeof(unsigned char) == 1);
+- assert(sizeof(short) == 2);
+- assert(sizeof(unsigned short) == 2);
+- assert(sizeof(long) == 4);
+- assert(sizeof(unsigned long) == 4);
++ assert(sizeof(long) >= 4);
+ assert(sizeof(float) == 4);
+ assert(sizeof(double) == 8);
+ if (sizeof(char) != 1) return 0;
+ if (sizeof(unsigned char) != 1) return 0;
+- if (sizeof(short) != 2) return 0;
+- if (sizeof(unsigned short) != 2) return 0;
+- if (sizeof(long) != 4) return 0;
+- if (sizeof(unsigned long) != 4) return 0;
++ if (sizeof(long) < 4) return 0;
+ if (sizeof(float) != 4) return 0;
+ if (sizeof(double) != 8) return 0;
+ return 1;
+@@ -1214,23 +1209,23 @@ static int oascii_uint8(p_ply ply, double value) {
+ }
+
+ static int oascii_int16(p_ply ply, double value) {
+- if (value > SHRT_MAX || value < SHRT_MIN) return 0;
+- return fprintf(ply->fp, "%d ", (short) value) > 0;
++ if (value > INT16_MAX || value < INT16_MIN) return 0;
++ return fprintf(ply->fp, "%d ", (int16_t) value) > 0;
+ }
+
+ static int oascii_uint16(p_ply ply, double value) {
+- if (value > USHRT_MAX || value < 0) return 0;
+- return fprintf(ply->fp, "%d ", (unsigned short) value) > 0;
++ if (value > UINT16_MAX || value < 0) return 0;
++ return fprintf(ply->fp, "%d ", (uint16_t) value) > 0;
+ }
+
+ static int oascii_int32(p_ply ply, double value) {
+- if (value > LONG_MAX || value < LONG_MIN) return 0;
+- return fprintf(ply->fp, "%d ", (int) value) > 0;
++ if (value > INT32_MAX || value < INT32_MIN) return 0;
++ return fprintf(ply->fp, "%d ", (int32_t) value) > 0;
+ }
+
+ static int oascii_uint32(p_ply ply, double value) {
+- if (value > ULONG_MAX || value < 0) return 0;
+- return fprintf(ply->fp, "%d ", (unsigned int) value) > 0;
++ if (value > UINT32_MAX || value < 0) return 0;
++ return fprintf(ply->fp, "%d ", (uint32_t) value) > 0;
+ }
+
+ static int oascii_float32(p_ply ply, double value) {
+@@ -1256,26 +1251,26 @@ static int obinary_uint8(p_ply ply, double value) {
+ }
+
+ static int obinary_int16(p_ply ply, double value) {
+- short int16 = (short) value;
+- if (value > SHRT_MAX || value < SHRT_MIN) return 0;
++ int16_t int16 = value;
++ if (value > INT16_MAX || value < INT16_MIN) return 0;
+ return ply->odriver->ochunk(ply, &int16, sizeof(int16));
+ }
+
+ static int obinary_uint16(p_ply ply, double value) {
+- unsigned short uint16 = (unsigned short) value;
+- if (value > USHRT_MAX || value < 0) return 0;
++ uint16_t uint16 = value;
++ if (value > UINT16_MAX || value < 0) return 0;
+ return ply->odriver->ochunk(ply, &uint16, sizeof(uint16));
+ }
+
+ static int obinary_int32(p_ply ply, double value) {
+- long int32 = (long) value;
+- if (value > LONG_MAX || value < LONG_MIN) return 0;
++ int32_t int32 = value;
++ if (value > INT32_MAX || value < INT32_MIN) return 0;
+ return ply->odriver->ochunk(ply, &int32, sizeof(int32));
+ }
+
+ static int obinary_uint32(p_ply ply, double value) {
+- unsigned long uint32 = (unsigned long) value;
+- if (value > ULONG_MAX || value < 0) return 0;
++ uint32_t uint32 = value;
++ if (value > UINT32_MAX || value < 0) return 0;
+ return ply->odriver->ochunk(ply, &uint32, sizeof(uint32));
+ }
+
+@@ -1312,7 +1307,7 @@ static int iascii_int16(p_ply ply, double *value) {
+ char *end;
+ if (!ply_read_word(ply)) return 0;
+ *value = strtol(BWORD(ply), &end, 10);
+- if (*end || *value > SHRT_MAX || *value < SHRT_MIN) return 0;
++ if (*end || *value > INT16_MAX || *value < INT16_MIN) return 0;
+ return 1;
+ }
+
+@@ -1320,7 +1315,7 @@ static int iascii_uint16(p_ply ply, double *value) {
+ char *end;
+ if (!ply_read_word(ply)) return 0;
+ *value = strtol(BWORD(ply), &end, 10);
+- if (*end || *value > USHRT_MAX || *value < 0) return 0;
++ if (*end || *value > UINT16_MAX || *value < 0) return 0;
+ return 1;
+ }
+
+@@ -1328,15 +1323,15 @@ static int iascii_int32(p_ply ply, double *value) {
+ char *end;
+ if (!ply_read_word(ply)) return 0;
+ *value = strtol(BWORD(ply), &end, 10);
+- if (*end || *value > LONG_MAX || *value < LONG_MIN) return 0;
++ if (*end || *value > INT32_MAX || *value < INT32_MIN) return 0;
+ return 1;
+ }
+
+ static int iascii_uint32(p_ply ply, double *value) {
+ char *end;
+ if (!ply_read_word(ply)) return 0;
+- *value = strtol(BWORD(ply), &end, 10);
+- if (*end || *value < 0) return 0;
++ *value = strtoul(BWORD(ply), &end, 10);
++ if (*end || *value > UINT32_MAX || *value < 0) return 0;
+ return 1;
+ }
+
+@@ -1371,28 +1366,28 @@ static int ibinary_uint8(p_ply ply, double *value) {
+ }
+
+ static int ibinary_int16(p_ply ply, double *value) {
+- short int16;
++ int16_t int16;
+ if (!ply->idriver->ichunk(ply, &int16, sizeof(int16))) return 0;
+ *value = int16;
+ return 1;
+ }
+
+ static int ibinary_uint16(p_ply ply, double *value) {
+- unsigned short uint16;
++ uint16_t uint16;
+ if (!ply->idriver->ichunk(ply, &uint16, sizeof(uint16))) return 0;
+ *value = uint16;
+ return 1;
+ }
+
+ static int ibinary_int32(p_ply ply, double *value) {
+- long int32;
++ int32_t int32;
+ if (!ply->idriver->ichunk(ply, &int32, sizeof(int32))) return 0;
+ *value = int32;
+ return 1;
+ }
+
+ static int ibinary_uint32(p_ply ply, double *value) {
+- unsigned long uint32;
++ uint32_t uint32;
+ if (!ply->idriver->ichunk(ply, &uint32, sizeof(uint32))) return 0;
+ *value = uint32;
+ return 1;
+--
+1.7.6.1
+