head 1.2; access; symbols pkgsrc-2026Q1:1.2.0.138 pkgsrc-2026Q1-base:1.2 pkgsrc-2025Q4:1.2.0.136 pkgsrc-2025Q4-base:1.2 pkgsrc-2025Q3:1.2.0.134 pkgsrc-2025Q3-base:1.2 pkgsrc-2025Q2:1.2.0.132 pkgsrc-2025Q2-base:1.2 pkgsrc-2025Q1:1.2.0.130 pkgsrc-2025Q1-base:1.2 pkgsrc-2024Q4:1.2.0.128 pkgsrc-2024Q4-base:1.2 pkgsrc-2024Q3:1.2.0.126 pkgsrc-2024Q3-base:1.2 pkgsrc-2024Q2:1.2.0.124 pkgsrc-2024Q2-base:1.2 pkgsrc-2024Q1:1.2.0.122 pkgsrc-2024Q1-base:1.2 pkgsrc-2023Q4:1.2.0.120 pkgsrc-2023Q4-base:1.2 pkgsrc-2023Q3:1.2.0.118 pkgsrc-2023Q3-base:1.2 pkgsrc-2023Q2:1.2.0.116 pkgsrc-2023Q2-base:1.2 pkgsrc-2023Q1:1.2.0.114 pkgsrc-2023Q1-base:1.2 pkgsrc-2022Q4:1.2.0.112 pkgsrc-2022Q4-base:1.2 pkgsrc-2022Q3:1.2.0.110 pkgsrc-2022Q3-base:1.2 pkgsrc-2022Q2:1.2.0.108 pkgsrc-2022Q2-base:1.2 pkgsrc-2022Q1:1.2.0.106 pkgsrc-2022Q1-base:1.2 pkgsrc-2021Q4:1.2.0.104 pkgsrc-2021Q4-base:1.2 pkgsrc-2021Q3:1.2.0.102 pkgsrc-2021Q3-base:1.2 pkgsrc-2021Q2:1.2.0.100 pkgsrc-2021Q2-base:1.2 pkgsrc-2021Q1:1.2.0.98 pkgsrc-2021Q1-base:1.2 pkgsrc-2020Q4:1.2.0.96 pkgsrc-2020Q4-base:1.2 pkgsrc-2020Q3:1.2.0.94 pkgsrc-2020Q3-base:1.2 pkgsrc-2020Q2:1.2.0.90 pkgsrc-2020Q2-base:1.2 pkgsrc-2020Q1:1.2.0.70 pkgsrc-2020Q1-base:1.2 pkgsrc-2019Q4:1.2.0.92 pkgsrc-2019Q4-base:1.2 pkgsrc-2019Q3:1.2.0.88 pkgsrc-2019Q3-base:1.2 pkgsrc-2019Q2:1.2.0.86 pkgsrc-2019Q2-base:1.2 pkgsrc-2019Q1:1.2.0.84 pkgsrc-2019Q1-base:1.2 pkgsrc-2018Q4:1.2.0.82 pkgsrc-2018Q4-base:1.2 pkgsrc-2018Q3:1.2.0.80 pkgsrc-2018Q3-base:1.2 pkgsrc-2018Q2:1.2.0.78 pkgsrc-2018Q2-base:1.2 pkgsrc-2018Q1:1.2.0.76 pkgsrc-2018Q1-base:1.2 pkgsrc-2017Q4:1.2.0.74 pkgsrc-2017Q4-base:1.2 pkgsrc-2017Q3:1.2.0.72 pkgsrc-2017Q3-base:1.2 pkgsrc-2017Q2:1.2.0.68 pkgsrc-2017Q2-base:1.2 pkgsrc-2017Q1:1.2.0.66 pkgsrc-2017Q1-base:1.2 pkgsrc-2016Q4:1.2.0.64 pkgsrc-2016Q4-base:1.2 pkgsrc-2016Q3:1.2.0.62 pkgsrc-2016Q3-base:1.2 pkgsrc-2016Q2:1.2.0.60 pkgsrc-2016Q2-base:1.2 pkgsrc-2016Q1:1.2.0.58 pkgsrc-2016Q1-base:1.2 pkgsrc-2015Q4:1.2.0.56 pkgsrc-2015Q4-base:1.2 pkgsrc-2015Q3:1.2.0.54 pkgsrc-2015Q3-base:1.2 pkgsrc-2015Q2:1.2.0.52 pkgsrc-2015Q2-base:1.2 pkgsrc-2015Q1:1.2.0.50 pkgsrc-2015Q1-base:1.2 pkgsrc-2014Q4:1.2.0.48 pkgsrc-2014Q4-base:1.2 pkgsrc-2014Q3:1.2.0.46 pkgsrc-2014Q3-base:1.2 pkgsrc-2014Q2:1.2.0.44 pkgsrc-2014Q2-base:1.2 pkgsrc-2014Q1:1.2.0.42 pkgsrc-2014Q1-base:1.2 pkgsrc-2013Q4:1.2.0.40 pkgsrc-2013Q4-base:1.2 pkgsrc-2013Q3:1.2.0.38 pkgsrc-2013Q3-base:1.2 pkgsrc-2013Q2:1.2.0.36 pkgsrc-2013Q2-base:1.2 pkgsrc-2013Q1:1.2.0.34 pkgsrc-2013Q1-base:1.2 pkgsrc-2012Q4:1.2.0.32 pkgsrc-2012Q4-base:1.2 pkgsrc-2012Q3:1.2.0.30 pkgsrc-2012Q3-base:1.2 pkgsrc-2012Q2:1.2.0.28 pkgsrc-2012Q2-base:1.2 pkgsrc-2012Q1:1.2.0.26 pkgsrc-2012Q1-base:1.2 pkgsrc-2011Q4:1.2.0.24 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q3:1.2.0.22 pkgsrc-2011Q3-base:1.2 pkgsrc-2011Q2:1.2.0.20 pkgsrc-2011Q2-base:1.2 pkgsrc-2011Q1:1.2.0.18 pkgsrc-2011Q1-base:1.2 pkgsrc-2010Q4:1.2.0.16 pkgsrc-2010Q4-base:1.2 pkgsrc-2010Q3:1.2.0.14 pkgsrc-2010Q3-base:1.2 pkgsrc-2010Q2:1.2.0.12 pkgsrc-2010Q2-base:1.2 pkgsrc-2010Q1:1.2.0.10 pkgsrc-2010Q1-base:1.2 pkgsrc-2009Q4:1.2.0.8 pkgsrc-2009Q4-base:1.2 pkgsrc-2009Q3:1.2.0.6 pkgsrc-2009Q3-base:1.2 pkgsrc-2009Q2:1.2.0.4 pkgsrc-2009Q2-base:1.2 pkgsrc-2009Q1:1.2.0.2 pkgsrc-2009Q1-base:1.2 pkgsrc-2008Q4:1.1.0.2 pkgsrc-2008Q4-base:1.1; locks; strict; comment @# @; 1.2 date 2009.01.28.00.37.27; author dsainty; state Exp; branches; next 1.1; 1.1 date 2008.12.18.13.15.10; author reinoud; state Exp; branches; next ; desc @@ 1.2 log @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. @ text @$NetBSD: patch-af,v 1.1 2008/12/18 13:15:10 reinoud Exp $ --- lib3ds/io.c.orig 2001-07-12 01:47:35.000000000 +1200 +++ lib3ds/io.c 2009-01-25 19:59:22.437777313 +1300 @@@@ -21,6 +21,7 @@@@ */ #define LIB3DS_EXPORT #include +#include #include #include @@@@ -31,6 +32,11 @@@@ * \author J.E. Hoffmann */ +typedef union { + uint32_t dword_value; + float float_value; +} Lib3dsDwordFloat; + struct _Lib3dsIo { void *self; @@@@ -248,15 +254,15 @@@@ lib3ds_io_read_float(Lib3dsIo *io) { Lib3dsByte b[4]; - Lib3dsDword d; + Lib3dsDwordFloat d; ASSERT(io); lib3ds_io_read(io, b, 4); - d=((Lib3dsDword)b[3] << 24) | + d.dword_value =((Lib3dsDword)b[3] << 24) | ((Lib3dsDword)b[2] << 16) | ((Lib3dsDword)b[1] << 8) | ((Lib3dsDword)b[0]); - return(*((Lib3dsFloat*)&d)); + return d.float_value; } @@@@ -459,14 +465,14 @@@@ lib3ds_io_write_float(Lib3dsIo *io, Lib3dsFloat l) { Lib3dsByte b[4]; - Lib3dsDword d; + Lib3dsDwordFloat d; ASSERT(io); - d=*((Lib3dsDword*)&l); - b[3]=(Lib3dsByte)(((Lib3dsDword)d & 0xFF000000) >> 24); - b[2]=(Lib3dsByte)(((Lib3dsDword)d & 0x00FF0000) >> 16); - b[1]=(Lib3dsByte)(((Lib3dsDword)d & 0x0000FF00) >> 8); - b[0]=(Lib3dsByte)(((Lib3dsDword)d & 0x000000FF)); + d.float_value = l; + b[3]=(Lib3dsByte)(((Lib3dsDword)d.dword_value & 0xFF000000) >> 24); + b[2]=(Lib3dsByte)(((Lib3dsDword)d.dword_value & 0x00FF0000) >> 16); + b[1]=(Lib3dsByte)(((Lib3dsDword)d.dword_value & 0x0000FF00) >> 8); + b[0]=(Lib3dsByte)(((Lib3dsDword)d.dword_value & 0x000000FF)); if (lib3ds_io_write(io, b, 4)!=4) { return(LIB3DS_FALSE); } @ 1.1 log @Fix float reading by using a union instead of a cast. Newer gcc's would generate incorrect code effectively breaking the package. I know this solution is still lame but its fix comes from the still uncomitted lib3ds version 2.0.0. Should one day be fixed/done correctly for non i386. @ text @d1 1 a1 1 $NetBSD$ d3 11 a13 3 --- lib3ds/io.c.orig 2001-07-11 15:47:35.000000000 +0200 +++ lib3ds/io.c @@@@ -31,6 +31,11 @@@@ d25 1 a25 1 @@@@ -248,15 +253,15 @@@@ Lib3dsFloat d44 1 a44 1 @@@@ -459,14 +464,14 @@@@ Lib3dsBool @