2016-04-01 00:28 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)

* src/rtl/direct.c
    ! removed set of MS-Windows attributes passed unconditionally to
      hb_fsFind*() functions in Directory() PRG function.
      It fixes "L" attribute passed in 2-d parameter of Directory()
      function in *nix builds. When "L" is given in attribute list
      then Directory() do not follow links.

  * src/common/strwild.c
    * removed FNM_PERIOD from fnmatch() parameters in *nix builds

  * src/common/hbffind.c
    * in * nix builds set hidden attribute for file and directory
      names starting with "." except "." and ".." which are reported
      as is for Cl*pper and Harbour multiplatform compatibility.
This commit is contained in:
Przemysław Czerpak
2016-04-01 00:28:27 +02:00
parent 1f5866cce8
commit 5fbaa12158
4 changed files with 24 additions and 12 deletions

View File

@@ -10,6 +10,22 @@
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
*/
2016-04-01 00:28 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/direct.c
! removed set of MS-Windows attributes passed unconditionally to
hb_fsFind*() functions in Directory() PRG function.
It fixes "L" attribute passed in 2-d parameter of Directory()
function in *nix builds. When "L" is given in attribute list
then Directory() do not follow links.
* src/common/strwild.c
* removed FNM_PERIOD from fnmatch() parameters in *nix builds
* src/common/hbffind.c
* in * nix builds set hidden attribute for file and directory
names starting with "." except "." and ".." which are reported
as is for Cl*pper and Harbour multiplatform compatibility.
2016-03-30 16:35 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbdefs.h
! use "ll" instead of "I64" as 64bit integer modifier in *printf()

View File

@@ -801,6 +801,12 @@ static HB_BOOL hb_fsFindNextLow( PHB_FFIND ffind )
nAttr |= HB_FA_LINK;
}
#endif
if( info->entry->d_name[ 0 ] == '.' )
{
if( info->entry->d_name[ 1 ] &&
( info->entry->d_name[ 1 ] != '.' || info->entry->d_name[ 2 ] ) )
nAttr |= HB_FA_HIDDEN;
}
hb_strncpy( ffind->szName, info->entry->d_name, sizeof( ffind->szName ) - 1 );
ffind->size = sStat.st_size;

View File

@@ -280,7 +280,7 @@ HB_BOOL hb_strMatchFile( const char * szString, const char * szPattern )
# if defined( HB_NO_FNMATCH )
return hb_strMatchWildExact( szString, szPattern );
# else
return fnmatch( szPattern, szString, FNM_PERIOD | FNM_PATHNAME ) == 0;
return fnmatch( szPattern, szString, FNM_PATHNAME ) == 0;
# endif
#elif defined( HB_OS_DOS ) || defined( HB_OS_WIN ) || defined( HB_OS_OS2 )
PHB_CODEPAGE cdp = hb_vmCDP();

View File

@@ -106,17 +106,7 @@ PHB_ITEM hb_fsDirectory( const char * pszDirSpec, const char * pszAttributes, HB
/* Get the passed attributes and convert them to Harbour Flags */
ulMask = HB_FA_ARCHIVE |
HB_FA_READONLY |
HB_FA_DEVICE |
HB_FA_TEMPORARY |
HB_FA_SPARSE |
HB_FA_REPARSE |
HB_FA_COMPRESSED |
HB_FA_OFFLINE |
HB_FA_NOTINDEXED |
HB_FA_ENCRYPTED |
HB_FA_VOLCOMP;
ulMask = HB_FA_ARCHIVE | HB_FA_READONLY;
if( pszAttributes && *pszAttributes )
ulMask |= hb_fsAttrEncode( pszAttributes );