diff --git a/harbour/ChangeLog b/harbour/ChangeLog index a5f6bcdb5f..be77320a71 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,13 @@ The license applies to all entries newer than 2009-04-28. */ +2010-08-15 19:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * src/rtl/fslink.c + ! Windows typo, non-UNICODE build. + + * tests/flink.prg + + HB_FLINKREAD() calls. + 2010-08-15 21:00 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * src/rtl/fslink.c ! Fixed hb_fsLinkRead() on Win Vista/7 for non-links @@ -69,7 +76,7 @@ * contrib/hbqt/utils/qtgui.qtp + Added: HBQGraphicsItem() inheriting QGraphicsItem. - It is necessary to recieve many events which otherwise are + It is necessary to recieve many events which otherwise are not possible via plain .prg code. 2010-08-13 16:58 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) @@ -291,12 +298,12 @@ + contrib/hbide/idetoolbar.prg + Started: implementation of Harbour's Report Designer and Print Engine. - NOTE: It is a very complex subject and more so I have a little - knowledge about Qt's rendering system, so please do not + NOTE: It is a very complex subject and more so I have a little + knowledge about Qt's rendering system, so please do not pin high hopes. I still do not know which way it will proceed, will we be successful or failure, will it touch our expectations. - It is an ambitious project I ever dreamt of developing one, - so I just started. If you can extend help in this direction, + It is an ambitious project I ever dreamt of developing one, + so I just started. If you can extend help in this direction, every bit will matter. So please gear-up yourselves for next logical evolution of hbIDE. diff --git a/harbour/src/rtl/fslink.c b/harbour/src/rtl/fslink.c index 0ced137231..5d361601cd 100644 --- a/harbour/src/rtl/fslink.c +++ b/harbour/src/rtl/fslink.c @@ -192,13 +192,28 @@ char * hb_fsLinkRead( const char * pszFile ) { #if defined( HB_OS_WIN ) && ! defined( HB_OS_WIN_CE ) { - typedef BOOL ( WINAPI * _HB_GETFINALPATHNAMEBYHANDLE )( HANDLE, LPTSTR, DWORD, DWORD ); + typedef DWORD ( WINAPI * _HB_GETFINALPATHNAMEBYHANDLE )( HANDLE, LPTSTR, DWORD, DWORD ); static _HB_GETFINALPATHNAMEBYHANDLE s_pGetFinalPathNameByHandle = NULL; #ifndef VOLUME_NAME_DOS #define VOLUME_NAME_DOS 0x0 #endif + #ifndef VOLUME_NAME_GUID + #define VOLUME_NAME_GUID 0x1 + #endif + #ifndef VOLUME_NAME_NT + #define VOLUME_NAME_NT 0x2 + #endif + #ifndef VOLUME_NAME_NONE + #define VOLUME_NAME_NONE 0x4 + #endif + #ifndef FILE_NAME_NORMALIZED + #define FILE_NAME_NORMALIZED 0x0 + #endif + #ifndef FILE_NAME_OPENED + #define FILE_NAME_OPENED 0x8 + #endif if( ! s_pGetFinalPathNameByHandle ) s_pGetFinalPathNameByHandle = ( _HB_GETFINALPATHNAMEBYHANDLE ) GetProcAddress( GetModuleHandle( TEXT( "kernel32.dll" ) ), @@ -231,13 +246,17 @@ char * hb_fsLinkRead( const char * pszFile ) { DWORD size; TCHAR lpLink[ HB_PATH_MAX ]; - size = s_pGetFinalPathNameByHandle( lpFileName, lpLink, HB_PATH_MAX, VOLUME_NAME_DOS ); + size = s_pGetFinalPathNameByHandle( hFile, lpLink, HB_PATH_MAX, VOLUME_NAME_DOS ); if( size < HB_PATH_MAX ) { if( size > 0 ) { pszLink = ( char * ) hb_xgrab( size + 1 ); +#if defined( UNICODE ) hb_wcntombcpy( pszLink, lpLink, ( HB_SIZE ) size ); +#else + hb_strncpy( pszLink, lpLink, ( HB_SIZE ) size ); +#endif } else pszLink = NULL; diff --git a/harbour/tests/flink.prg b/harbour/tests/flink.prg index 2b1445d870..ef50a5f3c0 100644 --- a/harbour/tests/flink.prg +++ b/harbour/tests/flink.prg @@ -19,6 +19,12 @@ PROCEDURE Main() ? HB_FLINK() ? FERROR() + ? HB_FLINKREAD() + ? FERROR() + + ? HB_FLINKREAD( "_hb_h.tmp" ) + ? FERROR() + ? HB_FLINK( "_hb_h.tmp", "_hb_hlnk.tmp" ) ? FERROR() @@ -33,9 +39,15 @@ PROCEDURE Main() ? HB_FLINKSYM( "_hb_s.tmp", "_hb_slnk.tmp" ) ? FERROR() + ? HB_FLINKREAD( "_hb_slnk.tmp" ) + ? FERROR() + MakeDir( "_hb_d" ) ? HB_FLINKSYM( "_hb_d.tmp", "_hb_dlnk.tmp" ) ? FERROR() + ? HB_FLINKREAD( "_hb_dlnk.tmp" ) + ? FERROR() + RETURN