Wed Jan 28 00:37:27 2009 UTC ()
For Linux, pull in stdint.h to make this patch work.  This fixes the
compile for some platforms, and is no change for platforms where this
package previously successfully compiled.

XXX The serious portability issues in the patched file remain, but are
no doubt more widespread than this one file anyway.


(dsainty)
diff -r1.6 -r1.7 pkgsrc/graphics/lib3ds/distinfo
diff -r1.1 -r1.2 pkgsrc/graphics/lib3ds/patches/patch-af

cvs diff -r1.6 -r1.7 pkgsrc/graphics/lib3ds/distinfo (expand / switch to unified diff)

--- pkgsrc/graphics/lib3ds/distinfo 2008/12/18 13:15:10 1.6
+++ pkgsrc/graphics/lib3ds/distinfo 2009/01/28 00:37:27 1.7
@@ -1,11 +1,11 @@ @@ -1,11 +1,11 @@
1$NetBSD: distinfo,v 1.6 2008/12/18 13:15:10 reinoud Exp $ 1$NetBSD: distinfo,v 1.7 2009/01/28 00:37:27 dsainty Exp $
2 2
3SHA1 (lib3ds-1.2.0.tar.gz) = 49614218c4c11572887beefaa34d23f72ef70a2c 3SHA1 (lib3ds-1.2.0.tar.gz) = 49614218c4c11572887beefaa34d23f72ef70a2c
4RMD160 (lib3ds-1.2.0.tar.gz) = 3e0401e36b545c2a54213ecb2ea3216360450562 4RMD160 (lib3ds-1.2.0.tar.gz) = 3e0401e36b545c2a54213ecb2ea3216360450562
5Size (lib3ds-1.2.0.tar.gz) = 136806 bytes 5Size (lib3ds-1.2.0.tar.gz) = 136806 bytes
6SHA1 (patch-aa) = 0933c6cb86b05306feb97a10f282ea935bfe2c24 6SHA1 (patch-aa) = 0933c6cb86b05306feb97a10f282ea935bfe2c24
7SHA1 (patch-ab) = b2d6804b71fb37428ebf7fb59168ae8ef2eec362 7SHA1 (patch-ab) = b2d6804b71fb37428ebf7fb59168ae8ef2eec362
8SHA1 (patch-ac) = d73dd1b2cdabe61f78d4a7307a04917ff5fc379b 8SHA1 (patch-ac) = d73dd1b2cdabe61f78d4a7307a04917ff5fc379b
9SHA1 (patch-ad) = bbf95ca49e1bf6fa67314f9818af5b1b974eb54a 9SHA1 (patch-ad) = bbf95ca49e1bf6fa67314f9818af5b1b974eb54a
10SHA1 (patch-ae) = 7760d2311d99f3d5d91f89fceced314648abbeb0 10SHA1 (patch-ae) = 7760d2311d99f3d5d91f89fceced314648abbeb0
11SHA1 (patch-af) = 016c93ead0e5d6a033d891d03db5f227a3e1df71 11SHA1 (patch-af) = 578dd6a4c5bb6bccde8b8a283437d8fc917b3a4c

cvs diff -r1.1 -r1.2 pkgsrc/graphics/lib3ds/patches/patch-af (expand / switch to unified diff)

--- pkgsrc/graphics/lib3ds/patches/patch-af 2008/12/18 13:15:10 1.1
+++ pkgsrc/graphics/lib3ds/patches/patch-af 2009/01/28 00:37:27 1.2
@@ -1,49 +1,57 @@ @@ -1,49 +1,57 @@
1$NetBSD: patch-af,v 1.1 2008/12/18 13:15:10 reinoud Exp $ 1$NetBSD: patch-af,v 1.2 2009/01/28 00:37:27 dsainty Exp $
2 2
3--- lib3ds/io.c.orig 2001-07-11 15:47:35.000000000 +0200 3--- lib3ds/io.c.orig 2001-07-12 01:47:35.000000000 +1200
4+++ lib3ds/io.c 4+++ lib3ds/io.c 2009-01-25 19:59:22.437777313 +1300
5@@ -31,6 +31,11 @@ 5@@ -21,6 +21,7 @@
 6 */
 7 #define LIB3DS_EXPORT
 8 #include <lib3ds/io.h>
 9+#include <stdint.h>
 10 #include <stdlib.h>
 11 #include <string.h>
 12
 13@@ -31,6 +32,11 @@
6 * \author J.E. Hoffmann <je-h@gmx.net> 14 * \author J.E. Hoffmann <je-h@gmx.net>
7 */ 15 */
8  16
9+typedef union { 17+typedef union {
10+ uint32_t dword_value; 18+ uint32_t dword_value;
11+ float float_value; 19+ float float_value;
12+} Lib3dsDwordFloat; 20+} Lib3dsDwordFloat;
13+ 21+
14  22
15 struct _Lib3dsIo { 23 struct _Lib3dsIo {
16 void *self; 24 void *self;
17@@ -248,15 +253,15 @@ Lib3dsFloat 25@@ -248,15 +254,15 @@
18 lib3ds_io_read_float(Lib3dsIo *io) 26 lib3ds_io_read_float(Lib3dsIo *io)
19 { 27 {
20 Lib3dsByte b[4]; 28 Lib3dsByte b[4];
21- Lib3dsDword d; 29- Lib3dsDword d;
22+ Lib3dsDwordFloat d; 30+ Lib3dsDwordFloat d;
23  31
24 ASSERT(io); 32 ASSERT(io);
25 lib3ds_io_read(io, b, 4); 33 lib3ds_io_read(io, b, 4);
26- d=((Lib3dsDword)b[3] << 24) | 34- d=((Lib3dsDword)b[3] << 24) |
27+ d.dword_value =((Lib3dsDword)b[3] << 24) | 35+ d.dword_value =((Lib3dsDword)b[3] << 24) |
28 ((Lib3dsDword)b[2] << 16) | 36 ((Lib3dsDword)b[2] << 16) |
29 ((Lib3dsDword)b[1] << 8) | 37 ((Lib3dsDword)b[1] << 8) |
30 ((Lib3dsDword)b[0]); 38 ((Lib3dsDword)b[0]);
31- return(*((Lib3dsFloat*)&d)); 39- return(*((Lib3dsFloat*)&d));
32+ return d.float_value; 40+ return d.float_value;
33 } 41 }
34  42
35  43
36@@ -459,14 +464,14 @@ Lib3dsBool 44@@ -459,14 +465,14 @@
37 lib3ds_io_write_float(Lib3dsIo *io, Lib3dsFloat l) 45 lib3ds_io_write_float(Lib3dsIo *io, Lib3dsFloat l)
38 { 46 {
39 Lib3dsByte b[4]; 47 Lib3dsByte b[4];
40- Lib3dsDword d; 48- Lib3dsDword d;
41+ Lib3dsDwordFloat d; 49+ Lib3dsDwordFloat d;
42  50
43 ASSERT(io); 51 ASSERT(io);
44- d=*((Lib3dsDword*)&l); 52- d=*((Lib3dsDword*)&l);
45- b[3]=(Lib3dsByte)(((Lib3dsDword)d & 0xFF000000) >> 24); 53- b[3]=(Lib3dsByte)(((Lib3dsDword)d & 0xFF000000) >> 24);
46- b[2]=(Lib3dsByte)(((Lib3dsDword)d & 0x00FF0000) >> 16); 54- b[2]=(Lib3dsByte)(((Lib3dsDword)d & 0x00FF0000) >> 16);
47- b[1]=(Lib3dsByte)(((Lib3dsDword)d & 0x0000FF00) >> 8); 55- b[1]=(Lib3dsByte)(((Lib3dsDword)d & 0x0000FF00) >> 8);
48- b[0]=(Lib3dsByte)(((Lib3dsDword)d & 0x000000FF)); 56- b[0]=(Lib3dsByte)(((Lib3dsDword)d & 0x000000FF));
49+ d.float_value = l; 57+ d.float_value = l;