File positions are off_t nowdays, not long, so:

long -> off_t
strtol -> strtoll
fseek -> fseeko

NOTE: that fseek not works for >long offsets files per POSIX:

[EOVERFLOW] For fseek( ), the resulting file offset would be a value which
cannot be represented correctly in an object of type long.
This commit is contained in:
Andrey A. Chernov 2001-09-01 22:22:45 +00:00
parent fd818070c8
commit bd9dc97512
4 changed files with 14 additions and 14 deletions

View File

@ -52,8 +52,8 @@ struct mapinfo {
enum STYLE { NOTSET = 0, FBYTES, FLINES, RBYTES, RLINES, REVERSE };
void forward __P((FILE *, enum STYLE, long, struct stat *));
void reverse __P((FILE *, enum STYLE, long, struct stat *));
void forward __P((FILE *, enum STYLE, off_t, struct stat *));
void reverse __P((FILE *, enum STYLE, off_t, struct stat *));
int bytes __P((FILE *, off_t));
int lines __P((FILE *, off_t));

View File

@ -58,7 +58,7 @@ static const char rcsid[] =
#include <err.h>
#include "extern.h"
static void rlines __P((FILE *, long, struct stat *));
static void rlines __P((FILE *, off_t, struct stat *));
/* defines for inner loop actions */
#define USE_SLEEP 0
@ -91,7 +91,7 @@ void
forward(fp, style, off, sbp)
FILE *fp;
enum STYLE style;
long off;
off_t off;
struct stat *sbp;
{
int ch, kq = -1;
@ -106,7 +106,7 @@ forward(fp, style, off, sbp)
if (S_ISREG(sbp->st_mode)) {
if (sbp->st_size < off)
off = sbp->st_size;
if (fseek(fp, off, SEEK_SET) == -1) {
if (fseeko(fp, off, SEEK_SET) == -1) {
ierr();
return;
}
@ -137,7 +137,7 @@ forward(fp, style, off, sbp)
case RBYTES:
if (S_ISREG(sbp->st_mode)) {
if (sbp->st_size >= off &&
fseek(fp, -off, SEEK_END) == -1) {
fseeko(fp, -off, SEEK_END) == -1) {
ierr();
return;
}
@ -154,7 +154,7 @@ forward(fp, style, off, sbp)
case RLINES:
if (S_ISREG(sbp->st_mode))
if (!off) {
if (fseek(fp, 0L, SEEK_END) == -1) {
if (fseeko(fp, (off_t)0, SEEK_END) == -1) {
ierr();
return;
}
@ -226,7 +226,7 @@ forward(fp, style, off, sbp)
action = USE_SLEEP;
} else if (ev->data < 0) {
/* file shrank, reposition to end */
if (fseek(fp, 0L, SEEK_END) == -1) {
if (fseeko(fp, (off_t)0, SEEK_END) == -1) {
ierr();
return;
}
@ -266,7 +266,7 @@ forward(fp, style, off, sbp)
static void
rlines(fp, off, sbp)
FILE *fp;
long off;
off_t off;
struct stat *sbp;
{
struct mapinfo map;

View File

@ -56,7 +56,7 @@ static const char rcsid[] =
#include "extern.h"
static void r_buf __P((FILE *));
static void r_reg __P((FILE *, enum STYLE, long, struct stat *));
static void r_reg __P((FILE *, enum STYLE, off_t, struct stat *));
/*
* reverse -- display input in reverse order by line.
@ -80,7 +80,7 @@ void
reverse(fp, style, off, sbp)
FILE *fp;
enum STYLE style;
long off;
off_t off;
struct stat *sbp;
{
if (style != REVERSE && off == 0)
@ -111,7 +111,7 @@ static void
r_reg(fp, style, off, sbp)
FILE *fp;
enum STYLE style;
long off;
off_t off;
struct stat *sbp;
{
struct mapinfo map;

View File

@ -71,7 +71,7 @@ main(argc, argv)
{
struct stat sb;
FILE *fp;
long off;
off_t off;
enum STYLE style;
int ch, first;
char *p;
@ -91,7 +91,7 @@ main(argc, argv)
#define ARG(units, forward, backward) { \
if (style) \
usage(); \
off = strtol(optarg, &p, 10) * (units); \
off = strtoll(optarg, &p, 10) * (units); \
if (*p) \
errx(1, "illegal offset -- %s", optarg); \
switch(optarg[0]) { \