mirror of https://github.com/postgres/postgres
Windows has this, and so do all other live platforms according to the buildfarm, so remove the configure probe and src/port/ substitution. Keep the probe that detects whether _LARGEFILE_SOURCE has to be defined to get that, though ... that seems to be still relevant in some places. This is part of a series of commits to get rid of no-longer-relevant configure checks and dead src/port/ code. I'm committing them separately to make it easier to back out individual changes if they prove less portable than I expect. Discussion: https://postgr.es/m/15379.1582221614@sss.pgh.pa.uspull/51/head
parent
3f9c1697dc
commit
799d22461a
@ -1,84 +0,0 @@ |
||||
/*-------------------------------------------------------------------------
|
||||
* |
||||
* fseeko.c |
||||
* 64-bit versions of fseeko/ftello() |
||||
* |
||||
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group |
||||
* Portions Copyright (c) 1994, Regents of the University of California |
||||
* |
||||
* |
||||
* IDENTIFICATION |
||||
* src/port/fseeko.c |
||||
* |
||||
*------------------------------------------------------------------------- |
||||
*/ |
||||
|
||||
/*
|
||||
* We have to use the native defines here because configure hasn't |
||||
* completed yet. |
||||
*/ |
||||
#ifdef __NetBSD__ |
||||
|
||||
#include "c.h" |
||||
|
||||
#include <sys/stat.h> |
||||
|
||||
|
||||
/*
|
||||
* On NetBSD, off_t and fpos_t are the same. Standards |
||||
* say off_t is an arithmetic type, but not necessarily integral, |
||||
* while fpos_t might be neither. |
||||
*/ |
||||
|
||||
int |
||||
fseeko(FILE *stream, off_t offset, int whence) |
||||
{ |
||||
off_t floc; |
||||
struct stat filestat; |
||||
|
||||
switch (whence) |
||||
{ |
||||
case SEEK_CUR: |
||||
if (fgetpos(stream, &floc) != 0) |
||||
goto failure; |
||||
floc += offset; |
||||
if (fsetpos(stream, &floc) != 0) |
||||
goto failure; |
||||
return 0; |
||||
break; |
||||
case SEEK_SET: |
||||
if (fsetpos(stream, &offset) != 0) |
||||
return -1; |
||||
return 0; |
||||
break; |
||||
case SEEK_END: |
||||
fflush(stream); /* force writes to fd for stat() */ |
||||
if (fstat(fileno(stream), &filestat) != 0) |
||||
goto failure; |
||||
floc = filestat.st_size; |
||||
floc += offset; |
||||
if (fsetpos(stream, &floc) != 0) |
||||
goto failure; |
||||
return 0; |
||||
break; |
||||
default: |
||||
errno = EINVAL; |
||||
return -1; |
||||
} |
||||
|
||||
failure: |
||||
return -1; |
||||
} |
||||
|
||||
|
||||
off_t |
||||
ftello(FILE *stream) |
||||
{ |
||||
off_t floc; |
||||
|
||||
if (fgetpos(stream, &floc) != 0) |
||||
return -1; |
||||
return floc; |
||||
} |
||||
|
||||
#endif |
||||
Loading…
Reference in new issue