139 |
|
register int c; |
140 |
|
register long r; |
141 |
|
|
142 |
< |
c = getc(infp); |
143 |
< |
r = c&0x80 ? -1L : 0L; /* sign extend */ |
144 |
< |
ungetc(c, infp); |
145 |
< |
while (siz--) { |
142 |
> |
if ((c = getc(infp)) == EOF) |
143 |
> |
goto end_file; |
144 |
> |
r = 0x80&c ? -1<<8|c : c; /* sign extend */ |
145 |
> |
while (--siz > 0) { |
146 |
|
if ((c = getc(infp)) == EOF) |
147 |
< |
octerror(USER, "truncated octree"); |
147 |
> |
goto end_file; |
148 |
|
r <<= 8; |
149 |
|
r |= c; |
150 |
|
} |
151 |
|
return(r); |
152 |
+ |
end_file: |
153 |
+ |
octerror(USER, "truncated octree"); |
154 |
|
} |
155 |
|
|
156 |
|
|