--- psiconv/trunk/lib/psiconv/parse_simple.c 2001/07/18 12:24:08 128 +++ psiconv/trunk/lib/psiconv/parse_simple.c 2001/07/24 20:32:51 129 @@ -90,6 +90,21 @@ return *ptr0 + (*ptr1 << 8) + (*ptr2 << 16) + (*ptr3 << 24); } +psiconv_s32 psiconv_read_sint(const psiconv_buffer buf,int lev,psiconv_u32 off, + int *length,int *status) +{ + int localstatus; + psiconv_u32 temp; + + temp=psiconv_read_u32(buf,lev,off,&localstatus); + if (status) + *status = localstatus; + if (length) + *length = localstatus?0:4; + + return localstatus?0:(temp & 0x7fffffff)*(temp&0x80000000?-1:1); +} + psiconv_S_t psiconv_read_S(const psiconv_buffer buf, int lev, psiconv_u32 off, int *length,int *status) {