Remove seek/truncate shortcuts to file ports.
Suggested by Neil. * libguile/fports.c (fport_seek_or_seek64): Rename to `fport_seek ()'. (fport_seek, scm_i_fport_seek, scm_i_fport_truncate): Remove. * libguile/fports.h (scm_i_fport_seek, scm_i_fport_truncate): Remove declarations. * libguile/ports.c (scm_seek): Remove shortcut that would call out to `scm_i_fport_seek ()'. (scm_truncate_file): Likewise.
This commit is contained in:
parent
39141c876b
commit
0a94eb002e
3 changed files with 4 additions and 56 deletions
|
|
@ -610,8 +610,8 @@ fport_fill_input (SCM port)
|
|||
}
|
||||
}
|
||||
|
||||
static off_t_or_off64_t
|
||||
fport_seek_or_seek64 (SCM port, off_t_or_off64_t offset, int whence)
|
||||
static scm_t_off
|
||||
fport_seek (SCM port, scm_t_off offset, int whence)
|
||||
{
|
||||
scm_t_port *pt = SCM_PTAB_ENTRY (port);
|
||||
scm_t_fport *fp = SCM_FSTREAM (port);
|
||||
|
|
@ -662,39 +662,6 @@ fport_seek_or_seek64 (SCM port, off_t_or_off64_t offset, int whence)
|
|||
return result;
|
||||
}
|
||||
|
||||
/* If we've got largefile and off_t isn't already off64_t then
|
||||
fport_seek_or_seek64 needs a range checking wrapper to be fport_seek in
|
||||
the port descriptor.
|
||||
|
||||
Otherwise if no largefile, or off_t is the same as off64_t (which is the
|
||||
case on NetBSD apparently), then fport_seek_or_seek64 is right to be
|
||||
fport_seek already. */
|
||||
|
||||
#if GUILE_USE_64_CALLS && HAVE_STAT64 && SIZEOF_OFF_T != SIZEOF_OFF64_T
|
||||
static scm_t_off
|
||||
fport_seek (SCM port, scm_t_off offset, int whence)
|
||||
{
|
||||
off64_t rv = fport_seek_or_seek64 (port, (off64_t) offset, whence);
|
||||
if (rv > OFF_T_MAX || rv < OFF_T_MIN)
|
||||
{
|
||||
errno = EOVERFLOW;
|
||||
scm_syserror ("fport_seek");
|
||||
}
|
||||
return (scm_t_off) rv;
|
||||
|
||||
}
|
||||
#else
|
||||
#define fport_seek fport_seek_or_seek64
|
||||
#endif
|
||||
|
||||
/* `how' has been validated and is one of SEEK_SET, SEEK_CUR or SEEK_END */
|
||||
SCM
|
||||
scm_i_fport_seek (SCM port, SCM offset, int how)
|
||||
{
|
||||
return scm_from_off_t_or_off64_t
|
||||
(fport_seek_or_seek64 (port, scm_to_off_t_or_off64_t (offset), how));
|
||||
}
|
||||
|
||||
static void
|
||||
fport_truncate (SCM port, scm_t_off length)
|
||||
{
|
||||
|
|
@ -704,13 +671,6 @@ fport_truncate (SCM port, scm_t_off length)
|
|||
scm_syserror ("ftruncate");
|
||||
}
|
||||
|
||||
int
|
||||
scm_i_fport_truncate (SCM port, SCM length)
|
||||
{
|
||||
scm_t_fport *fp = SCM_FSTREAM (port);
|
||||
return ftruncate_or_ftruncate64 (fp->fdes, scm_to_off_t_or_off64_t (length));
|
||||
}
|
||||
|
||||
/* helper for fport_write: try to write data, using multiple system
|
||||
calls if required. */
|
||||
#define FUNC_NAME "write_all"
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#ifndef SCM_FPORTS_H
|
||||
#define SCM_FPORTS_H
|
||||
|
||||
/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001, 2006, 2008 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001, 2006, 2008, 2009 Free Software Foundation, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public License
|
||||
|
|
@ -59,8 +59,6 @@ SCM_INTERNAL void scm_init_fports (void);
|
|||
/* internal functions */
|
||||
|
||||
SCM_INTERNAL SCM scm_i_fdes_to_port (int fdes, long mode_bits, SCM name);
|
||||
SCM_INTERNAL int scm_i_fport_truncate (SCM, SCM);
|
||||
SCM_INTERNAL SCM scm_i_fport_seek (SCM, SCM, int);
|
||||
|
||||
|
||||
#endif /* SCM_FPORTS_H */
|
||||
|
|
|
|||
|
|
@ -1390,12 +1390,7 @@ SCM_DEFINE (scm_seek, "seek", 3, 0, 0,
|
|||
if (how != SEEK_SET && how != SEEK_CUR && how != SEEK_END)
|
||||
SCM_OUT_OF_RANGE (3, whence);
|
||||
|
||||
if (SCM_OPFPORTP (fd_port))
|
||||
{
|
||||
/* go direct to fport code to allow 64-bit offsets */
|
||||
return scm_i_fport_seek (fd_port, offset, how);
|
||||
}
|
||||
else if (SCM_OPPORTP (fd_port))
|
||||
if (SCM_OPPORTP (fd_port))
|
||||
{
|
||||
scm_t_ptob_descriptor *ptob = scm_ptobs + SCM_PTOBNUM (fd_port);
|
||||
off_t_or_off64_t off = scm_to_off_t_or_off64_t (offset);
|
||||
|
|
@ -1488,11 +1483,6 @@ SCM_DEFINE (scm_truncate_file, "truncate-file", 1, 1, 0,
|
|||
SCM_SYSCALL (rv = ftruncate_or_ftruncate64 (scm_to_int (object),
|
||||
c_length));
|
||||
}
|
||||
else if (SCM_OPOUTFPORTP (object))
|
||||
{
|
||||
/* go direct to fport code to allow 64-bit offsets */
|
||||
rv = scm_i_fport_truncate (object, length);
|
||||
}
|
||||
else if (SCM_OPOUTPORTP (object))
|
||||
{
|
||||
off_t_or_off64_t c_length = scm_to_off_t_or_off64_t (length);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue