diff --git a/harbour/ChangeLog b/harbour/ChangeLog index c76fc85528..e945134317 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,14 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2007-09-06 00:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/source/rtl/gttrm/gttrm.c + * use for teraterm Linux controle codes + + * harbour/source/rtl/filesys.c + * harbour/source/rtl/file.c + ! fixed GPF trap which appeared after my last modifications + 2007-09-05 16:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/hbgtmk.sh * replaced CVS checkout commands by SVN checkout diff --git a/harbour/source/rtl/file.c b/harbour/source/rtl/file.c index 708ddef3cc..d5cd870452 100644 --- a/harbour/source/rtl/file.c +++ b/harbour/source/rtl/file.c @@ -65,7 +65,8 @@ HB_EXPORT BOOL hb_fsFile( BYTE * pFilename ) if( ( ffind = hb_fsFindFirst( ( char * ) pFilename, HB_FA_ALL ) ) != NULL ) { hb_fsFindClose( ffind ); - hb_xfree(pFilename); + if( fFree ) + hb_xfree( pFilename ); return TRUE; } diff --git a/harbour/source/rtl/filesys.c b/harbour/source/rtl/filesys.c index 379a78c31d..54366126b1 100644 --- a/harbour/source/rtl/filesys.c +++ b/harbour/source/rtl/filesys.c @@ -2368,7 +2368,9 @@ HB_EXPORT BYTE * hb_fsNameConv( BYTE * szFileName, BOOL * pfFree ) if( pfFree ) { - szFileName = ( BYTE * ) hb_strdup( ( char * ) szFileName ); + BYTE * szNew = ( BYTE * ) hb_xgrab( _POSIX_PATH_MAX + 1 ); + hb_strncpy( ( char * ) szNew, ( char * ) szFileName, _POSIX_PATH_MAX ); + szFileName = szNew; *pfFree = TRUE; } @@ -2430,6 +2432,7 @@ HB_EXPORT BYTE * hb_fsNameConv( BYTE * szFileName, BOOL * pfFree ) } hb_fsFNameMerge( ( char * ) szFileName, pFileName ); + hb_xfree( pFileName ); } else if( pfFree ) *pfFree = FALSE; diff --git a/harbour/source/rtl/gttrm/gttrm.c b/harbour/source/rtl/gttrm/gttrm.c index 5e72370e0a..4ff4d64b82 100644 --- a/harbour/source/rtl/gttrm/gttrm.c +++ b/harbour/source/rtl/gttrm/gttrm.c @@ -2708,7 +2708,9 @@ static void hb_gt_trm_SetTerm( void ) szTerm = "ansi"; } - if( strncmp( szTerm, "linux", 5 ) == 0 ) + if( strncmp( szTerm, "linux", 5 ) == 0 || + strcmp( szTerm, "tterm" ) == 0 || + strcmp( szTerm, "teraterm" ) == 0 ) { s_termState.Init = hb_gt_trm_AnsiInit; s_termState.Exit = hb_gt_trm_AnsiExit;