Need to properly interpret gzread() and gzwrite() return result for error

detection.
This commit is contained in:
curt
2001-01-05 21:26:59 +00:00
parent 60e61a0627
commit f37800560f
+89 -49
View File
@@ -36,147 +36,161 @@ int sgWriteError() { return write_error ; }
void sgReadChar ( gzFile fd, char *var ) void sgReadChar ( gzFile fd, char *var )
{ {
if ( gzread ( fd, var, sizeof(char) ) > 0 ) return ; if ( gzread ( fd, var, sizeof(char) ) == sizeof(char) ) return ;
read_error = true ; read_error = true ;
} }
void sgWriteChar ( gzFile fd, const char var ) void sgWriteChar ( gzFile fd, const char var )
{ {
if ( gzwrite ( fd, (void *)(&var), sizeof(char) ) > 0 ) return ; if ( gzwrite ( fd, (void *)(&var), sizeof(char) ) == sizeof(char) ) return ;
write_error = true ; write_error = true ;
} }
void sgReadFloat ( gzFile fd, float *var ) void sgReadFloat ( gzFile fd, float *var )
{ {
if ( gzread ( fd, var, sizeof(float) ) > 0 ) return ; if ( gzread ( fd, var, sizeof(float) ) == sizeof(float) ) return ;
read_error = true ; read_error = true ;
} }
void sgWriteFloat ( gzFile fd, const float var ) void sgWriteFloat ( gzFile fd, const float var )
{ {
if ( gzwrite ( fd, (void *)(&var), sizeof(float) ) > 0 ) return ; if ( gzwrite ( fd, (void *)(&var), sizeof(float) ) == sizeof(float) )
return ;
write_error = true ; write_error = true ;
} }
void sgReadDouble ( gzFile fd, double *var ) void sgReadDouble ( gzFile fd, double *var )
{ {
if ( gzread ( fd, var, sizeof(double) ) > 0 ) return ; if ( gzread ( fd, var, sizeof(double) ) == sizeof(double) ) return ;
read_error = true ; read_error = true ;
} }
void sgWriteDouble ( gzFile fd, const double var ) void sgWriteDouble ( gzFile fd, const double var )
{ {
if ( gzwrite ( fd, (void *)(&var), sizeof(double) ) > 0 ) return ; if ( gzwrite ( fd, (void *)(&var), sizeof(double) ) == sizeof(double) )
return ;
write_error = true ; write_error = true ;
} }
void sgReadUInt ( gzFile fd, unsigned int *var ) void sgReadUInt ( gzFile fd, unsigned int *var )
{ {
if ( gzread ( fd, var, sizeof(unsigned int) ) > 0 ) return ; if ( gzread ( fd, var, sizeof(unsigned int) ) == sizeof(unsigned int) )
return ;
read_error = true ; read_error = true ;
} }
void sgWriteUInt ( gzFile fd, const unsigned int var ) void sgWriteUInt ( gzFile fd, const unsigned int var )
{ {
if ( gzwrite ( fd, (void *)(&var), sizeof(unsigned int) ) > 0 ) return ; if ( gzwrite ( fd, (void *)(&var), sizeof(unsigned int) )
== sizeof(unsigned int) )
return ;
write_error = true ; write_error = true ;
} }
void sgReadInt ( gzFile fd, int *var ) void sgReadInt ( gzFile fd, int *var )
{ {
if ( gzread ( fd, var, sizeof(int) ) > 0 ) return ; if ( gzread ( fd, var, sizeof(int) ) == sizeof(int) ) return ;
read_error = true ; read_error = true ;
} }
void sgWriteInt ( gzFile fd, const int var ) void sgWriteInt ( gzFile fd, const int var )
{ {
if ( gzwrite ( fd, (void *)(&var), sizeof(int) ) > 0 ) return ; if ( gzwrite ( fd, (void *)(&var), sizeof(int) ) == sizeof(int) ) return ;
write_error = true ; write_error = true ;
} }
void sgReadLong ( gzFile fd, long int *var ) void sgReadLong ( gzFile fd, long int *var )
{ {
if ( gzread ( fd, var, sizeof(long int) ) > 0 ) return ; if ( gzread ( fd, var, sizeof(long int) ) == sizeof(long int) ) return ;
read_error = true ; read_error = true ;
} }
void sgWriteLong ( gzFile fd, const long int var ) void sgWriteLong ( gzFile fd, const long int var )
{ {
if ( gzwrite ( fd, (void *)(&var), sizeof(long int) ) > 0 ) return ; if ( gzwrite ( fd, (void *)(&var), sizeof(long int) ) == sizeof(long int) )
return ;
write_error = true ; write_error = true ;
} }
void sgReadUShort ( gzFile fd, unsigned short *var ) void sgReadUShort ( gzFile fd, unsigned short *var )
{ {
if ( gzread ( fd, var, sizeof(unsigned short) ) > 0 ) return ; if ( gzread ( fd, var, sizeof(unsigned short) ) == sizeof(unsigned short) )
return ;
read_error = true ; read_error = true ;
} }
void sgWriteUShort ( gzFile fd, const unsigned short var ) void sgWriteUShort ( gzFile fd, const unsigned short var )
{ {
if ( gzwrite ( fd, (void *)(&var), sizeof(unsigned short) ) > 0 ) return ; if ( gzwrite ( fd, (void *)(&var), sizeof(unsigned short) )
== sizeof(unsigned short) )
return ;
write_error = true ; write_error = true ;
} }
void sgReadShort ( gzFile fd, short *var ) void sgReadShort ( gzFile fd, short *var )
{ {
if ( gzread ( fd, var, sizeof(short) ) > 0 ) return ; if ( gzread ( fd, var, sizeof(short) ) == sizeof(short) ) return ;
read_error = true ; read_error = true ;
} }
void sgWriteShort ( gzFile fd, const short var ) void sgWriteShort ( gzFile fd, const short var )
{ {
if ( gzwrite ( fd, (void *)(&var), sizeof(short) ) > 0 ) return ; if ( gzwrite ( fd, (void *)(&var), sizeof(short) ) == sizeof(short) ) return ;
write_error = true ; write_error = true ;
} }
void sgReadFloat ( gzFile fd, const unsigned int n, float *var ) void sgReadFloat ( gzFile fd, const unsigned int n, float *var )
{ {
if ( gzread ( fd, var, sizeof(float) * n ) == (int)n ) return ; if ( gzread ( fd, var, sizeof(float) * n ) == (int)(sizeof(float) * n) )
return ;
read_error = true ; read_error = true ;
} }
void sgWriteFloat ( gzFile fd, const unsigned int n, const float *var ) void sgWriteFloat ( gzFile fd, const unsigned int n, const float *var )
{ {
if ( gzwrite ( fd, (void *)var, sizeof(float) * n ) == (int)n ) return ; if ( gzwrite ( fd, (void *)var, sizeof(float) * n )
== (int)(sizeof(float) * n) )
return ;
write_error = true ; write_error = true ;
} }
void sgReadDouble ( gzFile fd, const unsigned int n, double *var ) void sgReadDouble ( gzFile fd, const unsigned int n, double *var )
{ {
if ( gzread ( fd, var, sizeof(double) * n ) == (int)n ) return ; if ( gzread ( fd, var, sizeof(double) * n ) == (int)(sizeof(double) * n) )
return ;
read_error = true ; read_error = true ;
} }
void sgWriteDouble ( gzFile fd, const unsigned int n, const double *var ) void sgWriteDouble ( gzFile fd, const unsigned int n, const double *var )
{ {
if ( gzwrite ( fd, (void *)var, sizeof(double) * n ) == (int)n ) return ; if ( gzwrite ( fd, (void *)var, sizeof(double) * n )
== (int)(sizeof(double) * n) ) return ;
write_error = true ; write_error = true ;
} }
void sgReadBytes ( gzFile fd, const unsigned int n, void *var ) void sgReadBytes ( gzFile fd, const unsigned int n, void *var )
{ {
if ( n == 0) if ( n == 0)
return; return;
if ( gzread ( fd, var, n ) > 0 ) if ( gzread ( fd, var, n ) == (int)n )
return ; return ;
read_error = true ; read_error = true ;
} }
@@ -185,7 +199,7 @@ void sgWriteBytes ( gzFile fd, const unsigned int n, const void *var )
{ {
if ( n == 0) if ( n == 0)
return; return;
if ( gzwrite ( fd, (void *)var, n ) > 0 ) if ( gzwrite ( fd, (void *)var, n ) == (int)n )
return ; return ;
write_error = true ; write_error = true ;
} }
@@ -193,14 +207,18 @@ void sgWriteBytes ( gzFile fd, const unsigned int n, const void *var )
void sgReadUShort ( gzFile fd, const unsigned int n, unsigned short *var ) void sgReadUShort ( gzFile fd, const unsigned int n, unsigned short *var )
{ {
if ( gzread ( fd, var, sizeof(unsigned short) * n ) == (int)n ) return ; if ( gzread ( fd, var, sizeof(unsigned short) * n )
== (int)(sizeof(unsigned short) * n) )
return ;
read_error = true ; read_error = true ;
} }
void sgWriteUShort ( gzFile fd, const unsigned int n, const unsigned short *var ) void sgWriteUShort ( gzFile fd, const unsigned int n, const unsigned short *var )
{ {
if ( gzwrite ( fd, (void *)var, sizeof(unsigned short) * n ) == (int)n ) return ; if ( gzwrite ( fd, (void *)var, sizeof(unsigned short) * n )
== (int)(sizeof(unsigned short) * n) )
return ;
write_error = true ; write_error = true ;
} }
@@ -208,28 +226,36 @@ void sgWriteUShort ( gzFile fd, const unsigned int n, const unsigned short *var
void sgReadShort ( gzFile fd, const unsigned int n, short *var ) void sgReadShort ( gzFile fd, const unsigned int n, short *var )
{ {
if ( gzread ( fd, var, sizeof(short) * n ) == (int)n ) return ; if ( gzread ( fd, var, sizeof(short) * n )
== (int)(sizeof(short) * n) )
return ;
read_error = true ; read_error = true ;
} }
void sgWriteShort ( gzFile fd, const unsigned int n, const short *var ) void sgWriteShort ( gzFile fd, const unsigned int n, const short *var )
{ {
if ( gzwrite ( fd, (void *)var, sizeof(short) * n ) == (int)n ) return ; if ( gzwrite ( fd, (void *)var, sizeof(short) * n )
== (int)(sizeof(short) * n) )
return ;
write_error = true ; write_error = true ;
} }
void sgReadUInt ( gzFile fd, const unsigned int n, unsigned int *var ) void sgReadUInt ( gzFile fd, const unsigned int n, unsigned int *var )
{ {
if ( gzread ( fd, var, sizeof(unsigned int)* n ) == (int)n ) return ; if ( gzread ( fd, var, sizeof(unsigned int) * n )
== (int)(sizeof(unsigned int) * n) )
return ;
read_error = true ; read_error = true ;
} }
void sgWriteUInt ( gzFile fd, const unsigned int n, const unsigned int *var ) void sgWriteUInt ( gzFile fd, const unsigned int n, const unsigned int *var )
{ {
if ( gzwrite ( fd, (void *)var, sizeof(unsigned int) * n ) == (int)n ) return ; if ( gzwrite ( fd, (void *)var, sizeof(unsigned int) * n )
== (int)(sizeof(unsigned int) * n) )
return ;
write_error = true ; write_error = true ;
} }
@@ -237,14 +263,18 @@ void sgWriteUInt ( gzFile fd, const unsigned int n, const unsigned int *var )
void sgReadInt ( gzFile fd, const unsigned int n, int *var ) void sgReadInt ( gzFile fd, const unsigned int n, int *var )
{ {
if ( gzread ( fd, var, sizeof(int) * n ) == (int)n ) return ; if ( gzread ( fd, var, sizeof(int) * n )
== (int)(sizeof(int) * n) )
return ;
read_error = true ; read_error = true ;
} }
void sgWriteInt ( gzFile fd, const unsigned int n, const int *var ) void sgWriteInt ( gzFile fd, const unsigned int n, const int *var )
{ {
if ( gzwrite ( fd, (void *)var, sizeof(int) * n ) == (int)n ) return ; if ( gzwrite ( fd, (void *)var, sizeof(int) * n )
== (int)(sizeof(int) * n) )
return ;
write_error = true ; write_error = true ;
} }
@@ -257,14 +287,13 @@ void sgReadString ( gzFile fd, char **var )
int i ; int i ;
char s [ MAX_ENTITY_NAME_LENGTH ] ; char s [ MAX_ENTITY_NAME_LENGTH ] ;
for ( i = 0 ; i < MAX_ENTITY_NAME_LENGTH ; i++ ) for ( i = 0 ; i < MAX_ENTITY_NAME_LENGTH ; i++ ) {
{ int c = gzgetc ( fd ) ;
int c = gzgetc ( fd ) ; s [ i ] = c ;
s [ i ] = c ;
if ( c == '\0' ) if ( c == '\0' )
break ; break ;
} }
if ( i >= MAX_ENTITY_NAME_LENGTH-1 ) if ( i >= MAX_ENTITY_NAME_LENGTH-1 )
s [ MAX_ENTITY_NAME_LENGTH-1 ] = '\0' ; s [ MAX_ENTITY_NAME_LENGTH-1 ] = '\0' ;
@@ -272,11 +301,10 @@ void sgReadString ( gzFile fd, char **var )
if ( s[0] == '\0' ) if ( s[0] == '\0' )
*var = NULL ; *var = NULL ;
else else {
{ *var = new char [ strlen(s)+1 ] ;
*var = new char [ strlen(s)+1 ] ; strcpy ( *var, s ) ;
strcpy ( *var, s ) ; }
}
} }
@@ -293,16 +321,28 @@ void sgWriteString ( gzFile fd, const char *var )
void sgReadVec2 ( gzFile fd, sgVec2 var ) { sgReadFloat ( fd, 2, var ) ; } void sgReadVec2 ( gzFile fd, sgVec2 var ) { sgReadFloat ( fd, 2, var ) ; }
void sgWriteVec2 ( gzFile fd, const sgVec2 var ) { sgWriteFloat ( fd, 2, var ) ; } void sgWriteVec2 ( gzFile fd, const sgVec2 var ) {
sgWriteFloat ( fd, 2, var ) ;
}
void sgReadVec3 ( gzFile fd, sgVec3 var ) { sgReadFloat ( fd, 3, var ) ; } void sgReadVec3 ( gzFile fd, sgVec3 var ) { sgReadFloat ( fd, 3, var ) ; }
void sgWriteVec3 ( gzFile fd, const sgVec3 var ) { sgWriteFloat ( fd, 3, var ) ; } void sgWriteVec3 ( gzFile fd, const sgVec3 var ) {
sgWriteFloat ( fd, 3, var ) ;
}
void sgReaddVec3 ( gzFile fd, sgdVec3 var ) { sgReadDouble ( fd, 3, var ) ; } void sgReaddVec3 ( gzFile fd, sgdVec3 var ) { sgReadDouble ( fd, 3, var ) ; }
void sgWritedVec3 ( gzFile fd, const sgdVec3 var ) { sgWriteDouble ( fd, 3, var ) ; } void sgWritedVec3 ( gzFile fd, const sgdVec3 var ) {
sgWriteDouble ( fd, 3, var ) ;
}
void sgReadVec4 ( gzFile fd, sgVec4 var ) { sgReadFloat ( fd, 4, var ) ; } void sgReadVec4 ( gzFile fd, sgVec4 var ) { sgReadFloat ( fd, 4, var ) ; }
void sgWriteVec4 ( gzFile fd, const sgVec4 var ) { sgWriteFloat ( fd, 4, var ) ; } void sgWriteVec4 ( gzFile fd, const sgVec4 var ) {
sgWriteFloat ( fd, 4, var ) ;
}
void sgReadMat4 ( gzFile fd, sgMat4 var ) { sgReadFloat ( fd, 16, (float *)var ) ; } void sgReadMat4 ( gzFile fd, sgMat4 var ) {
void sgWriteMat4 ( gzFile fd, const sgMat4 var ) { sgWriteFloat ( fd, 16, (float *)var ) ; } sgReadFloat ( fd, 16, (float *)var ) ;
}
void sgWriteMat4 ( gzFile fd, const sgMat4 var ) {
sgWriteFloat ( fd, 16, (float *)var ) ;
}