2009-05-05 17:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbcomp.h
* harbour/source/compiler/hbmain.c
* harbour/source/compiler/hbcomp.c
* harbour/source/compiler/compi18n.c
* changed -j<path>/ and -j<file> behavior when more the one .prg file
is compiled. Now when <path>/ is used then it's respected by all
compiler .prg modules. When <file> is used then only single .pot
file is generated but it contains i18n entries from all compiled
.prg modules.
* harbour/ChangeLog
+ added two thanks notes, one to Miguel and using HeapAlloc() and
second to Walter Negro for his DATETIME work in xHarbour what gives
valuable test platform for Harbour and was important inspiration for
Harbour TIMESTAMP implementation.
This commit is contained in:
@@ -17,6 +17,23 @@
|
||||
past entries belonging to these authors: Viktor Szakats.
|
||||
*/
|
||||
|
||||
2009-05-05 17:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/include/hbcomp.h
|
||||
* harbour/source/compiler/hbmain.c
|
||||
* harbour/source/compiler/hbcomp.c
|
||||
* harbour/source/compiler/compi18n.c
|
||||
* changed -j<path>/ and -j<file> behavior when more the one .prg file
|
||||
is compiled. Now when <path>/ is used then it's respected by all
|
||||
compiler .prg modules. When <file> is used then only single .pot
|
||||
file is generated but it contains i18n entries from all compiled
|
||||
.prg modules.
|
||||
|
||||
* harbour/ChangeLog
|
||||
+ added two thanks notes, one to Miguel and using HeapAlloc() and
|
||||
second to Walter Negro for his DATETIME work in xHarbour what gives
|
||||
valuable test platform for Harbour and was important inspiration for
|
||||
Harbour TIMESTAMP implementation.
|
||||
|
||||
2009-05-04 17:52 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
|
||||
* harbour/contrib/gtwvg/gtwvg.h
|
||||
* harbour/contrib/gtwvg/hbgtwvg.ch
|
||||
@@ -5984,6 +6001,9 @@
|
||||
Warning: this implementation is not xHarbour compatible. There are many
|
||||
important differences. Mostly on C level and used API. Please be careful
|
||||
in porting xHarbour source code to Harbour.
|
||||
Many thanks to Walter Negro for his DATETIME implementation in xHarbour
|
||||
which allowed me to tests some different aspects of DAYTIME/TIMESTAMP
|
||||
behavior and was important inspiration for this job.
|
||||
|
||||
2009-03-21 15:44 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
|
||||
* contrib/hbtpathy/tpwin.c
|
||||
@@ -16320,6 +16340,8 @@
|
||||
* use HeapAlloc( GetProcessHeap(), ... ) instead of LocalAlloc()
|
||||
when HB_FM_WIN32_ALLOC macro is set - Toninho's tests show that
|
||||
it's a little bit more efficient - thanks.
|
||||
Thanks also to Miguel Angel Marchuet which 1-st used HeapAlloc()
|
||||
in xHarbour.
|
||||
|
||||
2009-01-09 17:59 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/contrib/hbct/ftoc.c
|
||||
|
||||
@@ -349,7 +349,7 @@ extern void hb_compIdentifierClose( HB_COMP_DECL ); /* release the table of iden
|
||||
|
||||
/* compi18n.c */
|
||||
extern void hb_compI18nFree( HB_COMP_DECL );
|
||||
extern BOOL hb_compI18nSave( HB_COMP_DECL );
|
||||
extern BOOL hb_compI18nSave( HB_COMP_DECL, BOOL fFinal );
|
||||
extern void hb_compI18nAdd( HB_COMP_DECL, const char* szText, const char* szContext, const char * szModule, UINT uiLine );
|
||||
extern void hb_compI18nAddPlural( HB_COMP_DECL, const char** szTexts, ULONG ulCount, const char* szContext, const char * szModule, UINT uiLine );
|
||||
|
||||
|
||||
@@ -254,7 +254,7 @@ static void hb_compI18nEscapeString( FILE* file, const char* szText )
|
||||
}
|
||||
}
|
||||
|
||||
BOOL hb_compI18nSave( HB_COMP_DECL )
|
||||
BOOL hb_compI18nSave( HB_COMP_DECL, BOOL fFinal )
|
||||
{
|
||||
PHB_I18NTABLE pI18n;
|
||||
PHB_I18NSTRING pString;
|
||||
@@ -268,7 +268,8 @@ BOOL hb_compI18nSave( HB_COMP_DECL )
|
||||
if( !pI18n )
|
||||
return FALSE;
|
||||
|
||||
FileName.szPath = FileName.szName = FileName.szExtension = FileName.szDrive = NULL;
|
||||
FileName.szPath = FileName.szName = FileName.szExtension =
|
||||
FileName.szDrive = NULL;
|
||||
|
||||
if( HB_COMP_PARAM->pOutPath )
|
||||
{
|
||||
@@ -293,6 +294,11 @@ BOOL hb_compI18nSave( HB_COMP_DECL )
|
||||
|
||||
if( ! FileName.szName )
|
||||
FileName.szName = HB_COMP_PARAM->pFileName->szName;
|
||||
else if( ! fFinal )
|
||||
/* The exact file name was given generate single .pot file for
|
||||
* all compiled .prg files in final phase.
|
||||
*/
|
||||
return FALSE;
|
||||
|
||||
if( ! FileName.szExtension )
|
||||
FileName.szExtension = ".pot";
|
||||
|
||||
@@ -247,6 +247,7 @@ HB_COMP_PTR hb_comp_new( void )
|
||||
|
||||
void hb_comp_free( HB_COMP_PTR pComp )
|
||||
{
|
||||
hb_compI18nFree( pComp );
|
||||
hb_compCompileEnd( pComp );
|
||||
hb_compParserStop( pComp );
|
||||
|
||||
@@ -295,14 +296,17 @@ void hb_comp_free( HB_COMP_PTR pComp )
|
||||
if( pComp->szStdCh )
|
||||
hb_xfree( pComp->szStdCh );
|
||||
|
||||
if( HB_COMP_PARAM->iStdChExt > 0 )
|
||||
if( pComp->iStdChExt > 0 )
|
||||
{
|
||||
do
|
||||
hb_xfree( HB_COMP_PARAM->szStdChExt[ --HB_COMP_PARAM->iStdChExt ] );
|
||||
while( HB_COMP_PARAM->iStdChExt != 0 );
|
||||
hb_xfree( HB_COMP_PARAM->szStdChExt );
|
||||
hb_xfree( pComp->szStdChExt[ --pComp->iStdChExt ] );
|
||||
while( pComp->iStdChExt != 0 );
|
||||
hb_xfree( pComp->szStdChExt );
|
||||
}
|
||||
|
||||
if( pComp->pI18nFileName )
|
||||
hb_xfree( pComp->pI18nFileName );
|
||||
|
||||
hb_xfree( pComp );
|
||||
}
|
||||
|
||||
|
||||
@@ -156,6 +156,9 @@ int hb_compMain( int argc, char * const argv[], BYTE ** pBufPtr, ULONG * pulSize
|
||||
if( HB_COMP_PARAM->iErrorCount > 0 )
|
||||
iStatus = EXIT_FAILURE;
|
||||
|
||||
if( iStatus == EXIT_SUCCESS )
|
||||
hb_compI18nSave( HB_COMP_PARAM, TRUE );
|
||||
|
||||
if( pBufPtr && pulSize )
|
||||
{
|
||||
if( iStatus == EXIT_SUCCESS )
|
||||
@@ -3814,14 +3817,6 @@ static void hb_compAddInitFunc( HB_COMP_DECL, PFUNCTION pFunc )
|
||||
|
||||
void hb_compCompileEnd( HB_COMP_DECL )
|
||||
{
|
||||
hb_compI18nFree( HB_COMP_PARAM );
|
||||
|
||||
if( HB_COMP_PARAM->pI18nFileName )
|
||||
{
|
||||
hb_xfree( HB_COMP_PARAM->pI18nFileName );
|
||||
HB_COMP_PARAM->pI18nFileName = NULL;
|
||||
}
|
||||
|
||||
if( HB_COMP_PARAM->pMainFileName )
|
||||
{
|
||||
if( HB_COMP_PARAM->pFileName != HB_COMP_PARAM->pMainFileName )
|
||||
@@ -4190,7 +4185,12 @@ static int hb_compCompile( HB_COMP_DECL, const char * szPrg, int iFileType )
|
||||
}
|
||||
|
||||
hb_compGenOutput( HB_COMP_PARAM, HB_COMP_PARAM->iLanguage );
|
||||
hb_compI18nSave( HB_COMP_PARAM );
|
||||
}
|
||||
|
||||
if( ! bSkipGen && HB_COMP_PARAM->iErrorCount == 0 )
|
||||
{
|
||||
if( hb_compI18nSave( HB_COMP_PARAM, FALSE ) )
|
||||
hb_compI18nFree( HB_COMP_PARAM );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user