summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonnie Berkholz <dberkholz@gentoo.org>2006-09-24 06:47:01 +0000
committerDonnie Berkholz <dberkholz@gentoo.org>2006-09-24 06:47:01 +0000
commitbb3f32be60110a6ec899f626146a74bc02c58be7 (patch)
treed70b30cc5662961aae44c89cc539f34b873f4022 /x11-libs/fox
parentbug #142712 and bug #148733 fixed (diff)
downloadhistorical-bb3f32be60110a6ec899f626146a74bc02c58be7.tar.gz
historical-bb3f32be60110a6ec899f626146a74bc02c58be7.tar.bz2
historical-bb3f32be60110a6ec899f626146a74bc02c58be7.zip
(#145800) Allow gcc4 to compile apps against fox. Patches from Debian, courtesy of Travis Tilley.
Package-Manager: portage-2.1.2_pre1
Diffstat (limited to 'x11-libs/fox')
-rw-r--r--x11-libs/fox/ChangeLog12
-rw-r--r--x11-libs/fox/Manifest30
-rw-r--r--x11-libs/fox/files/1.2.18-gcc4-fix-includes.patch965
-rw-r--r--x11-libs/fox/files/1.4.34-gcc4-fix-includes.patch93
-rw-r--r--x11-libs/fox/files/digest-fox-1.2.18-r13
-rw-r--r--x11-libs/fox/files/digest-fox-1.4.34-r13
-rw-r--r--x11-libs/fox/fox-1.2.18-r1.ebuild54
-rw-r--r--x11-libs/fox/fox-1.4.34-r1.ebuild47
8 files changed, 1202 insertions, 5 deletions
diff --git a/x11-libs/fox/ChangeLog b/x11-libs/fox/ChangeLog
index 6a21a6d19e7b..7fef4091c4ce 100644
--- a/x11-libs/fox/ChangeLog
+++ b/x11-libs/fox/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for x11-libs/fox
# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/fox/ChangeLog,v 1.55 2006/09/05 08:03:13 mr_bones_ Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/fox/ChangeLog,v 1.56 2006/09/24 06:47:01 dberkholz Exp $
+
+*fox-1.4.34-r1 (24 Sep 2006)
+*fox-1.2.18-r1 (24 Sep 2006)
+
+ 24 Sep 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/1.2.18-gcc4-fix-includes.patch,
+ +files/1.4.34-gcc4-fix-includes.patch, +fox-1.2.18-r1.ebuild,
+ +fox-1.4.34-r1.ebuild:
+ (#145800) Allow gcc4 to compile apps against fox. Patches from Debian,
+ courtesy of Travis Tilley.
05 Sep 2006; Michael Sterrett <mr_bones_@gentoo.org> -fox-1.0.40.ebuild,
-fox-1.0.43.ebuild, -fox-1.2.4.ebuild, -fox-1.2.15.ebuild,
diff --git a/x11-libs/fox/Manifest b/x11-libs/fox/Manifest
index 0b2379a25071..94e804d6fb7e 100644
--- a/x11-libs/fox/Manifest
+++ b/x11-libs/fox/Manifest
@@ -1,3 +1,11 @@
+AUX 1.2.18-gcc4-fix-includes.patch 32889 RMD160 55b89157d204dd3231039acf49a224926a0a36d6 SHA1 ef98e3a2d8ac6fdff59cb4ec565b32e7c60aea1f SHA256 d191f9f3ce721faa423effde554aeb23131251d3bd77bf2b3823063ff226ec59
+MD5 c3cc1ae9bb9232524550a7faac384880 files/1.2.18-gcc4-fix-includes.patch 32889
+RMD160 55b89157d204dd3231039acf49a224926a0a36d6 files/1.2.18-gcc4-fix-includes.patch 32889
+SHA256 d191f9f3ce721faa423effde554aeb23131251d3bd77bf2b3823063ff226ec59 files/1.2.18-gcc4-fix-includes.patch 32889
+AUX 1.4.34-gcc4-fix-includes.patch 3218 RMD160 beb324ebe8b4d166ffc8cf6f59ceb90d6cc64ace SHA1 ca8a445b816d47a201f9279911e9785b003215e8 SHA256 93da83288b35ecbd7520edd6f556503a87e5af0751928dbf54a54bf7b6ccd0e4
+MD5 7064289364b12a02b87ded302f054655 files/1.4.34-gcc4-fix-includes.patch 3218
+RMD160 beb324ebe8b4d166ffc8cf6f59ceb90d6cc64ace files/1.4.34-gcc4-fix-includes.patch 3218
+SHA256 93da83288b35ecbd7520edd6f556503a87e5af0751928dbf54a54bf7b6ccd0e4 files/1.4.34-gcc4-fix-includes.patch 3218
DIST fox-1.0.49.tar.gz 2133091 RMD160 7bfc8777b5fa1e08a4f6afe38759ee06cd442f3b SHA1 bb0648b5dd46084074ba517943a765f56ec3b31c SHA256 81ec97089f7a8d5fececb89c94370e2d7665ec0679e797da568968cd26eeaf60
DIST fox-1.0.53.tar.gz 2120403 RMD160 639c53b8d744cb1bd6674d022bd6a8fdf3cd593d SHA1 97129a7365fd997db6422da906407aed7e1749e0 SHA256 74fda862214869a20f0f3f83726c41d04e9159820a0a92042d9396425bb4ccd6
DIST fox-1.2.18.tar.gz 3896090 RMD160 8c36939541e28f68bfd332fe1e12891faa15daca SHA1 3e17a6fd31c5e1bba5357c237fcb950834c28c38 SHA256 77509ed17fb736b83f3073fc04986eed79ce70338f6c12596c966551e0d56a1b
@@ -13,6 +21,10 @@ EBUILD fox-1.0.53.ebuild 1146 RMD160 a58be68c856a07b75c8af868482d92eaf7af60ee SH
MD5 4cc131d75aa25bb114229b9671fa2fe3 fox-1.0.53.ebuild 1146
RMD160 a58be68c856a07b75c8af868482d92eaf7af60ee fox-1.0.53.ebuild 1146
SHA256 2a8fa1a93ece30c868c85fbaa10711efcc640bc60cf36802bddb0f9a717f7d04 fox-1.0.53.ebuild 1146
+EBUILD fox-1.2.18-r1.ebuild 1333 RMD160 7c6370f1831b0774fc71fc90e5178304dc3ad7fd SHA1 734be3510102c3ca69c60967d4aae0e568c57c3e SHA256 5c6ade5cfe1792a8df71e2eb1f0dd9b56609f3033997de60e2cf8d67c81f034b
+MD5 1b26317bf72016f6c1b5e50acf26b7e6 fox-1.2.18-r1.ebuild 1333
+RMD160 7c6370f1831b0774fc71fc90e5178304dc3ad7fd fox-1.2.18-r1.ebuild 1333
+SHA256 5c6ade5cfe1792a8df71e2eb1f0dd9b56609f3033997de60e2cf8d67c81f034b fox-1.2.18-r1.ebuild 1333
EBUILD fox-1.2.18.ebuild 1234 RMD160 33e8e490d3d626613e8f23d208aa3b9993e0b193 SHA1 0a17a65a5a475ea3fd0040e79a1a793f84b2ab65 SHA256 b38bdabd42107f21328af09aeed433126781edd99a2cace2d4b734096118068f
MD5 4ca7028056ad07b94b87b828d87d5ac9 fox-1.2.18.ebuild 1234
RMD160 33e8e490d3d626613e8f23d208aa3b9993e0b193 fox-1.2.18.ebuild 1234
@@ -25,6 +37,10 @@ EBUILD fox-1.2.6-r3.ebuild 1483 RMD160 87d4ee1e6e698b1bbe478a4e0ba7f597eb264e46
MD5 6189e22543e86de99e00fa7fc199d124 fox-1.2.6-r3.ebuild 1483
RMD160 87d4ee1e6e698b1bbe478a4e0ba7f597eb264e46 fox-1.2.6-r3.ebuild 1483
SHA256 a7de29d4848b405d22648dd8ac0cfa7886d5fb6fd8df986aed3afbb407d54253 fox-1.2.6-r3.ebuild 1483
+EBUILD fox-1.4.34-r1.ebuild 1184 RMD160 7a1b73ce2a0d2da83fbb358c94d6edc3d877f24a SHA1 c2becdeef9ba0acc480ca24e8e2bcacc634ddebd SHA256 3ec47a46d8405de46487a6c7a32c480846752fbac85ec24e4fbe5e0c6deee48a
+MD5 45c0f25dfd91d1b13efe7bd2c10c8967 fox-1.4.34-r1.ebuild 1184
+RMD160 7a1b73ce2a0d2da83fbb358c94d6edc3d877f24a fox-1.4.34-r1.ebuild 1184
+SHA256 3ec47a46d8405de46487a6c7a32c480846752fbac85ec24e4fbe5e0c6deee48a fox-1.4.34-r1.ebuild 1184
EBUILD fox-1.4.34.ebuild 1088 RMD160 7a8a32d010150d3c97e942d184f5497e3f6eb55e SHA1 b7f130e652cc10399ba88426a81c9c4e25a0c68d SHA256 89bd2ff9dc6185b1386e72adb26712db65485dd6f805af5576c23c9c5fb6e2fa
MD5 e2aa8599d4d062632847545c1cd0e0e4 fox-1.4.34.ebuild 1088
RMD160 7a8a32d010150d3c97e942d184f5497e3f6eb55e fox-1.4.34.ebuild 1088
@@ -37,10 +53,10 @@ EBUILD fox-1.6.14.ebuild 1088 RMD160 f799b5c9f52512a1bb87d7890bb3f9c5348a72b4 SH
MD5 030843b920b4aabe3a4e99636ea23b2d fox-1.6.14.ebuild 1088
RMD160 f799b5c9f52512a1bb87d7890bb3f9c5348a72b4 fox-1.6.14.ebuild 1088
SHA256 317a10441878a5787b0e4d43b11a0e7b9d1df5b5561877ea8c2985c950c56096 fox-1.6.14.ebuild 1088
-MISC ChangeLog 6702 RMD160 fc096e968033453ac4dfa3550dd69b242d5b12db SHA1 9ce51025cc2390e5f4bbb501f1b92a64fa7868dc SHA256 3871dabd28a9e6fe1c86642c5566226522e921aa98cec87a40a96c4063df5350
-MD5 6d5db10ebacb0fc0f91e28a6f5c0f144 ChangeLog 6702
-RMD160 fc096e968033453ac4dfa3550dd69b242d5b12db ChangeLog 6702
-SHA256 3871dabd28a9e6fe1c86642c5566226522e921aa98cec87a40a96c4063df5350 ChangeLog 6702
+MISC ChangeLog 7049 RMD160 febd40427a846856bbef68b4557730544700591b SHA1 4a7322f66bc39b4405dd57550b16ace3b69383fe SHA256 49cd671852b5004222995fe5922a4d1c12a8f4d615445fedacfd588e456d02ac
+MD5 860030dca0ae9bbab8fc737ee8acc0b9 ChangeLog 7049
+RMD160 febd40427a846856bbef68b4557730544700591b ChangeLog 7049
+SHA256 49cd671852b5004222995fe5922a4d1c12a8f4d615445fedacfd588e456d02ac ChangeLog 7049
MISC metadata.xml 160 RMD160 d86217bb48cf4283e08e43bcaabbc919101ad795 SHA1 d6147d00f16e8cfeef893d0764b0675a93d62849 SHA256 56fca1e06f6dcbe3bc12e7d3962998c7cb79d74f218ce8a17b07771b3e06f49e
MD5 dffd46174e78b327c834fc3e4b1cf848 metadata.xml 160
RMD160 d86217bb48cf4283e08e43bcaabbc919101ad795 metadata.xml 160
@@ -54,6 +70,9 @@ SHA256 55078e73308bb42558bb0037826c94dd141e32dd4adacf8d044878816a0f68d5 files/di
MD5 b687d951937feadfb475fbcdb5601efd files/digest-fox-1.2.18 235
RMD160 6e13fece964841658a7a50bcd81b38d93687a804 files/digest-fox-1.2.18 235
SHA256 3b4216c0355d0e62f88e735fd1fc97377e08138f9afc602ab9a27173156632f7 files/digest-fox-1.2.18 235
+MD5 b687d951937feadfb475fbcdb5601efd files/digest-fox-1.2.18-r1 235
+RMD160 6e13fece964841658a7a50bcd81b38d93687a804 files/digest-fox-1.2.18-r1 235
+SHA256 3b4216c0355d0e62f88e735fd1fc97377e08138f9afc602ab9a27173156632f7 files/digest-fox-1.2.18-r1 235
MD5 651516d478ab8b234e3b3586bab024c8 files/digest-fox-1.2.6-r2 232
RMD160 484978049627344041273c99195f220b7a2c0a3e files/digest-fox-1.2.6-r2 232
SHA256 60c4b75d83b4a7144cb88399d045f2070bfb81e0c46371a80f406236e477aadd files/digest-fox-1.2.6-r2 232
@@ -63,6 +82,9 @@ SHA256 60c4b75d83b4a7144cb88399d045f2070bfb81e0c46371a80f406236e477aadd files/di
MD5 bd7d93aa708271eb2b068e0a0d638e68 files/digest-fox-1.4.34 235
RMD160 394190de6f2b06a8ee0fe1ca9a19536ec4e092ae files/digest-fox-1.4.34 235
SHA256 c381c622da72d81670c95ce0730cf25c89065d82cb0076afb867f820c7723a5d files/digest-fox-1.4.34 235
+MD5 bd7d93aa708271eb2b068e0a0d638e68 files/digest-fox-1.4.34-r1 235
+RMD160 394190de6f2b06a8ee0fe1ca9a19536ec4e092ae files/digest-fox-1.4.34-r1 235
+SHA256 c381c622da72d81670c95ce0730cf25c89065d82cb0076afb867f820c7723a5d files/digest-fox-1.4.34-r1 235
MD5 ef6bd59b06837347451172daa73db79f files/digest-fox-1.5.4 62
RMD160 ed73a08e6db90aff380d832fff74cad69949e540 files/digest-fox-1.5.4 62
SHA256 64b39e549ac3775283cb0139cf5347f2c14fbdfd9e36a6eb518125b703a3f7d1 files/digest-fox-1.5.4 62
diff --git a/x11-libs/fox/files/1.2.18-gcc4-fix-includes.patch b/x11-libs/fox/files/1.2.18-gcc4-fix-includes.patch
new file mode 100644
index 000000000000..bc626aaaba8d
--- /dev/null
+++ b/x11-libs/fox/files/1.2.18-gcc4-fix-includes.patch
@@ -0,0 +1,965 @@
+diff -ur fox1.2-1.2.13.orig/include/FXCharset.h fox1.2-1.2.13/include/FXCharset.h
+--- fox1.2-1.2.13.orig/include/FXCharset.h 2004-02-08 17:17:33.000000000 +0000
++++ fox1.2-1.2.13/include/FXCharset.h 2006-03-10 00:48:51.722421154 +0000
+@@ -27,6 +27,15 @@
+ namespace FX {
+
+ /// A set of characters
++
++class FXCharset;
++
++/// Save set to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXCharset& cs);
++
++/// Load set from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXCharset& cs);
++
+ class FXAPI FXCharset {
+ private:
+ FXuint s[8]; // Because 8*32 is 256 characters
+diff -ur fox1.2-1.2.13.orig/include/FXMat3d.h fox1.2-1.2.13/include/FXMat3d.h
+--- fox1.2-1.2.13.orig/include/FXMat3d.h 2004-02-08 17:17:33.000000000 +0000
++++ fox1.2-1.2.13/include/FXMat3d.h 2006-03-10 00:48:03.526775898 +0000
+@@ -29,6 +29,42 @@
+
+
+ /// Double-precision 3x3 matrix
++
++class FXMat3d;
++
++/// Other operators
++FXAPI FXMat3d operator+(const FXMat3d& a,const FXMat3d& b);
++FXAPI FXMat3d operator-(const FXMat3d& a,const FXMat3d& b);
++FXAPI FXMat3d operator-(const FXMat3d& a);
++FXAPI FXMat3d operator*(const FXMat3d& a,const FXMat3d& b);
++FXAPI FXMat3d operator*(FXdouble x,const FXMat3d& a);
++FXAPI FXMat3d operator*(const FXMat3d& a,FXdouble x);
++FXAPI FXMat3d operator/(const FXMat3d& a,FXdouble x);
++FXAPI FXMat3d operator/(FXdouble x,const FXMat3d& a);
++
++/// Multiply matrix and vector
++FXAPI FXVec3d operator*(const FXVec3d& v,const FXMat3d& m);
++FXAPI FXVec3d operator*(const FXMat3d& a,const FXVec3d& v);
++
++/// Mutiply matrix and vector, for non-projective matrix
++FXAPI FXVec2d operator*(const FXVec2d& v,const FXMat3d& m);
++FXAPI FXVec2d operator*(const FXMat3d& a,const FXVec2d& v);
++
++/// Determinant
++FXAPI FXdouble det(const FXMat3d& m);
++
++/// Transpose
++FXAPI FXMat3d transpose(const FXMat3d& m);
++
++/// Invert
++FXAPI FXMat3d invert(const FXMat3d& m);
++
++/// Save to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXMat3d& m);
++
++/// Load from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXMat3d& m);
++
+ class FXAPI FXMat3d {
+ protected:
+ FXVec3d m[3];
+diff -ur fox1.2-1.2.13.orig/include/FXMat3f.h fox1.2-1.2.13/include/FXMat3f.h
+--- fox1.2-1.2.13.orig/include/FXMat3f.h 2004-02-08 17:17:33.000000000 +0000
++++ fox1.2-1.2.13/include/FXMat3f.h 2006-03-10 01:04:38.131634188 +0000
+@@ -29,6 +29,42 @@
+
+
+ /// Single-precision 3x3 matrix
++
++class FXMat3f;
++
++/// Other operators
++FXAPI FXMat3f operator+(const FXMat3f& a,const FXMat3f& b);
++FXAPI FXMat3f operator-(const FXMat3f& a,const FXMat3f& b);
++FXAPI FXMat3f operator-(const FXMat3f& a);
++FXAPI FXMat3f operator*(const FXMat3f& a,const FXMat3f& b);
++FXAPI FXMat3f operator*(FXfloat x,const FXMat3f& a);
++FXAPI FXMat3f operator*(const FXMat3f& a,FXfloat x);
++FXAPI FXMat3f operator/(const FXMat3f& a,FXfloat x);
++FXAPI FXMat3f operator/(FXfloat x,const FXMat3f& a);
++
++/// Multiply matrix and vector
++FXAPI FXVec3f operator*(const FXVec3f& v,const FXMat3f& m);
++FXAPI FXVec3f operator*(const FXMat3f& a,const FXVec3f& v);
++
++/// Mutiply matrix and vector, for non-projective matrix
++FXAPI FXVec2f operator*(const FXVec2f& v,const FXMat3f& m);
++FXAPI FXVec2f operator*(const FXMat3f& a,const FXVec2f& v);
++
++/// Determinant
++FXAPI FXfloat det(const FXMat3f& m);
++
++/// Transpose
++FXAPI FXMat3f transpose(const FXMat3f& m);
++
++/// Invert
++FXAPI FXMat3f invert(const FXMat3f& m);
++
++/// Save to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXMat3f& m);
++
++/// Load from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXMat3f& m);
++
+ class FXAPI FXMat3f {
+ protected:
+ FXVec3f m[3];
+diff -ur fox1.2-1.2.13.orig/include/FXMat4d.h fox1.2-1.2.13/include/FXMat4d.h
+--- fox1.2-1.2.13.orig/include/FXMat4d.h 2004-02-08 17:17:33.000000000 +0000
++++ fox1.2-1.2.13/include/FXMat4d.h 2006-03-10 00:52:32.796271887 +0000
+@@ -29,6 +29,42 @@
+
+
+ /// Double-precision 4x4 matrix
++
++class FXMat4d;
++
++/// Other operators
++FXAPI FXMat4d operator+(const FXMat4d& a,const FXMat4d& b);
++FXAPI FXMat4d operator-(const FXMat4d& a,const FXMat4d& b);
++FXAPI FXMat4d operator-(const FXMat4d& a);
++FXAPI FXMat4d operator*(const FXMat4d& a,const FXMat4d& b);
++FXAPI FXMat4d operator*(FXdouble x,const FXMat4d& a);
++FXAPI FXMat4d operator*(const FXMat4d& a,FXdouble x);
++FXAPI FXMat4d operator/(const FXMat4d& a,FXdouble x);
++FXAPI FXMat4d operator/(FXdouble x,const FXMat4d& a);
++
++/// Multiply matrix and vector
++FXAPI FXVec4d operator*(const FXVec4d& v,const FXMat4d& m);
++FXAPI FXVec4d operator*(const FXMat4d& a,const FXVec4d& v);
++
++/// Mutiply matrix and vector, for non-projective matrix
++FXAPI FXVec3d operator*(const FXVec3d& v,const FXMat4d& m);
++FXAPI FXVec3d operator*(const FXMat4d& a,const FXVec3d& v);
++
++/// Determinant
++FXAPI FXdouble det(const FXMat4d& m);
++
++/// Transpose
++FXAPI FXMat4d transpose(const FXMat4d& m);
++
++/// Invert
++FXAPI FXMat4d invert(const FXMat4d& m);
++
++/// Save to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXMat4d& m);
++
++/// Load from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXMat4d& m);
++
+ class FXAPI FXMat4d {
+ protected:
+ FXVec4d m[4];
+diff -ur fox1.2-1.2.13.orig/include/FXMat4f.h fox1.2-1.2.13/include/FXMat4f.h
+--- fox1.2-1.2.13.orig/include/FXMat4f.h 2004-02-08 17:17:33.000000000 +0000
++++ fox1.2-1.2.13/include/FXMat4f.h 2006-03-10 00:56:14.302065666 +0000
+@@ -29,6 +29,42 @@
+
+
+ /// Single-precision 4x4 matrix
++
++class FXMat4f;
++
++/// Other operators
++FXAPI FXMat4f operator+(const FXMat4f& a,const FXMat4f& b);
++FXAPI FXMat4f operator-(const FXMat4f& a,const FXMat4f& b);
++FXAPI FXMat4f operator-(const FXMat4f& a);
++FXAPI FXMat4f operator*(const FXMat4f& a,const FXMat4f& b);
++FXAPI FXMat4f operator*(FXfloat x,const FXMat4f& a);
++FXAPI FXMat4f operator*(const FXMat4f& a,FXfloat x);
++FXAPI FXMat4f operator/(const FXMat4f& a,FXfloat x);
++FXAPI FXMat4f operator/(FXfloat x,const FXMat4f& a);
++
++/// Multiply matrix and vector
++FXAPI FXVec4f operator*(const FXVec4f& v,const FXMat4f& m);
++FXAPI FXVec4f operator*(const FXMat4f& a,const FXVec4f& v);
++
++/// Mutiply matrix and vector, for non-projective matrix
++FXAPI FXVec3f operator*(const FXVec3f& v,const FXMat4f& m);
++FXAPI FXVec3f operator*(const FXMat4f& a,const FXVec3f& v);
++
++/// Determinant
++FXAPI FXfloat det(const FXMat4f& m);
++
++/// Transpose
++FXAPI FXMat4f transpose(const FXMat4f& m);
++
++/// Invert
++FXAPI FXMat4f invert(const FXMat4f& m);
++
++/// Save to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXMat4f& m);
++
++/// Load from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXMat4f& m);
++
+ class FXAPI FXMat4f {
+ protected:
+ FXVec4f m[4];
+diff -ur fox1.2-1.2.13.orig/include/FXPoint.h fox1.2-1.2.13/include/FXPoint.h
+--- fox1.2-1.2.13.orig/include/FXPoint.h 2004-02-08 17:17:34.000000000 +0000
++++ fox1.2-1.2.13/include/FXPoint.h 2006-03-10 00:46:23.623948393 +0000
+@@ -28,6 +28,15 @@
+ namespace FX {
+
+ /// Point
++
++class FXPoint;
++
++/// Save object to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXPoint& p);
++
++/// Load object from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXPoint& p);
++
+ class FXAPI FXPoint {
+ public:
+ FXshort x;
+diff -ur fox1.2-1.2.13.orig/include/FXQuatd.h fox1.2-1.2.13/include/FXQuatd.h
+--- fox1.2-1.2.13.orig/include/FXQuatd.h 2004-02-27 18:30:06.000000000 +0000
++++ fox1.2-1.2.13/include/FXQuatd.h 2006-03-10 00:51:04.020977182 +0000
+@@ -29,6 +29,36 @@
+
+
+ /// double-precision quaternion
++
++class FXQuatd;
++
++/// Exponentiate quaternion
++FXAPI FXQuatd exp(const FXQuatd& q);
++
++/// Take logarithm of quaternion
++FXAPI FXQuatd log(const FXQuatd& q);
++
++/// Invert quaternion
++FXAPI FXQuatd invert(const FXQuatd& q);
++
++/// Invert unit quaternion
++FXAPI FXQuatd unitinvert(const FXQuatd& q);
++
++/// Conjugate quaternion
++FXAPI FXQuatd conj(const FXQuatd& q);
++
++/// Multiply quaternions
++FXAPI FXQuatd operator*(const FXQuatd& p,const FXQuatd& q);
++
++// Rotation of a vector by a quaternion
++FXAPI FXVec3d operator*(const FXQuatd& quat,const FXVec3d& vec);
++
++/// Construct quaternion from arc a->b on unit sphere
++FXAPI FXQuatd arc(const FXVec3d& a,const FXVec3d& b);
++
++/// Spherical lerp
++FXAPI FXQuatd lerp(const FXQuatd& u,const FXQuatd& v,FXdouble f);
++
+ class FXAPI FXQuatd : public FXVec4d {
+ public:
+
+diff -ur fox1.2-1.2.13.orig/include/FXQuatf.h fox1.2-1.2.13/include/FXQuatf.h
+--- fox1.2-1.2.13.orig/include/FXQuatf.h 2004-02-27 18:30:06.000000000 +0000
++++ fox1.2-1.2.13/include/FXQuatf.h 2006-03-10 00:54:14.995796565 +0000
+@@ -29,6 +29,36 @@
+
+
+ /// Single-precision quaternion
++
++class FXQuatf;
++
++/// Exponentiate quaternion
++FXAPI FXQuatf exp(const FXQuatf& q);
++
++/// Take logarithm of quaternion
++FXAPI FXQuatf log(const FXQuatf& q);
++
++/// Invert quaternion
++FXAPI FXQuatf invert(const FXQuatf& q);
++
++/// Invert unit quaternion
++FXAPI FXQuatf unitinvert(const FXQuatf& q);
++
++/// Conjugate quaternion
++FXAPI FXQuatf conj(const FXQuatf& q);
++
++/// Multiply quaternions
++FXAPI FXQuatf operator*(const FXQuatf& p,const FXQuatf& q);
++
++// Rotation of a vector by a quaternion
++FXAPI FXVec3f operator*(const FXQuatf& quat,const FXVec3f& vec);
++
++/// Construct quaternion from arc a->b on unit sphere
++FXAPI FXQuatf arc(const FXVec3f& a,const FXVec3f& b);
++
++/// Spherical lerp
++FXAPI FXQuatf lerp(const FXQuatf& u,const FXQuatf& v,FXfloat f);
++
+ class FXAPI FXQuatf : public FXVec4f {
+ public:
+
+diff -ur fox1.2-1.2.13.orig/include/FXRanged.h fox1.2-1.2.13/include/FXRanged.h
+--- fox1.2-1.2.13.orig/include/FXRanged.h 2004-02-29 17:54:17.000000000 +0000
++++ fox1.2-1.2.13/include/FXRanged.h 2006-03-10 00:49:50.525667765 +0000
+@@ -32,6 +32,24 @@
+
+
+ /// Bounds
++
++class FXRanged;
++
++/// Test if bounds overlap
++FXAPI FXbool overlap(const FXRanged& a,const FXRanged& b);
++
++/// Union of two boxes
++FXAPI FXRanged unite(const FXRanged& a,const FXRanged& b);
++
++/// Intersection of two boxes
++FXAPI FXRanged intersect(const FXRanged& a,const FXRanged& b);
++
++/// Save object to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXRanged& bounds);
++
++/// Load object from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXRanged& bounds);
++
+ class FXAPI FXRanged {
+ public:
+ FXVec3d lower;
+diff -ur fox1.2-1.2.13.orig/include/FXRangef.h fox1.2-1.2.13/include/FXRangef.h
+--- fox1.2-1.2.13.orig/include/FXRangef.h 2004-02-29 17:54:17.000000000 +0000
++++ fox1.2-1.2.13/include/FXRangef.h 2006-03-10 00:53:08.458569703 +0000
+@@ -32,6 +32,24 @@
+
+
+ /// Bounds
++
++class FXRangef;
++
++/// Test if boxes a and b overlap
++FXAPI FXbool overlap(const FXRangef& a,const FXRangef& b);
++
++/// Union of two boxes
++FXAPI FXRangef unite(const FXRangef& a,const FXRangef& b);
++
++/// Intersection of two boxes
++FXAPI FXRangef intersect(const FXRangef& a,const FXRangef& b);
++
++/// Save object to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXRangef& bounds);
++
++/// Load object from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXRangef& bounds);
++
+ class FXAPI FXRangef {
+ public:
+ FXVec3f lower;
+diff -ur fox1.2-1.2.13.orig/include/FXRectangle.h fox1.2-1.2.13/include/FXRectangle.h
+--- fox1.2-1.2.13.orig/include/FXRectangle.h 2004-02-11 20:33:36.000000000 +0000
++++ fox1.2-1.2.13/include/FXRectangle.h 2006-03-10 00:59:02.699861899 +0000
+@@ -28,6 +28,18 @@
+ namespace FX {
+
+ /// Rectangle
++
++class FXRectangle;
++
++/// Rectangles overlap
++FXAPI FXbool overlap(const FXRectangle& a,const FXRectangle& b);
++
++/// Save object to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXRectangle& r);
++
++/// Load object from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXRectangle& r);
++
+ class FXAPI FXRectangle {
+ public:
+ FXshort x;
+diff -ur fox1.2-1.2.13.orig/include/FXRegion.h fox1.2-1.2.13/include/FXRegion.h
+--- fox1.2-1.2.13.orig/include/FXRegion.h 2004-02-11 20:33:36.000000000 +0000
++++ fox1.2-1.2.13/include/FXRegion.h 2006-03-10 01:00:28.133597198 +0000
+@@ -27,6 +27,27 @@
+ namespace FX {
+
+ /// Region
++
++class FXRegion;
++
++/// Union of region r1 and region r2
++FXAPI FXRegion operator+(const FXRegion& r1,const FXRegion& r2);
++
++/// Intersection of region r1 and region r2
++FXAPI FXRegion operator*(const FXRegion& r1,const FXRegion& r2);
++
++/// Substract region r2 from region r1
++FXAPI FXRegion operator-(const FXRegion& r1,const FXRegion& r2);
++
++/// Xor of region r1 and region r2
++FXAPI FXRegion operator^(const FXRegion& r1,const FXRegion& r2);
++
++/// Return TRUE if region equal to this one
++FXAPI FXbool operator==(const FXRegion& r1,const FXRegion& r2);
++
++/// Return TRUE if region not equal to this one
++FXAPI FXbool operator!=(const FXRegion& r1,const FXRegion& r2);
++
+ class FXAPI FXRegion {
+ friend class FXDC;
+ friend class FXDCWindow;
+diff -ur fox1.2-1.2.13.orig/include/FXRex.h fox1.2-1.2.13/include/FXRex.h
+--- fox1.2-1.2.13.orig/include/FXRex.h 2004-02-08 17:17:34.000000000 +0000
++++ fox1.2-1.2.13/include/FXRex.h 2006-03-10 00:53:42.405093749 +0000
+@@ -96,6 +96,17 @@
+ * or line end. The flag REX_NOT_EMPTY causes a match to fail if
+ * the empty string was matched.
+ */
++
++class FXRex;
++
++/// Comparison operators
++FXAPI FXbool operator==(const FXRex &r1,const FXRex &r2);
++FXAPI FXbool operator!=(const FXRex &r1,const FXRex &r2);
++
++/// Saving and loading
++FXAPI FXStream& operator<<(FXStream& store,const FXRex& s);
++FXAPI FXStream& operator>>(FXStream& store,FXRex& s);
++
+ class FXAPI FXRex {
+ private:
+ FXint *code;
+diff -ur fox1.2-1.2.13.orig/include/FXSize.h fox1.2-1.2.13/include/FXSize.h
+--- fox1.2-1.2.13.orig/include/FXSize.h 2004-02-08 17:17:34.000000000 +0000
++++ fox1.2-1.2.13/include/FXSize.h 2006-03-10 00:42:11.995126427 +0000
+@@ -28,6 +28,14 @@
+ namespace FX {
+
+ /// Size
++class FXSize;
++
++/// Save object to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXSize& s);
++
++/// Load object from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXSize& s);
++
+ class FXAPI FXSize {
+ public:
+ FXshort w;
+diff -ur fox1.2-1.2.13.orig/include/FXSphered.h fox1.2-1.2.13/include/FXSphered.h
+--- fox1.2-1.2.13.orig/include/FXSphered.h 2004-03-21 19:07:57.000000000 +0000
++++ fox1.2-1.2.13/include/FXSphered.h 2006-03-10 00:50:26.049983775 +0000
+@@ -32,6 +32,24 @@
+
+
+ // Spherical bounds
++
++class FXSphered;
++
++/// Test if box overlaps with sphere
++FXAPI FXbool overlap(const FXRanged& a,const FXSphered& b);
++
++/// Test if sphere overlaps with box
++FXAPI FXbool overlap(const FXSphered& a,const FXRanged& b);
++
++/// Test if spheres overlap
++FXAPI FXbool overlap(const FXSphered& a,const FXSphered& b);
++
++/// Save object to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXSphered& sphere);
++
++/// Load object from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXSphered& sphere);
++
+ class FXAPI FXSphered {
+ public:
+ FXVec3d center;
+diff -ur fox1.2-1.2.13.orig/include/FXSpheref.h fox1.2-1.2.13/include/FXSpheref.h
+--- fox1.2-1.2.13.orig/include/FXSpheref.h 2004-03-21 19:07:57.000000000 +0000
++++ fox1.2-1.2.13/include/FXSpheref.h 2006-03-10 00:51:38.656410394 +0000
+@@ -32,6 +32,24 @@
+
+
+ // Spherical bounds
++
++class FXSpheref;
++
++/// Test if box overlaps with sphere
++FXAPI FXbool overlap(const FXRangef& a,const FXSpheref& b);
++
++/// Test if sphere overlaps with box
++FXAPI FXbool overlap(const FXSpheref& a,const FXRangef& b);
++
++/// Test if spheres overlap
++FXAPI FXbool overlap(const FXSpheref& a,const FXSpheref& b);
++
++/// Save object to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXSpheref& sphere);
++
++/// Load object from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXSpheref& sphere);
++
+ class FXAPI FXSpheref {
+ public:
+ FXVec3f center;
+diff -ur fox1.2-1.2.13.orig/include/FXString.h fox1.2-1.2.13/include/FXString.h
+--- fox1.2-1.2.13.orig/include/FXString.h 2004-08-28 02:10:02.000000000 +0100
++++ fox1.2-1.2.13/include/FXString.h 2006-03-10 00:41:13.793800451 +0000
+@@ -30,6 +30,108 @@
+ /**
+ * FXString provides essential string manipulation capabilities.
+ */
++class FXString;
++
++/// Compare
++FXAPI FXint compare(const FXchar* s1,const FXchar* s2);
++FXAPI FXint compare(const FXchar* s1,const FXString& s2);
++FXAPI FXint compare(const FXString& s1,const FXchar* s2);
++FXAPI FXint compare(const FXString& s1,const FXString& s2);
++
++/// Compare up to n
++FXAPI FXint compare(const FXchar* s1,const FXchar* s2,FXint n);
++FXAPI FXint compare(const FXchar* s1,const FXString& s2,FXint n);
++FXAPI FXint compare(const FXString& s1,const FXchar* s2,FXint n);
++FXAPI FXint compare(const FXString& s1,const FXString& s2,FXint n);
++
++/// Compare case insensitive
++FXAPI FXint comparecase(const FXchar* s1,const FXchar* s2);
++FXAPI FXint comparecase(const FXchar* s1,const FXString& s2);
++FXAPI FXint comparecase(const FXString& s1,const FXchar* s2);
++FXAPI FXint comparecase(const FXString& s1,const FXString& s2);
++
++/// Compare case insensitive up to n
++FXAPI FXint comparecase(const FXchar* s1,const FXchar* s2,FXint n);
++FXAPI FXint comparecase(const FXchar* s1,const FXString& s2,FXint n);
++FXAPI FXint comparecase(const FXString& s1,const FXchar* s2,FXint n);
++FXAPI FXint comparecase(const FXString& s1,const FXString& s2,FXint n);
++
++/// Comparison operators
++FXAPI FXbool operator==(const FXString& s1,const FXString& s2);
++FXAPI FXbool operator==(const FXString& s1,const FXchar* s2);
++FXAPI FXbool operator==(const FXchar* s1,const FXString& s2);
++
++FXAPI FXbool operator!=(const FXString& s1,const FXString& s2);
++FXAPI FXbool operator!=(const FXString& s1,const FXchar* s2);
++FXAPI FXbool operator!=(const FXchar* s1,const FXString& s2);
++
++FXAPI FXbool operator<(const FXString& s1,const FXString& s2);
++FXAPI FXbool operator<(const FXString& s1,const FXchar* s2);
++FXAPI FXbool operator<(const FXchar* s1,const FXString& s2);
++
++FXAPI FXbool operator<=(const FXString& s1,const FXString& s2);
++FXAPI FXbool operator<=(const FXString& s1,const FXchar* s2);
++FXAPI FXbool operator<=(const FXchar* s1,const FXString& s2);
++
++FXAPI FXbool operator>(const FXString& s1,const FXString& s2);
++FXAPI FXbool operator>(const FXString& s1,const FXchar* s2);
++FXAPI FXbool operator>(const FXchar* s1,const FXString& s2);
++
++FXAPI FXbool operator>=(const FXString& s1,const FXString& s2);
++FXAPI FXbool operator>=(const FXString& s1,const FXchar* s2);
++FXAPI FXbool operator>=(const FXchar* s1,const FXString& s2);
++
++/// Concatenate two strings
++FXAPI FXString operator+(const FXString& s1,const FXString& s2);
++FXAPI FXString operator+(const FXString& s1,const FXchar* s2);
++FXAPI FXString operator+(const FXchar* s1,const FXString& s2);
++
++/// Concatenate with single character
++FXAPI FXString operator+(const FXString& s,FXchar c);
++FXAPI FXString operator+(FXchar c,const FXString& s);
++
++/// Saving to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXString& s);
++
++/// Load from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXString& s);
++
++/// Format a string a-la printf
++FXAPI FXString FXStringFormat(const FXchar* fmt,...) FX_PRINTF(1,2) ;
++FXAPI FXString FXStringVFormat(const FXchar* fmt,va_list args);
++
++/**
++* Convert integer number to a string, using the given number
++* base, which must be between 2 and 16.
++*/
++FXAPI FXString FXStringVal(FXint num,FXint base=10);
++FXAPI FXString FXStringVal(FXuint num,FXint base=10);
++
++/**
++* Convert real number to a string, using the given procision and
++* exponential notation mode, which may be FALSE (never), TRUE (always), or
++* MAYBE (when needed).
++*/
++FXAPI FXString FXStringVal(FXfloat num,FXint prec=6,FXbool exp=MAYBE);
++FXAPI FXString FXStringVal(FXdouble num,FXint prec=6,FXbool exp=MAYBE);
++
++/// Convert string to a integer number, assuming given number base
++FXAPI FXint FXIntVal(const FXString& s,FXint base);
++FXAPI FXuint FXUIntVal(const FXString& s,FXint base);
++
++/// Convert string into real number
++FXAPI FXfloat FXFloatVal(const FXString& s);
++FXAPI FXdouble FXDoubleVal(const FXString& s);
++
++/// Escape special characters in a string
++FXAPI FXString escape(const FXString& s);
++
++/// Unescape special characters in a string
++FXAPI FXString unescape(const FXString& s);
++
++/// Swap two strings
++FXAPI void swap(FXString& a,FXString& b);
++
+ class FXAPI FXString {
+ private:
+ FXchar* str;
+@@ -359,25 +461,21 @@
+ FXuint hash() const;
+
+ /// Compare
+- friend FXAPI FXint compare(const FXchar* s1,const FXchar* s2);
+ friend FXAPI FXint compare(const FXchar* s1,const FXString& s2);
+ friend FXAPI FXint compare(const FXString& s1,const FXchar* s2);
+ friend FXAPI FXint compare(const FXString& s1,const FXString& s2);
+
+ /// Compare up to n
+- friend FXAPI FXint compare(const FXchar* s1,const FXchar* s2,FXint n);
+ friend FXAPI FXint compare(const FXchar* s1,const FXString& s2,FXint n);
+ friend FXAPI FXint compare(const FXString& s1,const FXchar* s2,FXint n);
+ friend FXAPI FXint compare(const FXString& s1,const FXString& s2,FXint n);
+
+ /// Compare case insensitive
+- friend FXAPI FXint comparecase(const FXchar* s1,const FXchar* s2);
+ friend FXAPI FXint comparecase(const FXchar* s1,const FXString& s2);
+ friend FXAPI FXint comparecase(const FXString& s1,const FXchar* s2);
+ friend FXAPI FXint comparecase(const FXString& s1,const FXString& s2);
+
+ /// Compare case insensitive up to n
+- friend FXAPI FXint comparecase(const FXchar* s1,const FXchar* s2,FXint n);
+ friend FXAPI FXint comparecase(const FXchar* s1,const FXString& s2,FXint n);
+ friend FXAPI FXint comparecase(const FXString& s1,const FXchar* s2,FXint n);
+ friend FXAPI FXint comparecase(const FXString& s1,const FXString& s2,FXint n);
+@@ -431,21 +529,6 @@
+ friend FXAPI FXString FXStringFormat(const FXchar* fmt,...) FX_PRINTF(1,2) ;
+ friend FXAPI FXString FXStringVFormat(const FXchar* fmt,va_list args);
+
+- /**
+- * Convert integer number to a string, using the given number
+- * base, which must be between 2 and 16.
+- */
+- friend FXAPI FXString FXStringVal(FXint num,FXint base=10);
+- friend FXAPI FXString FXStringVal(FXuint num,FXint base=10);
+-
+- /**
+- * Convert real number to a string, using the given procision and
+- * exponential notation mode, which may be FALSE (never), TRUE (always), or
+- * MAYBE (when needed).
+- */
+- friend FXAPI FXString FXStringVal(FXfloat num,FXint prec=6,FXbool exp=MAYBE);
+- friend FXAPI FXString FXStringVal(FXdouble num,FXint prec=6,FXbool exp=MAYBE);
+-
+ /// Convert string to a integer number, assuming given number base
+ friend FXAPI FXint FXIntVal(const FXString& s,FXint base=10);
+ friend FXAPI FXuint FXUIntVal(const FXString& s,FXint base=10);
+@@ -454,12 +537,6 @@
+ friend FXAPI FXfloat FXFloatVal(const FXString& s);
+ friend FXAPI FXdouble FXDoubleVal(const FXString& s);
+
+- /// Escape special characters in a string
+- friend FXAPI FXString escape(const FXString& s);
+-
+- /// Unescape special characters in a string
+- friend FXAPI FXString unescape(const FXString& s);
+-
+ /// Swap two strings
+ friend FXAPI void swap(FXString& a,FXString& b){ FXchar *t=a.str; a.str=b.str; b.str=t; }
+
+diff -ur fox1.2-1.2.13.orig/include/FXVec2d.h fox1.2-1.2.13/include/FXVec2d.h
+--- fox1.2-1.2.13.orig/include/FXVec2d.h 2004-02-13 22:48:37.000000000 +0000
++++ fox1.2-1.2.13/include/FXVec2d.h 2006-03-10 00:55:10.350497877 +0000
+@@ -29,6 +29,26 @@
+
+
+ /// Double-precision 2-element vector
++
++class FXVec2d;
++
++/// Length and square of length
++FXAPI FXdouble len2(const FXVec2d& a);
++FXAPI FXdouble len(const FXVec2d& a);
++
++/// Normalize vector
++FXAPI FXVec2d normalize(const FXVec2d& a);
++
++/// Lowest or highest components
++FXAPI FXVec2d lo(const FXVec2d& a,const FXVec2d& b);
++FXAPI FXVec2d hi(const FXVec2d& a,const FXVec2d& b);
++
++/// Save vector to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXVec2d& v);
++
++/// Load vector from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXVec2d& v);
++
+ class FXAPI FXVec2d {
+ public:
+ FXdouble x;
+diff -ur fox1.2-1.2.13.orig/include/FXVec2f.h fox1.2-1.2.13/include/FXVec2f.h
+--- fox1.2-1.2.13.orig/include/FXVec2f.h 2004-02-13 22:48:37.000000000 +0000
++++ fox1.2-1.2.13/include/FXVec2f.h 2006-03-10 00:58:11.589600944 +0000
+@@ -29,6 +29,26 @@
+
+
+ /// Single-precision 2-element vector
++
++class FXVec2f;
++
++/// Length and square of length
++FXAPI FXfloat len2(const FXVec2f& a);
++FXAPI FXfloat len(const FXVec2f& a);
++
++/// Normalize vector
++FXAPI FXVec2f normalize(const FXVec2f& a);
++
++/// Lowest or highest components
++FXAPI FXVec2f lo(const FXVec2f& a,const FXVec2f& b);
++FXAPI FXVec2f hi(const FXVec2f& a,const FXVec2f& b);
++
++/// Save vector to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXVec2f& v);
++
++/// Load vector from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXVec2f& v);
++
+ class FXAPI FXVec2f {
+ public:
+ FXfloat x;
+diff -ur fox1.2-1.2.13.orig/include/FXVec3d.h fox1.2-1.2.13/include/FXVec3d.h
+--- fox1.2-1.2.13.orig/include/FXVec3d.h 2004-02-13 22:48:37.000000000 +0000
++++ fox1.2-1.2.13/include/FXVec3d.h 2006-03-10 00:57:09.046847398 +0000
+@@ -29,6 +29,26 @@
+
+
+ /// Double-precision 3-element vector
++
++class FXVec3d;
++
++/// Length and square of length
++FXAPI FXdouble len2(const FXVec3d& a);
++FXAPI FXdouble len(const FXVec3d& a);
++
++/// Normalize vector
++FXAPI FXVec3d normalize(const FXVec3d& a);
++
++/// Lowest or highest components
++FXAPI FXVec3d lo(const FXVec3d& a,const FXVec3d& b);
++FXAPI FXVec3d hi(const FXVec3d& a,const FXVec3d& b);
++
++/// Save vector to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXVec3d& v);
++
++/// Load vector from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXVec3d& v);
++
+ class FXAPI FXVec3d {
+ public:
+ FXdouble x;
+diff -ur fox1.2-1.2.13.orig/include/FXVec3f.h fox1.2-1.2.13/include/FXVec3f.h
+--- fox1.2-1.2.13.orig/include/FXVec3f.h 2004-05-13 23:36:05.000000000 +0100
++++ fox1.2-1.2.13/include/FXVec3f.h 2006-03-10 00:44:21.585039599 +0000
+@@ -29,6 +29,26 @@
+
+
+ /// Single-precision 3-element vector
++
++class FXVec3f;
++
++/// Length and square of length
++FXAPI FXfloat len2(const FXVec3f& a);
++FXAPI FXfloat len(const FXVec3f& a);
++
++/// Normalize vector
++FXAPI FXVec3f normalize(const FXVec3f& a);
++
++/// Lowest or highest components
++FXAPI FXVec3f lo(const FXVec3f& a,const FXVec3f& b);
++FXAPI FXVec3f hi(const FXVec3f& a,const FXVec3f& b);
++
++/// Save vector to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXVec3f& v);
++
++/// Load vector from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXVec3f& v);
++
+ class FXAPI FXVec3f {
+ public:
+ FXfloat x;
+diff -ur fox1.2-1.2.13.orig/include/FXVec4d.h fox1.2-1.2.13/include/FXVec4d.h
+--- fox1.2-1.2.13.orig/include/FXVec4d.h 2004-06-04 05:32:23.000000000 +0100
++++ fox1.2-1.2.13/include/FXVec4d.h 2006-03-10 00:45:40.856587401 +0000
+@@ -29,6 +29,26 @@
+
+
+ /// Double-precision 4-element vector
++
++class FXVec4d;
++
++/// Length and square of length
++FXAPI FXdouble len2(const FXVec4d& a);
++FXAPI FXdouble len(const FXVec4d& a);
++
++/// Normalize vector
++FXAPI FXVec4d normalize(const FXVec4d& a);
++
++/// Lowest or highest components
++FXAPI FXVec4d lo(const FXVec4d& a,const FXVec4d& b);
++FXAPI FXVec4d hi(const FXVec4d& a,const FXVec4d& b);
++
++/// Save to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXVec4d& v);
++
++/// Load from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXVec4d& v);
++
+ class FXAPI FXVec4d {
+ public:
+ FXdouble x;
+diff -ur fox1.2-1.2.13.orig/include/FXVec4f.h fox1.2-1.2.13/include/FXVec4f.h
+--- fox1.2-1.2.13.orig/include/FXVec4f.h 2004-06-04 05:32:23.000000000 +0100
++++ fox1.2-1.2.13/include/FXVec4f.h 2006-03-10 01:02:29.506593795 +0000
+@@ -29,6 +29,26 @@
+
+
+ /// Single-precision 4-element vector
++
++class FXVec4f;
++
++/// Length and square of length
++FXAPI FXfloat len2(const FXVec4f& a);
++FXAPI FXfloat len(const FXVec4f& a);
++
++/// Normalize vector
++FXAPI FXVec4f normalize(const FXVec4f& a);
++
++/// Lowest or highest components
++FXAPI FXVec4f lo(const FXVec4f& a,const FXVec4f& b);
++FXAPI FXVec4f hi(const FXVec4f& a,const FXVec4f& b);
++
++/// Save to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXVec4f& v);
++
++/// Load from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXVec4f& v);
++
+ class FXAPI FXVec4f {
+ public:
+ FXfloat x;
+diff -ur fox1.2-1.2.13.orig/include/FXWString.h fox1.2-1.2.13/include/FXWString.h
+--- fox1.2-1.2.13.orig/include/FXWString.h 2004-02-08 17:17:34.000000000 +0000
++++ fox1.2-1.2.13/include/FXWString.h 2006-03-10 00:41:09.187407818 +0000
+@@ -34,6 +34,75 @@
+ /**
+ * FXWString provides a "wide" string class suitable for storing Unicode strings.
+ */
++class FXWString;
++
++/// Compare
++FXAPI FXint compare(const FXwchar *s1,const FXwchar *s2);
++FXAPI FXint compare(const FXwchar *s1,const FXWString &s2);
++FXAPI FXint compare(const FXWString &s1,const FXwchar *s2);
++FXAPI FXint compare(const FXWString &s1,const FXWString &s2);
++
++/// Compare up to n
++FXAPI FXint compare(const FXwchar *s1,const FXwchar *s2,FXint n);
++FXAPI FXint compare(const FXwchar *s1,const FXWString &s2,FXint n);
++FXAPI FXint compare(const FXWString &s1,const FXwchar *s2,FXint n);
++FXAPI FXint compare(const FXWString &s1,const FXWString &s2,FXint n);
++
++/// Compare case insensitive
++FXAPI FXint comparecase(const FXwchar *s1,const FXwchar *s2);
++FXAPI FXint comparecase(const FXwchar *s1,const FXWString &s2);
++FXAPI FXint comparecase(const FXWString &s1,const FXwchar *s2);
++FXAPI FXint comparecase(const FXWString &s1,const FXWString &s2);
++
++/// Compare case insensitive up to n
++FXAPI FXint comparecase(const FXwchar *s1,const FXwchar *s2,FXint n);
++FXAPI FXint comparecase(const FXwchar *s1,const FXWString &s2,FXint n);
++FXAPI FXint comparecase(const FXWString &s1,const FXwchar *s2,FXint n);
++FXAPI FXint comparecase(const FXWString &s1,const FXWString &s2,FXint n);
++
++/// Comparison operators
++FXAPI FXbool operator==(const FXWString &s1,const FXWString &s2);
++FXAPI FXbool operator==(const FXWString &s1,const FXwchar *s2);
++FXAPI FXbool operator==(const FXwchar *s1,const FXWString &s2);
++
++FXAPI FXbool operator!=(const FXWString &s1,const FXWString &s2);
++FXAPI FXbool operator!=(const FXWString &s1,const FXwchar *s2);
++FXAPI FXbool operator!=(const FXwchar *s1,const FXWString &s2);
++
++FXAPI FXbool operator<(const FXWString &s1,const FXWString &s2);
++FXAPI FXbool operator<(const FXWString &s1,const FXwchar *s2);
++FXAPI FXbool operator<(const FXwchar *s1,const FXWString &s2);
++
++FXAPI FXbool operator<=(const FXWString &s1,const FXWString &s2);
++FXAPI FXbool operator<=(const FXWString &s1,const FXwchar *s2);
++FXAPI FXbool operator<=(const FXwchar *s1,const FXWString &s2);
++
++FXAPI FXbool operator>(const FXWString &s1,const FXWString &s2);
++FXAPI FXbool operator>(const FXWString &s1,const FXwchar *s2);
++FXAPI FXbool operator>(const FXwchar *s1,const FXWString &s2);
++
++FXAPI FXbool operator>=(const FXWString &s1,const FXWString &s2);
++FXAPI FXbool operator>=(const FXWString &s1,const FXwchar *s2);
++FXAPI FXbool operator>=(const FXwchar *s1,const FXWString &s2);
++
++/// Concatenate two strings
++FXAPI FXWString operator+(const FXWString& s1,const FXWString& s2);
++FXAPI FXWString operator+(const FXWString& s1,const FXwchar* s2);
++FXAPI FXWString operator+(const FXwchar* s1,const FXWString& s2);
++
++/// Concatenate with single character
++FXAPI FXWString operator+(const FXWString& s,FXwchar c);
++FXAPI FXWString operator+(FXwchar c,const FXWString& s);
++
++/// Saving to a stream
++FXAPI FXStream& operator<<(FXStream& store,const FXWString& s);
++
++/// Load from a stream
++FXAPI FXStream& operator>>(FXStream& store,FXWString& s);
++
++/// Swap two strings
++FXAPI void swap(FXWString& a,FXWString& b);
++
+ class FXAPI FXWString {
+ private:
+ FXwchar* str;
+@@ -363,25 +432,21 @@
+ FXuint hash() const;
+
+ /// Compare
+- friend FXAPI FXint compare(const FXwchar *s1,const FXwchar *s2);
+ friend FXAPI FXint compare(const FXwchar *s1,const FXWString &s2);
+ friend FXAPI FXint compare(const FXWString &s1,const FXwchar *s2);
+ friend FXAPI FXint compare(const FXWString &s1,const FXWString &s2);
+
+ /// Compare up to n
+- friend FXAPI FXint compare(const FXwchar *s1,const FXwchar *s2,FXint n);
+ friend FXAPI FXint compare(const FXwchar *s1,const FXWString &s2,FXint n);
+ friend FXAPI FXint compare(const FXWString &s1,const FXwchar *s2,FXint n);
+ friend FXAPI FXint compare(const FXWString &s1,const FXWString &s2,FXint n);
+
+ /// Compare case insensitive
+- friend FXAPI FXint comparecase(const FXwchar *s1,const FXwchar *s2);
+ friend FXAPI FXint comparecase(const FXwchar *s1,const FXWString &s2);
+ friend FXAPI FXint comparecase(const FXWString &s1,const FXwchar *s2);
+ friend FXAPI FXint comparecase(const FXWString &s1,const FXWString &s2);
+
+ /// Compare case insensitive up to n
+- friend FXAPI FXint comparecase(const FXwchar *s1,const FXwchar *s2,FXint n);
+ friend FXAPI FXint comparecase(const FXwchar *s1,const FXWString &s2,FXint n);
+ friend FXAPI FXint comparecase(const FXWString &s1,const FXwchar *s2,FXint n);
+ friend FXAPI FXint comparecase(const FXWString &s1,const FXWString &s2,FXint n);
+
diff --git a/x11-libs/fox/files/1.4.34-gcc4-fix-includes.patch b/x11-libs/fox/files/1.4.34-gcc4-fix-includes.patch
new file mode 100644
index 000000000000..7521f14a9d10
--- /dev/null
+++ b/x11-libs/fox/files/1.4.34-gcc4-fix-includes.patch
@@ -0,0 +1,93 @@
+From tbm@cyrius.com Sun Mar 19 17:06:33 2006
+From: Martin Michlmayr <tbm@cyrius.com>
+To: 355998@bugs.debian.org
+Cc: jeroen@fox-toolkit.org, foxgui-users-request@lists.sourceforge.ne
+Subject: GCC 4.1 compilation fix for fox version 1.4
+X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2005_01_02
+ (1.212-2003-09-23-exp) on spohr.debian.org
+X-Spam-Level:
+X-Spam-Status: No, hits=-5.0 required=4.0 tests=BAYES_00,VALID_BTS_CONTROL
+ autolearn=no version=2.60-bugs.debian.org_2005_01_02
+X-CrossAssassin-Score: 2
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+Content-Type: text/plain; charset=iso-8859-1
+
+tags 355998 + patch
+thanks
+
+The following patch makes fox1.4 compile with GCC 4.1. Please see
+http://bugs.debian.org/355998
+
+
+--- ./include/FXString.h~ 2006-03-20 00:34:59.000000000 +0000
++++ ./include/FXString.h 2006-03-20 00:35:06.000000000 +0000
+@@ -26,6 +26,39 @@
+
+ namespace FX {
+
++FXAPI FXint compare(const FXchar* s1,const FXchar* s2);
++FXAPI FXint compare(const FXchar* s1,const FXString& s2);
++FXAPI FXint compare(const FXString& s1,const FXchar* s2);
++FXAPI FXint compare(const FXString& s1,const FXString& s2);
++
++FXAPI FXint compare(const FXchar* s1,const FXchar* s2,FXint n);
++FXAPI FXint compare(const FXchar* s1,const FXString& s2,FXint n);
++FXAPI FXint compare(const FXString& s1,const FXchar* s2,FXint n);
++FXAPI FXint compare(const FXString& s1,const FXString& s2,FXint n);
++
++FXAPI FXint comparecase(const FXchar* s1,const FXchar* s2);
++FXAPI FXint comparecase(const FXchar* s1,const FXString& s2);
++FXAPI FXint comparecase(const FXString& s1,const FXchar* s2);
++FXAPI FXint comparecase(const FXString& s1,const FXString& s2);
++
++FXAPI FXint comparecase(const FXchar* s1,const FXchar* s2,FXint n);
++FXAPI FXint comparecase(const FXchar* s1,const FXString& s2,FXint n);
++FXAPI FXint comparecase(const FXString& s1,const FXchar* s2,FXint n);
++FXAPI FXint comparecase(const FXString& s1,const FXString& s2,FXint n);
++
++FXAPI FXString FXStringFormat(const FXchar* fmt,...) FX_PRINTF(1,2) ;
++FXAPI FXString FXStringVFormat(const FXchar* fmt,va_list args);
++
++FXAPI FXString FXStringVal(FXint num,FXint base);
++FXAPI FXString FXStringVal(FXuint num,FXint base);
++
++FXAPI FXString FXStringVal(FXlong num,FXint base);
++
++FXAPI FXString FXStringVal(FXfloat num,FXint prec,FXbool exp);
++FXAPI FXString FXStringVal(FXdouble num,FXint prec,FXbool exp);
++
++FXAPI FXint FXIntVal(const FXString& s,FXint base);
++FXAPI FXuint FXUIntVal(const FXString& s,FXint base);
+
+ /**
+ * FXString provides essential string manipulation capabilities.
+--- ./include/FXQuatd.h~ 2006-03-20 00:45:12.000000000 +0000
++++ ./include/FXQuatd.h 2006-03-20 00:46:40.000000000 +0000
+@@ -30,6 +30,8 @@
+
+ class FXMat3d;
+
++class FXQuatd;
++FXAPI FXQuatd arc(const FXVec3d& a,const FXVec3d& b);
+
+ /// Double-precision quaternion
+ class FXAPI FXQuatd : public FXVec4d {
+--- ./include/FXQuatf.h~ 2006-03-20 00:45:28.000000000 +0000
++++ ./include/FXQuatf.h 2006-03-20 00:46:29.000000000 +0000
+@@ -30,6 +30,8 @@
+
+ class FXMat3f;
+
++class FXQuatf;
++FXAPI FXQuatf arc(const FXVec3f& a,const FXVec3f& b);
+
+ /// Single-precision quaternion
+ class FXAPI FXQuatf : public FXVec4f {
+
+--
+Martin Michlmayr
+http://www.cyrius.com/
+
+
+
diff --git a/x11-libs/fox/files/digest-fox-1.2.18-r1 b/x11-libs/fox/files/digest-fox-1.2.18-r1
new file mode 100644
index 000000000000..17430225e532
--- /dev/null
+++ b/x11-libs/fox/files/digest-fox-1.2.18-r1
@@ -0,0 +1,3 @@
+MD5 f55e53d66cfe09c0392cb837ec9ae8a6 fox-1.2.18.tar.gz 3896090
+RMD160 8c36939541e28f68bfd332fe1e12891faa15daca fox-1.2.18.tar.gz 3896090
+SHA256 77509ed17fb736b83f3073fc04986eed79ce70338f6c12596c966551e0d56a1b fox-1.2.18.tar.gz 3896090
diff --git a/x11-libs/fox/files/digest-fox-1.4.34-r1 b/x11-libs/fox/files/digest-fox-1.4.34-r1
new file mode 100644
index 000000000000..91a1b4fcec51
--- /dev/null
+++ b/x11-libs/fox/files/digest-fox-1.4.34-r1
@@ -0,0 +1,3 @@
+MD5 3424b9d3f9b71e1f53e9c3822de3b76c fox-1.4.34.tar.gz 4028423
+RMD160 35701bff6937f4753310b364dba1553109e661a4 fox-1.4.34.tar.gz 4028423
+SHA256 63acfd4815d3d71cdf2cbccf6e2fdf022192daec1674ab90cc294732948169ab fox-1.4.34.tar.gz 4028423
diff --git a/x11-libs/fox/fox-1.2.18-r1.ebuild b/x11-libs/fox/fox-1.2.18-r1.ebuild
new file mode 100644
index 000000000000..9eae4959a113
--- /dev/null
+++ b/x11-libs/fox/fox-1.2.18-r1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/fox/fox-1.2.18-r1.ebuild,v 1.1 2006/09/24 06:47:01 dberkholz Exp $
+
+inherit eutils toolchain-funcs flag-o-matic fox
+
+LICENSE="LGPL-2.1"
+SLOT="1.2"
+KEYWORDS="~x86 ~amd64 ~alpha ~hppa ~ppc ~ppc64 ~sparc"
+IUSE="bzip2 cups jpeg opengl png threads tiff truetype zlib"
+
+RDEPEND="|| ( ( x11-libs/libXrandr
+ x11-libs/libXcursor
+ )
+ virtual/x11
+ )
+ x11-libs/fox-wrapper
+ bzip2? ( >=app-arch/bzip2-1.0.2 )
+ cups? ( net-print/cups )
+ jpeg? ( >=media-libs/jpeg-6b )
+ opengl? ( virtual/opengl virtual/glu )
+ png? ( >=media-libs/libpng-1.2.5 )
+ tiff? ( >=media-libs/tiff-3.5.7 )
+ truetype? ( =media-libs/freetype-2*
+ virtual/xft )
+ zlib? ( >=sys-libs/zlib-1.1.4 )"
+DEPEND="${RDEPEND}
+ || ( ( x11-proto/xextproto
+ x11-libs/libXt
+ )
+ virtual/x11
+ )"
+
+FOXCONF="$(use_enable bzip2 bz2lib) \
+ $(use_enable cups) \
+ $(use_enable jpeg) \
+ $(use_with opengl) \
+ $(use_enable png) \
+ $(use_enable threads threadsafe) \
+ $(use_enable tiff) \
+ $(use_with truetype xft) \
+ $(use_enable zlib)"
+
+src_unpack() {
+ fox_src_unpack
+ epatch "${FILESDIR}"/${PV}-gcc4-fix-includes.patch
+}
+
+src_compile() {
+# if [[ $(gcc-major-version) -ge 4 ]]; then
+# append-flags -ffriend-injection
+# fi
+ fox_src_compile
+}
diff --git a/x11-libs/fox/fox-1.4.34-r1.ebuild b/x11-libs/fox/fox-1.4.34-r1.ebuild
new file mode 100644
index 000000000000..d27d19eb1f4d
--- /dev/null
+++ b/x11-libs/fox/fox-1.4.34-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/fox/fox-1.4.34-r1.ebuild,v 1.1 2006/09/24 06:47:01 dberkholz Exp $
+
+inherit eutils fox
+
+LICENSE="LGPL-2.1"
+SLOT="1.4"
+KEYWORDS="~x86 ~amd64 ~alpha ~hppa ~ppc ~ppc64 ~sparc"
+IUSE="bzip2 cups jpeg opengl png threads tiff truetype zlib"
+
+RDEPEND="|| ( ( x11-libs/libXrandr
+ x11-libs/libXcursor
+ )
+ virtual/x11
+ )
+ x11-libs/fox-wrapper
+ bzip2? ( >=app-arch/bzip2-1.0.2 )
+ cups? ( net-print/cups )
+ jpeg? ( >=media-libs/jpeg-6b )
+ opengl? ( virtual/opengl virtual/glu )
+ png? ( >=media-libs/libpng-1.2.5 )
+ tiff? ( >=media-libs/tiff-3.5.7 )
+ truetype? ( =media-libs/freetype-2*
+ virtual/xft )
+ zlib? ( >=sys-libs/zlib-1.1.4 )"
+DEPEND="${RDEPEND}
+ || ( ( x11-proto/xextproto
+ x11-libs/libXt
+ )
+ virtual/x11
+ )"
+
+FOXCONF="$(use_enable bzip2 bz2lib) \
+ $(use_enable cups) \
+ $(use_enable jpeg) \
+ $(use_with opengl) \
+ $(use_enable png) \
+ $(use_enable threads threadsafe) \
+ $(use_enable tiff) \
+ $(use_with truetype xft) \
+ $(use_enable zlib)"
+
+src_unpack() {
+ fox_src_unpack
+ epatch "${FILESDIR}"/${PV}-gcc4-fix-includes.patch
+}