int dir;
int mode;
{
+ _IO_pos_t retval;
+
/* If we have a backup buffer, get rid of it, since the __seekoff
callback may not know to do the right thing about it.
This may be over-kill, but it'll do for now. TODO */
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
+ _IO_flockfile (fp);
+
if (_IO_have_backup (fp))
{
offset -= fp->_IO_read_end - fp->_IO_read_ptr;
_IO_free_backup_area (fp);
}
+ retval = _IO_SEEKOFF (fp, offset, dir, mode);
- return _IO_SEEKOFF (fp, offset, dir, mode);
+ _IO_cleanup_region_end (1);
+ return retval;
}