* fhandler.cc (fhandler_base::lseek): Avoid calling SetFilePointer with high
order part of 64 bit address on OS's which do not support that kind of operation. Otherwise Windows 95 will become confused.
This commit is contained in:
parent
c7ba2cc096
commit
b05b7d84d6
|
@ -1,3 +1,9 @@
|
||||||
|
2002-05-17 Christopher Faylor <cgf@redhat.com>
|
||||||
|
|
||||||
|
* fhandler.cc (fhandler_base::lseek): Avoid calling SetFilePointer with
|
||||||
|
high order part of 64 bit address on OS's which do not support that
|
||||||
|
kind of operation. Otherwise Windows 95 will become confused.
|
||||||
|
|
||||||
2002-05-16 Pierre Humblet <pierre.humblet@ieee.org>
|
2002-05-16 Pierre Humblet <pierre.humblet@ieee.org>
|
||||||
|
|
||||||
* fhandler_raw.cc (fhandler_dev_raw::open): Replace set_errno()
|
* fhandler_raw.cc (fhandler_dev_raw::open): Replace set_errno()
|
||||||
|
|
|
@ -732,9 +732,17 @@ fhandler_base::lseek (__off64_t offset, int whence)
|
||||||
: (whence == SEEK_CUR ? FILE_CURRENT : FILE_END);
|
: (whence == SEEK_CUR ? FILE_CURRENT : FILE_END);
|
||||||
|
|
||||||
LONG off_low = offset & 0xffffffff;
|
LONG off_low = offset & 0xffffffff;
|
||||||
LONG off_high = wincap.has_64bit_file_access () ? offset >> 32 : 0;
|
LONG *poff_high, off_high;
|
||||||
|
if (!wincap.has_64bit_file_access ())
|
||||||
|
poff_high = NULL;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
off_high = offset >> 32;
|
||||||
|
poff_high = &off_high;
|
||||||
|
}
|
||||||
|
|
||||||
res = SetFilePointer (get_handle(), off_low, &off_high, win32_whence);
|
debug_printf ("setting file pointer to %u (high), %u (low)", off_high, off_low);
|
||||||
|
res = SetFilePointer (get_handle(), off_low, poff_high, win32_whence);
|
||||||
if (res == INVALID_SET_FILE_POINTER && GetLastError ())
|
if (res == INVALID_SET_FILE_POINTER && GetLastError ())
|
||||||
{
|
{
|
||||||
__seterrno ();
|
__seterrno ();
|
||||||
|
|
Loading…
Reference in New Issue