2014-03-20 14:59 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)

* src/rtl/filesys.c
    ! added workaround for offset returned by FSeek( hDir, 0, FS_END )
      for directories handles in some *nixes
This commit is contained in:
Przemysław Czerpak
2014-03-20 14:59:02 +01:00
parent fc14c595dc
commit 046c9694e0
2 changed files with 29 additions and 4 deletions

View File

@@ -10,15 +10,20 @@
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
*/
2014-03-20 14:59 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filesys.c
! added workaround for offset returned by FSeek( hDir, 0, FS_END )
for directories handles in some *nixes
2014-03-19 21:27 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib\gtwvg\hbgtwvg.ch
+ Added: #define GOBJ_OBJDATA_PICTUREEX 10
#define GOBJ_OBJTYPE_LABEL_EX2 21
* contrib\gtwvg\gtwgud.c
* contrib\gtwvg\gtwvgd.c
% Changed: WM_CLOSE firing K_ESC => HB_K_CLOSE in accordance rest of GTs.
* contrib\gtwvg\wvgcuig.c
% Changed: hb_wvg_RefreshRect() flag to erase background: FALSE => TRUE.
% Changed: WVG_SETGOBJDATA() now returns lSUCCESS or lFAILURE.
@@ -32,11 +37,11 @@
Wvg_Picture( nTop, nLeft, nBottom, nRight, aPxlOff, nSlot, lDoNotScale )
% Changed: hb_wvg_RenderPicture() code to honor scaled vs non-scaled
rendering.
* contrib\gtwvg\wvgutils.c
! Fixed: Wvt_ChooseFont() to return correctly array of 9 elements
instead of 8.
2014-03-20 04:01 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
* src/rtl/filebuf.c

View File

@@ -2899,6 +2899,16 @@ HB_ULONG hb_fsSeek( HB_FHANDLE hFileHandle, HB_LONG lOffset, HB_USHORT uiFlags )
{
ulPos = lseek( hFileHandle, lOffset, nFlags );
hb_fsSetIOError( ulPos != ( HB_ULONG ) -1, 0 );
# if defined( HB_OS_UNIX )
/* small trick to resolve problem with position reported for directories */
if( ulPos == LONG_MAX && lOffset == 0 && nFlags == SEEK_END )
{
struct stat st;
if( fstat( hFileHandle, &st ) == 0 )
ulPos = st.st_size;
}
# endif
}
if( ulPos == ( HB_ULONG ) -1 )
@@ -2966,6 +2976,16 @@ HB_FOFFSET hb_fsSeekLarge( HB_FHANDLE hFileHandle, HB_FOFFSET nOffset, HB_USHORT
{
nPos = lseek64( hFileHandle, nOffset, nFlags );
hb_fsSetIOError( nPos != ( HB_FOFFSET ) -1, 0 );
# if defined( HB_OS_UNIX )
/* small trick to resolve problem with position reported for directories */
if( nPos == LONG_MAX && nOffset == 0 && nFlags == SEEK_END )
{
struct stat64 st;
if( fstat64( hFileHandle, &st ) == 0 )
nPos = st.st_size;
}
# endif
}
if( nPos == ( HB_FOFFSET ) -1 )