| #include "f2c.h" |
| #include "fio.h" |
| |
| static FILE * |
| #ifdef KR_headers |
| unit_chk(Unit, who) integer Unit; char *who; |
| #else |
| unit_chk(integer Unit, char *who) |
| #endif |
| { |
| if (Unit >= MXUNIT || Unit < 0) |
| f__fatal(101, who); |
| return f__units[Unit].ufd; |
| } |
| |
| integer |
| #ifdef KR_headers |
| G77_ftell_0 (Unit) integer *Unit; |
| #else |
| G77_ftell_0 (integer *Unit) |
| #endif |
| { |
| FILE *f; |
| return (f = unit_chk(*Unit, "ftell")) ? ftell(f) : -1L; |
| } |
| |
| integer |
| #ifdef KR_headers |
| G77_fseek_0 (Unit, offset, xwhence) integer *Unit, *offset, *xwhence; |
| #else |
| G77_fseek_0 (integer *Unit, integer *offset, integer *xwhence) |
| #endif |
| { |
| FILE *f; |
| int w = (int)*xwhence; |
| #ifdef SEEK_SET |
| static int wohin[3] = { SEEK_SET, SEEK_CUR, SEEK_END }; |
| #endif |
| if (w < 0 || w > 2) |
| w = 0; |
| #ifdef SEEK_SET |
| w = wohin[w]; |
| #endif |
| return !(f = unit_chk(*Unit, "fseek")) |
| || fseek(f, *offset, w) ? 1 : 0; |
| } |