MD5 a31feb9828c520c7a2df8ba48534e2ab files/wvstreams-4.3-sane-cflags.patch 1566
RMD160 609e48c40707946ef69187f643fa1e2f59584a67 files/wvstreams-4.3-sane-cflags.patch 1566
SHA256 ef649c68e9334f06fa526c07bdf2aab88ee53db89f6917e5972677244db254f7 files/wvstreams-4.3-sane-cflags.patch 1566
+AUX wvstreams-4.3-type-punned.patch 5934 RMD160 a7b4505836d2a5c470516cd0f8ef59d4bf9aadde SHA1 d64d229e092e11b7c0aa0bd72e37d289f2d7feac SHA256 2bce0a22535d502fd555b3735c9457dc8584f609f65ae361f5fd30b1165c6bbf
+MD5 7f9d7c258f9089bb0e356ace096629ff files/wvstreams-4.3-type-punned.patch 5934
+RMD160 a7b4505836d2a5c470516cd0f8ef59d4bf9aadde files/wvstreams-4.3-type-punned.patch 5934
+SHA256 2bce0a22535d502fd555b3735c9457dc8584f609f65ae361f5fd30b1165c6bbf files/wvstreams-4.3-type-punned.patch 5934
AUX wvstreams-4.3-uniconfd-ini.patch 796 RMD160 1ded678370f6abb9615b62bebe544566cedb055d SHA1 e97dc392b054370427874c51c70b1c4f764cf880 SHA256 e194c877f2d253eadb7c1784c695f4562675ea7c865ad07e629585180d6bbeee
MD5 13f791bb5b4ae8fd7aef57387f4ff7be files/wvstreams-4.3-uniconfd-ini.patch 796
RMD160 1ded678370f6abb9615b62bebe544566cedb055d files/wvstreams-4.3-uniconfd-ini.patch 796
MD5 bfef0ede67c42cb43776f76d6ec982e3 wvstreams-4.2.2.ebuild 2537
RMD160 93309344254038873a0c706117c850e280e01ab0 wvstreams-4.2.2.ebuild 2537
SHA256 01d7807c175eaa446084241b2e123ed87449a3289c62992686f0e37db77b22c3 wvstreams-4.2.2.ebuild 2537
-EBUILD wvstreams-4.3.ebuild 2428 RMD160 1df38d7e78513f7f9c0c3e31759a30a263305c70 SHA1 714c53f0ce5b75e1013e5e91622710f10e08def9 SHA256 b55462b31f24f96222c42d6375c4a4b5121d95b6762923d758e1f3bcc33b14b0
-MD5 849b876072d6d716c619cbab4fccf7a8 wvstreams-4.3.ebuild 2428
-RMD160 1df38d7e78513f7f9c0c3e31759a30a263305c70 wvstreams-4.3.ebuild 2428
-SHA256 b55462b31f24f96222c42d6375c4a4b5121d95b6762923d758e1f3bcc33b14b0 wvstreams-4.3.ebuild 2428
-MISC ChangeLog 16672 RMD160 bcdfe36f4a06699289e8a2623c08e18ddabaf605 SHA1 2a59453d1d088c25817b975632076ec1a8ec7acc SHA256 f324c0ce34024d32006fdbfafdec7c7a5da02156633f498faffacf0bdae369cc
-MD5 ea8e14313c6a3db1a4eae32407a893b3 ChangeLog 16672
-RMD160 bcdfe36f4a06699289e8a2623c08e18ddabaf605 ChangeLog 16672
-SHA256 f324c0ce34024d32006fdbfafdec7c7a5da02156633f498faffacf0bdae369cc ChangeLog 16672
+EBUILD wvstreams-4.3-r1.ebuild 2476 RMD160 25ac128f639ad3931b74c398bee55cc005a0eac1 SHA1 6ce5bb9c6bf3f7fcd615d86a7b07b34bd45931db SHA256 42e8ff62043e8f09c955076394535056bdbb998242db8e09932c446d91d36624
+MD5 0ccc485fde8c07200ff48db271fcb518 wvstreams-4.3-r1.ebuild 2476
+RMD160 25ac128f639ad3931b74c398bee55cc005a0eac1 wvstreams-4.3-r1.ebuild 2476
+SHA256 42e8ff62043e8f09c955076394535056bdbb998242db8e09932c446d91d36624 wvstreams-4.3-r1.ebuild 2476
+MISC ChangeLog 16874 RMD160 d23f07d54b33b8bd7e65e64973ea2551d2e803d9 SHA1 f3454fd8bca037912769f23f97dcb8550a698d87 SHA256 bb5d58b796265c450d6e7de45d31b207cca0a078852300862cdaef15bfc35b39
+MD5 f71180c46d3ab2f019aa1e3c09a5c919 ChangeLog 16874
+RMD160 d23f07d54b33b8bd7e65e64973ea2551d2e803d9 ChangeLog 16874
+SHA256 bb5d58b796265c450d6e7de45d31b207cca0a078852300862cdaef15bfc35b39 ChangeLog 16874
MISC metadata.xml 313 RMD160 e543c31d8ddc948a387dcdcc8638a848c587177b SHA1 a40d5fd17e50dc9f983efc63e5cbb8b407b95c7a SHA256 1ec30d4508abc443f3e9c4829b0e7d7e5c588419344203476818a29f71b98a37
MD5 227de7f678ad662524292836709de75f metadata.xml 313
RMD160 e543c31d8ddc948a387dcdcc8638a848c587177b metadata.xml 313
MD5 ce2f63ffae6742f96ede8200eb39c3d1 files/digest-wvstreams-4.2.2-r3 250
RMD160 ad134621ec5ac0b3b3884506e3abfbf770e34b52 files/digest-wvstreams-4.2.2-r3 250
SHA256 af8d2d360c3e497dcd8a2f2cc57ec947b2c99a440dff184197b350e60491f451 files/digest-wvstreams-4.2.2-r3 250
-MD5 573eed9105c7a3828296d072fbc449eb files/digest-wvstreams-4.3 244
-RMD160 323f0e3ef47ac41b690134fc8b9a73f5ffbbd9ca files/digest-wvstreams-4.3 244
-SHA256 e3bb902f085262bd9e556d98911fdf2940e54befc15a71c88e4eb726df6a1692 files/digest-wvstreams-4.3 244
+MD5 573eed9105c7a3828296d072fbc449eb files/digest-wvstreams-4.3-r1 244
+RMD160 323f0e3ef47ac41b690134fc8b9a73f5ffbbd9ca files/digest-wvstreams-4.3-r1 244
+SHA256 e3bb902f085262bd9e556d98911fdf2940e54befc15a71c88e4eb726df6a1692 files/digest-wvstreams-4.3-r1 244
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.3 (GNU/Linux)
-iD8DBQFF99hjJnxX6mF440QRAhYSAJ90Z1TyYTGzwpYl7xVOgtrBUxArxACfTF1U
-tbFBNTvHBItR9ELsWO+KwoI=
-=bDGv
+iD8DBQFGE2qRJnxX6mF440QRAp4UAJ9O9AKUZaql2v0e29W9NHY0ekNcjQCdFbFj
+pe7a+DTzHff65ZwHp9NM1UM=
+=Ri6F
-----END PGP SIGNATURE-----
--- /dev/null
+diff -Nru wvstreams-4.3.orig/urlget/wvhttppool.cc wvstreams-4.3/urlget/wvhttppool.cc
+--- wvstreams-4.3.orig/urlget/wvhttppool.cc 2007-02-07 21:05:29.000000000 +0200
++++ wvstreams-4.3/urlget/wvhttppool.cc 2007-04-04 11:42:06.000000000 +0300
+@@ -43,7 +43,12 @@
+ {
+ WvBufUrlStream *x = new WvBufUrlStream;
+ outstream = x;
+- x->death_notify = (WvStream **)&outstream;
++ union {
++ WvBufUrlStream** ppbufurlstream;
++ WvStream** ppstream;
++ } s;
++ s.ppbufurlstream = &outstream;
++ x->death_notify = s.ppstream;
+ x->url = url;
+
+ putstream = content_source;
+diff -Nru wvstreams-4.3.orig/utils/wvbdbhash.cc wvstreams-4.3/utils/wvbdbhash.cc
+--- wvstreams-4.3.orig/utils/wvbdbhash.cc 2007-02-07 21:06:12.000000000 +0200
++++ wvstreams-4.3/utils/wvbdbhash.cc 2007-04-04 11:37:44.000000000 +0300
+@@ -24,6 +24,11 @@
+
+ #include "wvlog.h"
+
++typedef union {
++ WvBdbHash::datum d;
++ DBT D;
++} DBTdatum;
++
+ int comparefunc(const DBT *a, const DBT *b)
+ {
+ if (a == NULL && b == NULL) return 0;
+@@ -102,14 +107,14 @@
+ void WvBdbHash::remove(const datum &key)
+ {
+ if (!isok()) return;
++
++ DBTdatum newkey, data;
++ newkey.d = key;
+
+- datum newkey, data;
+- newkey = key;
+-
+- int ret = dbf->seq(dbf, (DBT *)&newkey, (DBT *)&data, R_CURSOR);
++ int ret = dbf->seq(dbf, &newkey.D, &data.D, R_CURSOR);
+ if (!ret)
+ {
+- ret = dbf->del(dbf, (DBT *)&newkey, R_CURSOR);
++ ret = dbf->del(dbf, &newkey.D, R_CURSOR);
+ }
+
+ if (ret == 1) seterr("Strange: seq found a key that del didn't recognize");
+@@ -119,30 +124,35 @@
+
+ WvBdbHash::datum WvBdbHash::find(const datum &key)
+ {
+- datum ret = {0, 0};
+- if (!isok()) return ret;
++ DBTdatum newkey, ret;
++ newkey.d = key;
++ ret.d.dptr = 0;
++ ret.d.dsize = 0;
++ if (!isok()) return ret.d;
+
+- int r = dbf->get(dbf, (DBT *)&key, (DBT *)&ret, 0);
++ int r = dbf->get(dbf, &newkey.D, &ret.D, 0);
+ if (r == 1)
+ {
+ // not found - make sure we return an empty datum
+- ret.dptr = NULL;
++ ret.d.dptr = NULL;
+ }
+ else if (r != 0)
+ {
+- ret.dptr = NULL;
++ ret.d.dptr = NULL;
+ seterr(errno);
+ }
+- return ret;
++ return ret.d;
+ }
+
+
+ bool WvBdbHash::exists(const datum &key)
+ {
++ DBTdatum newkey;
++ newkey.d = key;
++ DBT val;
+ if (!isok()) return false;
+
+- datum ret = {0, 0};
+- int r = dbf->get(dbf, (DBT *)&key, (DBT *)&ret, 0);
++ int r = dbf->get(dbf, &newkey.D, &val, 0);
+
+ // return true on success
+ if (r == 0) return true;
+@@ -165,11 +175,11 @@
+ }
+
+ // super-slow version
+- datum key, value;
++ DBT key, value;
+ int r;
+- while ((r = dbf->seq(dbf, (DBT *)&key, (DBT *)&value, R_FIRST)) == 0)
++ while ((r = dbf->seq(dbf, &key, &value, R_FIRST)) == 0)
+ {
+- int r2 = dbf->del(dbf, (DBT *)&key, R_CURSOR);
++ int r2 = dbf->del(dbf, &key, R_CURSOR);
+ if (r2 == 1) seterr("Strange: seq found a key that del didn't recognize");
+ else if (r2 != 0) seterr(errno);
+ }
+@@ -193,54 +203,60 @@
+ {
+ if (!parent.isok()) return;
+
++ DBTdatum unionkey, uniondata;
++ unionkey.d = curkey;
++ uniondata.d = curdata;
++
+ // check if this is the first next() after a rewind()
+- bool first = !curkey.dptr;
+- datum wanted = { 0, 0 };
++ bool first = !unionkey.d.dptr;
++ DBTdatum wanted;
++ wanted.d.dptr = 0;
++ wanted.d.dsize = 0;
+ if (first)
+ {
+ if (rewindto.dptr)
+ {
+- curkey = rewindto;
++ unionkey.d = rewindto;
+ first = false;
+ }
+ }
+ else
+ {
+- wanted.dsize = curkey.dsize;
+- wanted.dptr = malloc(wanted.dsize);
+- memcpy(wanted.dptr, curkey.dptr, wanted.dsize);
++ wanted.d.dsize = unionkey.d.dsize;
++ wanted.d.dptr = malloc(wanted.d.dsize);
++ memcpy(wanted.d.dptr, unionkey.d.dptr, wanted.d.dsize);
+ }
+
+ // always seek for the saved cursor we were just passed, to work around
+ // bugs in libdb1's seq with btrees. (As a bonus, this gives us multiple
+ // iterators for free!)
+- int r = parent.dbf->seq(parent.dbf, (DBT *)&curkey, (DBT *)&curdata,
++ int r = parent.dbf->seq(parent.dbf, &unionkey.D, &uniondata.D,
+ first ? R_FIRST : R_CURSOR);
+
+ if (r == 1)
+ {
+ // current key gone, and none higher left: done
+- curkey.dptr = curdata.dptr = NULL;
++ unionkey.d.dptr = uniondata.d.dptr = NULL;
+ }
+ else if (r != 0)
+ parent.seterr(errno);
+
+ else if (!first)
+ {
+- while (comparefunc((DBT *)&wanted, (DBT *)&curkey) >= 0)
++ while (comparefunc(&wanted.D, &unionkey.D) >= 0)
+ {
+ // found the exact key or earlier than requested: move forward one
+ // (yes, libbdb1 can return a key less than requested, despite
+ // the documentation's claims!)
+ // This algorithm definitely makes it so inserting the same key
+ // more than once doesn't work at all.
+- r = parent.dbf->seq(parent.dbf, (DBT *)&curkey, (DBT *)&curdata,
++ r = parent.dbf->seq(parent.dbf, &unionkey.D, &uniondata.D,
+ R_NEXT);
+
+ if (r == 1)
+ {
+ // nothing left? Fine, we're done
+- curkey.dptr = curdata.dptr = NULL;
++ unionkey.d.dptr = uniondata.d.dptr = NULL;
+ break;
+ }
+ else if (r != 0)
+@@ -252,8 +268,11 @@
+ // the very first key), as expected. (Also, if rewindto is set it should
+ // be either filled in with the matching btree data or cleared.) Unless,
+ // of course, the whole db is borked.
+- assert(!parent.isok() || !rewindto.dptr || curkey.dptr != rewindto.dptr);
+- free(wanted.dptr);
++ assert(!parent.isok() || !rewindto.dptr || unionkey.d.dptr != rewindto.dptr);
++ free(wanted.d.dptr);
++
++ curkey = unionkey.d;
++ curdata = uniondata.d;
+ }
+
+ #endif /* WITH_BDB */