Submitted By:            Randy McMurchy <randy_at_linuxfromscratch_dot_org>
Date:                    2004-09-01
Initial Package Version: 0.7.38
Upstream Status:         Not submitted
Origin:                  http://ftp.belnet.be/linux/gentoo-portage/media-video/avifile/files/avifile-gcc34.patch
Description:             Fixes GCC-3.4.x related build problems

diff -urd avifile-0.7-0.7.38.old/include/aviplay.h avifile-0.7-0.7.38/include/aviplay.h
--- avifile-0.7-0.7.38.old/include/aviplay.h	2003-05-24 18:51:30.000000000 -0400
+++ avifile-0.7-0.7.38/include/aviplay.h	2004-04-28 14:08:02.520535288 -0400
@@ -12,8 +12,8 @@
 #include "image.h"
 #include "avm_args.h"
 
-typedef void (*KILLHANDLER)(int, void* p = 0);
-typedef int (*AUDIOFUNC)(void* srcdata, unsigned int size, void* p = 0);
+typedef void (*KILLHANDLER)(int, void* p);
+typedef int (*AUDIOFUNC)(void* srcdata, unsigned int size, void* p);
 
 AVM_BEGIN_NAMESPACE;
 
diff -urd avifile-0.7-0.7.38.old/include/avm_map.h avifile-0.7-0.7.38/include/avm_map.h
--- avifile-0.7-0.7.38.old/include/avm_map.h	2003-03-26 20:01:22.000000000 -0500
+++ avifile-0.7-0.7.38/include/avm_map.h	2004-04-28 14:08:29.592419736 -0400
@@ -198,7 +198,8 @@
 {
     // cast to the needed type - used to prevent internal compiler error
     // for old egcc
-    avm_map<Key, Value, Compare, Equal>::_Tnode* node = (avm_map<Key, Value, Compare, Equal>::_Tnode*) n;
+    //avm_map<Key, Value, Compare, Equal>::_Tnode* node = (avm_map<Key, Value, Compare, Equal>::_Tnode*) n;
+    _Tnode* node = (_Tnode*) n;
 
     if(node->entry)
     {
diff -urd avifile-0.7-0.7.38.old/include/avm_stl.h avifile-0.7-0.7.38/include/avm_stl.h
--- avifile-0.7-0.7.38.old/include/avm_stl.h	2003-06-08 11:57:05.000000000 -0400
+++ avifile-0.7-0.7.38/include/avm_stl.h	2004-04-28 14:08:24.074258624 -0400
@@ -74,6 +74,10 @@
 	m_Type = new Type[m_uiCapacity];
     }
     ~qring() { delete[] m_Type; }
+    qring<Type>(const qring<Type>& t) : m_Type(0)
+    {
+	operator=(t);
+    }
     qring<Type>& operator=(const qring<Type>& t)
     {
 	if (this != &t)
@@ -149,7 +153,6 @@
 
     // disabled for now
     qring<Type>() {}
-    qring<Type>(const qring<Type>& t) {}
 
     uint_t bpos() const { return (m_uiPos > 0) ? m_uiPos - 1 : m_uiCapacity - 1; }
     uint_t fpos() const { return (m_uiSize > m_uiPos) ? m_uiPos + m_uiCapacity - m_uiSize: m_uiPos - m_uiSize; }
@@ -167,9 +170,21 @@
     static const uint_t invalid=(uint_t)(~0);
     typedef Type* iterator;
     typedef const Type* const_iterator;
-    vector<Type>(int prealloc = 0);
+    vector<Type>()
+	:m_Type(0), m_uiCapacity(0), m_uiSize(0)
+    {
+    }
+
+    vector<Type>(int prealloc)
+	:m_Type(0), m_uiCapacity(prealloc), m_uiSize(prealloc)
+    {
+	if (m_uiCapacity > 0 )
+	    m_Type = new Type[m_uiCapacity];
+	//printf("vector %p   (%d)\n", this, m_uiSize);
+    }
+
     // we will not count references - we have to program with this in mind!
-    vector<Type>(const vector<Type>& t) :m_Type(0), m_uiCapacity(0), m_uiSize(0)
+    vector<Type>(const vector<Type>& t) :m_Type(0)
     {
 	operator=(t);
     }
@@ -272,15 +287,6 @@
 };
 
 template <class Type>
-vector<Type>::vector<Type>(int prealloc)
-    :m_Type(0), m_uiCapacity(prealloc), m_uiSize(prealloc)
-{
-    if (m_uiCapacity > 0 )
-	m_Type = new Type[m_uiCapacity];
-    //printf("vector %p   (%d)\n", this, m_uiSize);
-}
-
-template <class Type>
 void vector<Type>::remove(const Type& t)
 {
     int d = 0;
diff -urd avifile-0.7-0.7.38.old/lib/aviread/AsfNetworkInputStream.cpp avifile-0.7-0.7.38/lib/aviread/AsfNetworkInputStream.cpp
--- avifile-0.7-0.7.38.old/lib/aviread/AsfNetworkInputStream.cpp	2003-05-27 11:26:31.000000000 -0400
+++ avifile-0.7-0.7.38/lib/aviread/AsfNetworkInputStream.cpp	2004-04-28 14:08:13.148919528 -0400
@@ -793,22 +793,24 @@
     return -1;
 }
 
-int AsfNetworkInputStream::write(const void* buffer, uint_t size)
+int AsfNetworkInputStream::write(const void* b, uint_t size)
 {
+    const char* buffer = (const char*) b;
     int wsize = size;
     while (wsize > 0)
     {
 	int i = ::write(m_iSocket, buffer, wsize);
 	if (i <= 0)
             return i;
-	(const char*)buffer += i;
+	buffer += i;
         wsize -= i;
     }
     return size;
 }
 
-int AsfNetworkInputStream::dwrite(const void* buffer, uint_t size)
+int AsfNetworkInputStream::dwrite(const void* b, uint_t size)
 {
+    const char* buffer = (const char*) b;
     if (m_lfd < 0)
     {
 	if (m_lfd == -12345)
@@ -843,7 +845,7 @@
 	int i = ::write(m_lfd, buffer, size);
 	if (i < 0)
             return i;
-	(const char*)buffer += i;
+	buffer += i;
 	size -= i;
     }
     fsync(m_lfd);
Only in avifile-0.7-0.7.38/lib/aviread: AsfNetworkInputStream.cpp.orig
diff -urd avifile-0.7-0.7.38.old/lib/common/image.cpp avifile-0.7-0.7.38/lib/common/image.cpp
--- avifile-0.7-0.7.38.old/lib/common/image.cpp	2003-05-24 19:00:58.000000000 -0400
+++ avifile-0.7-0.7.38/lib/common/image.cpp	2004-04-28 14:09:07.337681584 -0400
@@ -954,7 +954,7 @@
     fillMembers();
     if (!copy)
     {
-	(const uint8_t*) m_pPlane[0] = data;
+	m_pPlane[0] = (uint8_t*) data;
     }
     else
     {
diff -urd avifile-0.7-0.7.38.old/plugins/libvorbis/libvorbis.cpp avifile-0.7-0.7.38/plugins/libvorbis/libvorbis.cpp
--- avifile-0.7-0.7.38.old/plugins/libvorbis/libvorbis.cpp	2003-05-20 10:33:13.000000000 -0400
+++ avifile-0.7-0.7.38/plugins/libvorbis/libvorbis.cpp	2004-04-28 14:08:38.700035168 -0400
@@ -96,7 +96,7 @@
 	op.packet = NULL;
 	op.b_o_s  = 1; /* beginning of stream for first packet */
 	op.bytes  = hdrsizes[0];
-	(const void*) op.packet = vorbishdr;
+	op.packet = (unsigned char*) vorbishdr;
 	vorbishdr += op.bytes;
 	if (vorbis_synthesis_headerin(&vi, &vc, &op) < 0)
 	{
@@ -106,7 +106,7 @@
 
 	op.b_o_s  = 0;
 	op.bytes  = hdrsizes[1];
-	(const void*) op.packet = vorbishdr;
+	op.packet = (unsigned char*) vorbishdr;
 	vorbishdr += op.bytes;
 	if (vorbis_synthesis_headerin(&vi, &vc, &op) < 0)
 	{
@@ -115,7 +115,7 @@
 	}
 
 	op.bytes  = hdrsizes[2];
-	(const void*) op.packet = vorbishdr;
+	op.packet = (unsigned char*) vorbishdr;
 	vorbishdr += op.bytes;
 	if (vorbis_synthesis_headerin(&vi, &vc, &op) < 0)
 	{
