2012-10-09 11:12 UTC+0200 Viktor Szakats (harbour syenar.net)

* contrib/gtwvg/class.prg
  * contrib/gtwvg/syswnd.prg
  * contrib/hbgd/gdchart.prg
    + using HB_IS*() for strict type checking instead of 'IF x == NIL'
      check recently converted from DEFAULT TO commands.
      This is INCOMPATIBLE for cases where wrong type was passed
      for these parameters.

  * contrib/xhb/cstruct.prg
  * contrib/xhb/tcgi.prg
  * src/debug/dbghelp.prg
  * src/debug/dbgtmenu.prg
  * src/debug/dbgtmitm.prg
  * src/debug/debugger.prg
  * contrib/hbhttpd/core.prg
  * contrib/hbpgsql/tests/cache.prg
  * contrib/hbpgsql/tpostgre.prg
  * contrib/hbnf/metaph.prg
  * extras/gtwvw/tests/ebtest7.prg
  * extras/guestbk/testcgi.prg
  * extras/gfspell/spell.prg
    % deleted 3rd parameter from expressions 'StrTran( x, y, "" )'
      Empty string is the default.

  * contrib/xhb/cstruct.prg
    ! fixed formatting and indentation using hbformat and manually

  * utils/hbmk2/hbmk2.prg
    % minor opt by replacing 'iif( ! Empty(' with 'iif( Empty('
This commit is contained in:
Viktor Szakats
2012-10-09 09:19:19 +00:00
parent ec2b883726
commit e6d4871bfe
18 changed files with 200 additions and 145 deletions

View File

@@ -16,6 +16,37 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-10-09 11:12 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/gtwvg/class.prg
* contrib/gtwvg/syswnd.prg
* contrib/hbgd/gdchart.prg
+ using HB_IS*() for strict type checking instead of 'IF x == NIL'
check recently converted from DEFAULT TO commands.
This is INCOMPATIBLE for cases where wrong type was passed
for these parameters.
* contrib/xhb/cstruct.prg
* contrib/xhb/tcgi.prg
* src/debug/dbghelp.prg
* src/debug/dbgtmenu.prg
* src/debug/dbgtmitm.prg
* src/debug/debugger.prg
* contrib/hbhttpd/core.prg
* contrib/hbpgsql/tests/cache.prg
* contrib/hbpgsql/tpostgre.prg
* contrib/hbnf/metaph.prg
* extras/gtwvw/tests/ebtest7.prg
* extras/guestbk/testcgi.prg
* extras/gfspell/spell.prg
% deleted 3rd parameter from expressions 'StrTran( x, y, "" )'
Empty string is the default.
* contrib/xhb/cstruct.prg
! fixed formatting and indentation using hbformat and manually
* utils/hbmk2/hbmk2.prg
% minor opt by replacing 'iif( ! Empty(' with 'iif( Empty('
2012-10-08 23:27 UTC+0200 Viktor Szakats (harbour syenar.net)
* extras/hbvpdf/hbvpdf.ch
* extras/hbvpdf/hbvpdf.prg

View File

@@ -855,7 +855,7 @@ ENDCLASS
METHOD WvtObject:New( oParent, nType, nID, nTop, nLeft, nBottom, nRight )
IF nID == NIL
IF ! HB_ISNUMERIC( nID )
nID := ++::nObjID
ENDIF

View File

@@ -459,7 +459,7 @@ METHOD GetWvgFont( aFont ) CLASS WvgFontDialog
LOCAL oWvgFont
IF aFont == NIL
IF ! HB_ISARRAY( aFont )
aFont := Wvg_ChooseFont_GetLogFont( ::hWnd )
ENDIF

View File

@@ -334,13 +334,13 @@ METHOD VerticalBarChart() CLASS GDChart
nTot += hElement[ "VALUE" ]
NEXT
IF nLeftLabelSpace == NIL
IF ! HB_ISNUMERIC( nLeftLabelSpace )
nLeftLabelSpace := nBorder + Len( LTrim( Transform( nMax, cAxisPict ) ) ) * ::GetFontWidth() + nBorder
ENDIF
IF nRightLabelSpace == NIL
IF ! HB_ISNUMERIC( nRightLabelSpace )
nRightLabelSpace := nLeftLabelSpace //nBorder + Len( hb_ntos( nMax ) ) * ::GetFontWidth() + nBorder
ENDIF
IF nBottomLabelSpace == NIL
IF ! HB_ISNUMERIC( nBottomLabelSpace )
nBottomLabelSpace := nBorder + nMaxLabel * ::GetFontWidth() + nBorder
ENDIF
@@ -524,16 +524,16 @@ METHOD HorizontalBarChart() CLASS GDChart
nTot += hElement[ "VALUE" ]
NEXT
IF nLeftLabelSpace == NIL
IF ! HB_ISNUMERIC( nLeftLabelSpace )
nLeftLabelSpace := nBorder + nMaxLabel * ::GetFontWidth() + nBorder
ENDIF
IF nRightLabelSpace == NIL
IF ! HB_ISNUMERIC( nRightLabelSpace )
nRightLabelSpace := nBorder + ( Len( LTrim( Transform( nMax, cAxisPict ) ) ) * ::GetFontWidth() / 2 )
ENDIF
IF nTopLabelSpace == NIL
IF ! HB_ISNUMERIC( nTopLabelSpace )
nTopLabelSpace := nBorder + ::GetFontHeight() + nBorder
ENDIF
IF nBottomLabelSpace == NIL
IF ! HB_ISNUMERIC( nBottomLabelSpace )
nBottomLabelSpace := nTopLabelSpace // nBorder + ::GetFontHeight() + nBorder
ENDIF
@@ -731,13 +731,13 @@ METHOD LineChart() CLASS GDChart
nMinLabel := Max( nMinLabel, Len( iif( cLabel != NIL, cLabel, "" ) ) )
NEXT
IF nLeftLabelSpace == NIL
IF ! HB_ISNUMERIC( nLeftLabelSpace )
nLeftLabelSpace := nBorder + Max( Len( LTrim( Transform( nMax, cAxisPict ) ) ), Len( LTrim( Transform( nMin, cAxisPict ) ) ) ) * ::GetFontWidth() + nBorder
ENDIF
IF nRightLabelSpace == NIL
IF ! HB_ISNUMERIC( nRightLabelSpace )
nRightLabelSpace := nLeftLabelSpace
ENDIF
IF nBottomLabelSpace == NIL
IF ! HB_ISNUMERIC( nBottomLabelSpace )
nBottomLabelSpace := nBorder + nMaxLabel * ::GetFontWidth() + nBorder
ENDIF

View File

@@ -943,7 +943,7 @@ STATIC FUNCTION HttpDateUnformat( cDate, tDate )
nMonth := AScan( { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", ;
"Oct", "Nov", "Dec" }, SubStr( cDate, 9, 3 ) )
IF nMonth > 0
tI := HB_STOT( SubStr( cDate, 13, 4 ) + PadL( nMonth, 2, "0" ) + SubStr( cDate, 6, 2 ) + StrTran( SubStr(cDate, 18, 8 ), ":", "" ) )
tI := HB_STOT( SubStr( cDate, 13, 4 ) + PadL( nMonth, 2, "0" ) + SubStr( cDate, 6, 2 ) + StrTran( SubStr( cDate, 18, 8 ), ":" ) )
IF ! Empty( tI )
tDate := tI + HB_UTCOFFSET() / ( 3600 * 24 )
RETURN .T.

View File

@@ -129,7 +129,7 @@ FUNCTION FT_METAPH( cName, nSize )
// Remove inner spaces (1st and last byte are spaces)
IF " " $ SubStr( cMeta, 2, Len( cMeta ) - 2 )
cMeta := " " + StrTran( cMeta, " " , "" ) + " "
cMeta := " " + StrTran( cMeta, " " ) + " "
ENDIF
// Double consonants sound much the same as singles
@@ -220,7 +220,7 @@ FUNCTION FT_METAPH( cName, nSize )
IF "C" $ cMeta ; cMeta := StrTran( cMeta, "C" , "K" ) ; ENDIF
// Remove vowels
cMeta := StrTran( cMeta, "v", "" )
cMeta := StrTran( cMeta, "v" )
RETURN PadR( AllTrim( cMeta ), nSize )

View File

@@ -536,10 +536,10 @@ FUNCTION TempFile( cPath, cExt )
hb_default( @cPath, hb_DirTemp() )
hb_default( @cExt, "tmp" )
cString := cPath + StrZero( Int( hb_random( Val( StrTran( Time(), ":", "" ) ) ) ), 8 ) + "." + cExt
cString := cPath + StrZero( Int( hb_random( Val( StrTran( Time(), ":" ) ) ) ), 8 ) + "." + cExt
DO WHILE hb_FileExists( cString )
cString := cPath + StrZero( Int( hb_random( Val( StrTran( Time(), ":", "" ) ) ) ), 8 ) + "." + cExt
cString := cPath + StrZero( Int( hb_random( Val( StrTran( Time(), ":" ) ) ) ), 8 ) + "." + cExt
ENDDO
RETURN cString

View File

@@ -1023,7 +1023,7 @@ METHOD FieldGet( nField, nRow ) CLASS TPQquery
CASE "D"
IF result != NIL
result := hb_SToD( StrTran( result, "-", "" ) )
result := hb_SToD( StrTran( result, "-" ) )
ELSE
result := hb_SToD()
ENDIF

View File

@@ -64,19 +64,23 @@ STATIC s_aArrayClasses := {}
STATIC s_aSynonyms := {}
STATIC s_lInitLongs := .T.
PROCEDURE __INIT_LONGLONGS
PROCEDURE __INIT_LONGLONGS()
HB_CStructureCSyntax( "ULONGLONG", { "-4", "ulong[2]", }, , , 8 )
__ClsSetModule( __ActiveStructure() )
HB_CStructureCSyntax( "LONGLONG", { "4", "long[2]", } , , , 8 )
__ClsSetModule( __ActiveStructure() )
RETURN
RETURN
//
FUNCTION __ActiveStructure( cStructure, nAlign )
/* LOCAL oErr */
#if 0
LOCAL oErr
#endif
LOCAL acMembers, aCTypes, hClass, Counter, cMember
IF s_lInitLongs
@@ -87,42 +91,43 @@ FUNCTION __ActiveStructure( cStructure, nAlign )
IF PCount() == 2
cStructure := Upper( cStructure )
IF aScan( s_aClasses, {| aClassInfo | aClassInfo[1] == cStructure } ) > 0
/* In most cases we can simply ignore the reduefinition, by returning a FAKED Structure Array!
IF AScan( s_aClasses, {| aClassInfo | aClassInfo[ 1 ] == cStructure } ) > 0
/* In most cases we can simply ignore the redefinition, by returning a FAKED Structure Array! */
#if 0
oErr := ErrorNew()
oErr:Args := { cStructure, nAlign }
oErr:CanDefault := .F.
oErr:CanRetry := .F.
oErr:CanSubstitute := .T.
oErr:Description := "Structure already defined."
oErr:Description := "Structure already defined."
oErr:Operation := "__ActiveStructure()"
oErr:Severity := ES_ERROR
oErr:SubCode := 1
oErr:SubSystem := "C Structure"
RETURN Eval( ErrorBlock(), oErr )
*/
#endif
// In most cases we can simply ignore the redefinition, by returning a FAKED Structure Array!
//TraceLog( "Redefinition of C Structure: " + cStructure )
RETURN t_aActiveStructure := { cStructure, NIL, {}, {}, iif( HB_ISNUMERIC( nAlign ), nAlign, 8 ) }
ENDIF
aAdd( s_aClasses, { cStructure, NIL, {}, {}, iif( HB_ISNUMERIC( nAlign ), nAlign, 8 ) } )
//TraceLog( "Registered: " + cStructure, s_aClasses[-1][5] )
AAdd( s_aClasses, { cStructure, NIL, {}, {}, iif( HB_ISNUMERIC( nAlign ), nAlign, 8 ) } )
//TraceLog( "Registered: " + cStructure, s_aClasses[ -1 ][ 5 ] )
t_aActiveStructure := atail(s_aClasses)
t_aActiveStructure := ATail( s_aClasses )
ELSE
//TraceLog( "Created: " + Str( nId ) )
acMembers := t_aActiveStructure[3]
aCTypes := t_aActiveStructure[4]
nAlign := t_aActiveStructure[5]
acMembers := t_aActiveStructure[ 3 ]
aCTypes := t_aActiveStructure[ 4 ]
nAlign := t_aActiveStructure[ 5 ]
hClass := __clsNew( "C Structure " + t_aActiveStructure[1] , Len( acMembers ) + CLASS_PROPERTIES )
hClass := __clsNew( "C Structure " + t_aActiveStructure[ 1 ] , Len( acMembers ) + CLASS_PROPERTIES )
//__clsDelMsg( hClass, "C" )
t_aActiveStructure[2] := hClass
t_aActiveStructure[ 2 ] := hClass
__clsAddMsg( hClass, "Reset" , @Reset() , HB_OO_MSG_METHOD )
__clsAddMsg( hClass, "Buffer" , @Buffer() , HB_OO_MSG_METHOD )
@@ -148,33 +153,35 @@ FUNCTION __ActiveStructure( cStructure, nAlign )
// WARNING InternalBuffer *MUST* remain the *LAST* Property!!!
__clsAddMsg( hClass, "InternalBuffer", ++Counter, HB_OO_MSG_PROPERTY, , HB_OO_CLSTP_READONLY )
//TraceLog( Len( aCTypes ), aCTypes[1], aCTypes )
//TraceLog( Len( aCTypes ), aCTypes[ 1 ], aCTypes )
RETURN hClass
ENDIF
RETURN t_aActiveStructure
//
PROCEDURE HB_Member( cMember, CType )
LOCAL nLen, nAt
LOCAL nLen, nAt
IF right(cMember,1) == "]"
nAt := At( "[", cMember )
//nLen := Val( SubStr( cMember, nAt + 1, Len( cMember ) ) )
// Support expressions like x + y, x - y, x * y
nLen := &( SubStr( cMember, nAt + 1, Len( cMember ) - nAt - 1 ) )
IF Right( cMember, 1 ) == "]"
nAt := At( "[", cMember )
//nLen := Val( SubStr( cMember, nAt + 1, Len( cMember ) ) )
// Support expressions like x + y, x - y, x * y
nLen := &( SubStr( cMember, nAt + 1, Len( cMember ) - nAt - 1 ) )
aAdd( t_aActiveStructure[3], Left( cMember, nAt - 1 ) )
aAdd( t_aActiveStructure[4], HB_CTypeArrayID( CType, nLen ) )
ELSE
aAdd( t_aActiveStructure[3], cMember )
aAdd( t_aActiveStructure[4], CType )
ENDIF
AAdd( t_aActiveStructure[ 3 ], Left( cMember, nAt - 1 ) )
AAdd( t_aActiveStructure[ 4 ], HB_CTypeArrayID( CType, nLen ) )
ELSE
AAdd( t_aActiveStructure[ 3 ], cMember )
AAdd( t_aActiveStructure[ 4 ], CType )
ENDIF
Return
RETURN
//
FUNCTION HB_CStructureID( cStructure, lInplace )
LOCAL nID
@@ -182,10 +189,10 @@ FUNCTION HB_CStructureID( cStructure, lInplace )
cStructure := Upper( cStructure )
nID := aScan( s_aClasses, {| aClassInfo | aClassInfo[1] == cStructure } )
nID := AScan( s_aClasses, {| aClassInfo | aClassInfo[ 1 ] == cStructure } )
IF nID == 0
nID := aScan( s_aSynonyms, {| aSynonym | aSynonym[1] == cStructure } )
nID := AScan( s_aSynonyms, {| aSynonym | aSynonym[ 1 ] == cStructure } )
IF nID == 0
oErr := ErrorNew()
oErr:Args := { cStructure, lInplace }
@@ -200,7 +207,7 @@ FUNCTION HB_CStructureID( cStructure, lInplace )
RETURN Eval( ErrorBlock(), oErr )
ELSE
nID := s_aSynonyms[nID][2]
nID := s_aSynonyms[ nID ][ 2 ]
ENDIF
nID += iif( lInplace, 0, CTYPE_STRUCTURE_PTR - CTYPE_STRUCTURE )
@@ -208,11 +215,12 @@ FUNCTION HB_CStructureID( cStructure, lInplace )
nID += iif( lInplace, CTYPE_STRUCTURE, CTYPE_STRUCTURE_PTR )
ENDIF
//TraceLog( cStructure, nID )
// TraceLog( cStructure, nID )
RETURN nID
//
PROCEDURE HB_CStructureCSyntax( cStructure, aDefinitions, cTag, cSynonList, nAlign )
LOCAL cElem, nAt, nIndex := 1
@@ -221,63 +229,63 @@ PROCEDURE HB_CStructureCSyntax( cStructure, aDefinitions, cTag, cSynonList, nAli
LOCAL nID, cSynon
FOR EACH cElem IN aDefinitions
// *** PP bug - remove when possible! ***
IF cElem == NIL
aSize( aDefinitions, nIndex - 1 )
EXIT
ENDIF
// *** PP bug - remove when possible! ***
IF cElem == NIL
ASize( aDefinitions, nIndex - 1 )
EXIT
ENDIF
IF ( nAt := At( "*", cElem ) ) > 1
IF nIndex < Len( aDefinitions )
hb_aIns( aDefinitions, nIndex + 1, SubStr( cElem, nAt + 1 ), .T. )
ELSE
aAdd( aDefinitions, SubStr( cElem, nAt + 1 ) )
ENDIF
IF ( nAt := At( "*", cElem ) ) > 1
IF nIndex < Len( aDefinitions )
hb_AIns( aDefinitions, nIndex + 1, SubStr( cElem, nAt + 1 ), .T. )
ELSE
AAdd( aDefinitions, SubStr( cElem, nAt + 1 ) )
ENDIF
aDefinitions[nIndex] := StrTran( Left( cElem, nAt ), " ", "" )
ELSEIF ( nAt := At( "-", cElem ) ) > 1
IF nIndex < Len( aDefinitions )
hb_aIns( aDefinitions, nIndex + 1, SubStr( cElem, nAt ), .T. )
ELSE
aAdd( aDefinitions, SubStr( cElem, nAt ) )
ENDIF
aDefinitions[nIndex] := StrTran( Left( cElem, nAt ), " " )
ELSEIF ( nAt := At( "-", cElem ) ) > 1
IF nIndex < Len( aDefinitions )
hb_AIns( aDefinitions, nIndex + 1, SubStr( cElem, nAt ), .T. )
ELSE
AAdd( aDefinitions, SubStr( cElem, nAt ) )
ENDIF
aDefinitions[nIndex] := RTrim( Left( cElem, nAt - 1 ) )
ENDIF
aDefinitions[nIndex] := RTrim( Left( cElem, nAt - 1 ) )
ENDIF
nIndex++
nIndex++
NEXT
__ActiveStructure( cStructure, nAlign )
nID := Len( s_aClasses )
IF ! Empty( cTag )
aAdd( s_aSynonyms, { Upper( cTag ), nID + CTYPE_STRUCTURE } )
//Tracelog( s_aSynonyms[-1][1], s_aSynonyms[-1][2] )
AAdd( s_aSynonyms, { Upper( cTag ), nID + CTYPE_STRUCTURE } )
//Tracelog( s_aSynonyms[ -1 ][ 1 ], s_aSynonyms[ -1 ][ 2 ] )
ENDIF
IF ! Empty( cSynonList )
FOR EACH cSynon IN HB_aTokens( cSynonList )
IF left( cSynon,1 ) == '*'
aAdd( s_aSynonyms, { Upper( SubStr( cSynon, 2 ) ), nID + CTYPE_STRUCTURE_PTR } )
FOR EACH cSynon IN hb_ATokens( cSynonList )
IF Left( cSynon, 1 ) == "*"
AAdd( s_aSynonyms, { Upper( SubStr( cSynon, 2 ) ), nID + CTYPE_STRUCTURE_PTR } )
ELSE
aAdd( s_aSynonyms, { Upper( cSynon ), nID + CTYPE_STRUCTURE } )
AAdd( s_aSynonyms, { Upper( cSynon ), nID + CTYPE_STRUCTURE } )
ENDIF
//Tracelog( s_aSynonyms[-1][1], s_aSynonyms[-1][2] )
//Tracelog( s_aSynonyms[ -1 ][ 1 ], s_aSynonyms[ -1 ][ 2 ] )
NEXT
ENDIF
nLen := Len( aDefinitions )
FOR Counter := 1 TO nLen STEP 2
//TraceLog( "Member: " + aDefinitions[Counter + 1], "Type: " + aDefinitions[Counter] )
//TraceLog( "Member: " + aDefinitions[ Counter + 1 ], "Type: " + aDefinitions[ Counter ] )
CType := aDefinitions[Counter]
CType := aDefinitions[ Counter ]
IF Val( CType ) != 0
HB_Member( aDefinitions[Counter + 1], Val( aDefinitions[Counter] ) )
HB_Member( aDefinitions[ Counter + 1 ], Val( aDefinitions[ Counter ] ) )
ELSE
IF right(CType,1) == '*'
IF Right( CType, 1 ) == "*"
CType := HB_CStructureID( Left( CType, Len( CType ) - 1 ), .F. )
ELSE
CType := HB_CStructureID( CType, .T. )
@@ -288,7 +296,7 @@ PROCEDURE HB_CStructureCSyntax( cStructure, aDefinitions, cTag, cSynonList, nAli
oErr:CanDefault := .F.
oErr:CanRetry := .F.
oErr:CanSubstitute := .T.
oErr:Description := "Undefined CType: '" + aDefinitions[Counter] + "'"
oErr:Description := "Undefined CType: '" + aDefinitions[ Counter ] + "'"
oErr:Operation := "HB_CStructureCSyntax()"
oErr:Severity := ES_ERROR
oErr:SubCode := 2
@@ -298,13 +306,14 @@ PROCEDURE HB_CStructureCSyntax( cStructure, aDefinitions, cTag, cSynonList, nAli
ENDIF
ENDIF
HB_Member( aDefinitions[Counter + 1], CType )
HB_Member( aDefinitions[ Counter + 1 ], CType )
ENDIF
NEXT
RETURN
RETURN
//
FUNCTION HB_CStructure( cStructure, nAlign )
LOCAL hClass
@@ -313,7 +322,7 @@ FUNCTION HB_CStructure( cStructure, nAlign )
LOCAL oErr
cStructure := Upper( cStructure )
nID := aScan( s_aClasses, {| aClassInfo | aClassInfo[1] == cStructure } )
nID := AScan( s_aClasses, {| aClassInfo | aClassInfo[ 1 ] == cStructure } )
IF nID == 0
oErr := ErrorNew()
@@ -330,7 +339,7 @@ FUNCTION HB_CStructure( cStructure, nAlign )
RETURN Eval( ErrorBlock(), oErr )
ENDIF
hClass := s_aClasses[nId][2]
hClass := s_aClasses[ nId ][ 2 ]
oStructure := __clsInst( hClass )
AllocateMembers( oStructure )
@@ -338,12 +347,14 @@ FUNCTION HB_CStructure( cStructure, nAlign )
RETURN oStructure
//
STATIC PROCEDURE AllocateMembers( oStructure )
LOCAL aCTypes, CType
aCTypes := oStructure:aCTypes
//TraceLog( "Scaning: " + oStructure:ClassName )
// TraceLog( "Scaning: " + oStructure:ClassName )
FOR EACH CType IN aCTypes
IF CType > CTYPE_STRUCTURE .AND. CType < CTYPE_STRUCTURE_PTR
@@ -352,17 +363,18 @@ STATIC PROCEDURE AllocateMembers( oStructure )
ENDIF
NEXT
//TraceLog( "Finished: " + oStructure:ClassName )
// TraceLog( "Finished: " + oStructure:ClassName )
RETURN
RETURN
//
FUNCTION HB_CStructureFromID( nID, nAlign )
LOCAL hClass, oStructure
LOCAL oErr
//TraceLog( nId, s_aClasses )
// TraceLog( nId, s_aClasses )
IF nID > CTYPE_STRUCTURE_PTR
nID -= CTYPE_STRUCTURE_PTR
@@ -383,11 +395,11 @@ FUNCTION HB_CStructureFromID( nID, nAlign )
RETURN Eval( ErrorBlock(), oErr )
ENDIF
IF s_aClasses[nID][2] == NIL
IF s_aClasses[ nID ][ 2 ] == NIL
// Meta class was not created yet.
RETURN HB_CStructure( s_aClasses[nId][1] )
RETURN HB_CStructure( s_aClasses[ nId ][ 1 ] )
ELSE
hClass := s_aClasses[nId][2]
hClass := s_aClasses[ nId ][ 2 ]
oStructure := __clsInst( hClass )
ENDIF
@@ -395,6 +407,7 @@ FUNCTION HB_CStructureFromID( nID, nAlign )
RETURN oStructure
//
FUNCTION HB_CTypeArrayID( CType, nLen )
LOCAL hClass
@@ -403,23 +416,23 @@ FUNCTION HB_CTypeArrayID( CType, nLen )
LOCAL aCTypes, acMembers, cMember
LOCAL cArrayClassName := "C Array of [" + hb_ntos( nLen ) + "] CType: " + Str( CType )
nID := aScan( s_aArrayClasses, {| aArrayDefinitions | aArrayDefinitions[1] == CType .AND. aArrayDefinitions[2] == nLen } )
nID := AScan( s_aArrayClasses, {| aArrayDefinitions | aArrayDefinitions[ 1 ] == CType .AND. aArrayDefinitions[ 2 ] == nLen } )
IF nID == 0
hClass := __clsNew( "C Structure " + cArrayClassName, nLen + CLASS_PROPERTIES )
//__clsDelMsg( hClass, "C" )
__ClsSetModule( hClass )
aAdd( s_aClasses, { cArrayClassName, hClass, Array( nLen ), Array( nLen ), 1 } )
AAdd( s_aClasses, { cArrayClassName, hClass, Array( nLen ), Array( nLen ), 1 } )
nID := Len( s_aClasses )
acMembers := s_aClasses[nID][3]
aCTypes := s_aClasses[nID][4]
acMembers := s_aClasses[ nID ][ 3 ]
aCTypes := s_aClasses[ nID ][ 4 ]
// Sames as s_aClasses[nID][4]
aFill( aCTypes, CType )
// Sames as s_aClasses[ nID ][ 4 ]
AFill( aCTypes, CType )
aAdd( s_aArrayClasses, { CType, nLen, nID } )
AAdd( s_aArrayClasses, { CType, nLen, nID } )
__clsAddMsg( hClass, "Reset" , @Reset() , HB_OO_MSG_METHOD )
__clsAddMsg( hClass, "Buffer" , @Buffer() , HB_OO_MSG_METHOD )
@@ -433,12 +446,12 @@ FUNCTION HB_CTypeArrayID( CType, nLen )
__clsAddMsg( hClass, "CopyTo" , @__CSTR_CopyTo() , HB_OO_MSG_METHOD )
//IF Abs( CType ) == 1
__clsAddMsg( hClass, "AsString", @AsString() , HB_OO_MSG_METHOD )
__clsAddMsg( hClass, "AsString", @AsString() , HB_OO_MSG_METHOD )
//ENDIF
FOR Counter := 1 TO nLen
cMember := hb_ntos( Counter )
acMembers[Counter] := cMember
acMembers[ Counter ] := cMember
__clsAddMsg( hClass, cMember, Counter, HB_OO_MSG_PROPERTY )
NEXT
@@ -451,18 +464,20 @@ FUNCTION HB_CTypeArrayID( CType, nLen )
__clsAddMsg( hClass, "InternalBuffer", Counter, HB_OO_MSG_PROPERTY, , HB_OO_CLSTP_READONLY )
//TraceLog( "Registered: " + cArrayClassName, nID, Len( s_aArrayClasses ), HB_SizeOfCStructure( aCTypes, 1 ), nLen )
ELSE
nID := s_aArrayClasses[nID][3]
//TraceLog( "Reused: " + s_aClasses[nID][1], nID )
nID := s_aArrayClasses[ nID ][ 3 ]
//TraceLog( "Reused: " + s_aClasses[ nID ][ 1 ], nID )
ENDIF
RETURN nID + CTYPE_STRUCTURE
//
FUNCTION HB_IS_CStructure( x )
RETURN Left( x:ClassName(), 11 ) == "C Structure"
//
STATIC FUNCTION SayMembers( cPad, lShowMembers, lReturnString )
LOCAL xProperty, cOut := ""
@@ -477,8 +492,8 @@ STATIC FUNCTION SayMembers( cPad, lShowMembers, lReturnString )
lReturnString := .F.
ENDIF
//QOut( cPad + SubStr( QSelf():ClassName, 13 ) )
//QOut( cPad + Replicate( "-", Len( SubStr( QSelf():ClassName, 13 ) ) ) )
// QOut( cPad + SubStr( QSelf():ClassName, 13 ) )
// QOut( cPad + Replicate( "-", Len( SubStr( QSelf():ClassName, 13 ) ) ) )
cOut += cPad + SubStr( QSelf():ClassName, 13 )
cOut += hb_eol() + cPad + Replicate( "-", Len( SubStr( QSelf():ClassName, 13 ) ) )
@@ -492,17 +507,18 @@ STATIC FUNCTION SayMembers( cPad, lShowMembers, lReturnString )
ENDIF
ELSE
//QOut( cPad + iif( lShowMembers, acMembers[ xProperty:__enumIndex() ], "" ) + ":", xProperty )
cOut += hb_eol() + cPad + iif( lShowMembers, QSelf():acMembers[ xProperty:__enumIndex() ], "" ) + ":" + hb_cStr( xProperty )
cOut += hb_eol() + cPad + iif( lShowMembers, QSelf():acMembers[ xProperty:__enumIndex() ], "" ) + ":" + hb_CStr( xProperty )
ENDIF
NEXT
IF !lReturnString
IF ! lReturnString
QOut( cOut )
ENDIF
RETURN iif( lReturnString, cOut, QSelf() )
//
STATIC FUNCTION Reset()
LOCAL xProperty, nProperties := Len( QSelf() ) - CLASS_PROPERTIES
@@ -522,12 +538,13 @@ STATIC FUNCTION Reset()
RETURN QSelf()
//
STATIC FUNCTION Buffer( Buffer, lAdopt )
IF HB_ISSTRING( Buffer )
IF Len( Buffer ) < QSelf():SizeOf
//TraceLog( Buffer )
Buffer := PadR( Buffer, QSelf():SizeOf, Chr(0) )
Buffer := PadR( Buffer, QSelf():SizeOf, Chr( 0 ) )
ENDIF
QSelf():InternalBuffer := Buffer
@@ -541,6 +558,7 @@ STATIC FUNCTION Buffer( Buffer, lAdopt )
RETURN QSelf()
//
STATIC FUNCTION GetPointer()
QSelf():InternalBuffer := HB_ArrayToStructure( QSelf(), QSelf():aCTypes, QSelf():nAlign )
@@ -548,31 +566,33 @@ STATIC FUNCTION GetPointer()
RETURN hb_String2Pointer( QSelf():InternalBuffer )
//
STATIC FUNCTION Value()
//LOCAL aValues := {}
// LOCAL aValues := {}
//aEval( QSelf(), {| xVal | aAdd( aValues, xVal ) }, 1, Len( QSelf() ) - CLASS_PROPERTIES )
// AEval( QSelf(), {| xVal | aAdd( aValues, xVal ) }, 1, Len( QSelf() ) - CLASS_PROPERTIES )
QSelf():InternalBuffer := HB_ArrayToStructure( QSelf(), QSelf():aCTypes, QSelf():nAlign )
RETURN QSelf():InternalBuffer
//
STATIC FUNCTION DeValue( lAdopt )
//LOCAL aValues := {}
// LOCAL aValues := {}
LOCAL Buffer := QSelf():InternalBuffer
//TraceLog( QSelf():ClassName(), QSelf():nAlign, Buffer, Len( Buffer ), lAdopt )
// TraceLog( QSelf():ClassName(), QSelf():nAlign, Buffer, Len( Buffer ), lAdopt )
//aEval( QSelf(), {| xVal | aAdd( aValues, xVal ) }, 1, Len( QSelf() ) - CLASS_PROPERTIES )
// AEval( QSelf(), {| xVal | aAdd( aValues, xVal ) }, 1, Len( QSelf() ) - CLASS_PROPERTIES )
IF ! HB_ISSTRING( Buffer ) .OR. Len( Buffer ) == 0
//TraceLog( "EMPTY Buffer passed to " + ProcName() )
ELSEIF Len( Buffer ) < QSelf():SizeOf
//TraceLog( "Should have been caught at ::Buffer()!!!", Buffer )
//Buffer := PadR( Buffer, QSelf():SizeOf, Chr(0) )
//Buffer := PadR( Buffer, QSelf():SizeOf, Chr( 0 ) )
ELSE
HB_StructureToArray( Buffer, QSelf():aCTypes, QSelf():nAlign, lAdopt, QSelf() )
ENDIF
@@ -580,15 +600,17 @@ STATIC FUNCTION DeValue( lAdopt )
RETURN QSelf()
//
STATIC FUNCTION ArrayMethod()
LOCAL aValues := {}
aEval( QSelf(), {| xVal | aAdd( aValues, xVal ) }, 1, Len( QSelf() ) - CLASS_PROPERTIES )
AEval( QSelf(), {| xVal | AAdd( aValues, xVal ) }, 1, Len( QSelf() ) - CLASS_PROPERTIES )
RETURN aValues
//
STATIC FUNCTION Init( aValues )
LOCAL xProperty, nLen := Len( aValues )
@@ -608,6 +630,7 @@ STATIC FUNCTION Init( aValues )
RETURN QSelf()
//
STATIC FUNCTION Pointer( nNewPointer, lAdopt )
IF nNewPointer != NIL
@@ -617,6 +640,7 @@ STATIC FUNCTION Pointer( nNewPointer, lAdopt )
RETURN QSelf()
//
STATIC FUNCTION AsString()
LOCAL cChar, nLen := Len( QSelf() ) - CLASS_PROPERTIES, cString := Space( nLen )

View File

@@ -224,7 +224,7 @@ FUNCTION ParseString( cString, cDelim, nRet )
LOCAL nSize
LOCAL i
nSize := Len( cString ) - Len( StrTran( cString, cDelim, "" ) ) + 1
nSize := Len( cString ) - Len( StrTran( cString, cDelim ) ) + 1
aElem := Array( nSize )
cBuf := cString

View File

@@ -939,7 +939,7 @@ STATIC function ChrCount(cChar,cString)
**DEBUG**
@24,30 SAY "At ChrCount"
return len(cString)-len(strTran(cString,cChar,""))
return len(cString)-len(strTran(cString,cChar))
**
** Function: Sp_Split()

View File

@@ -922,9 +922,9 @@ STATIC FUNCTION IsBadDate( cBuffer ) //, cPicFunc )
// cBuffer := InvertDwM( cBuffer )
// ENDIF
cBuffer2 := StrTran( cBuffer, "/", "" )
cBuffer2 := StrTran( cBuffer2, "-", "" )
cBuffer2 := StrTran( cBuffer2, ".", "" )
cBuffer2 := StrTran( cBuffer, "/" )
cBuffer2 := StrTran( cBuffer2, "-" )
cBuffer2 := StrTran( cBuffer2, "." )
IF Empty( cBuffer2 )
RETURN .F.

View File

@@ -31,7 +31,7 @@ FUNCTION ParseString( cString, cDelim, nRet )
LOCAL cBuf, aElem, nPosFim, nSize, i
nSize := Len( cString ) - Len( StrTran( cString, cDelim, "" ) ) + 1
nSize := Len( cString ) - Len( StrTran( cString, cDelim ) ) + 1
aElem := Array( nSize )
cBuf := cString

View File

@@ -78,7 +78,7 @@ PROCEDURE __dbgHelp( nTopic )
oBrw := HBDbBrowser():New( oDlg:nTop + 1, oDlg:nLeft + 1, oDlg:nBottom - 1, oDlg:nLeft + 12 )
oBrw:Cargo := 1
oBrw:AddColumn( HBDbColumnNew( "", {|| aTopics[ oBrw:Cargo ][ 1 ] }, 12 ) )
oBrw:ColorSpec := StrTran( __Dbg():ClrModal(), ", R/W", "" )
oBrw:ColorSpec := StrTran( __Dbg():ClrModal(), ", R/W" )
oBrw:SkipBlock := {| nSkip, nOld | nOld := oBrw:Cargo, oBrw:Cargo += nSkip,;
oBrw:Cargo := Min( Max( oBrw:Cargo, 1 ), Len( aTopics ) ),;
oBrw:Cargo - nOld }

View File

@@ -151,7 +151,7 @@ METHOD AddItem( oMenuItem ) CLASS HBDbMenu
IF Len( oLastMenu:aItems ) > 0
oLastMenuItem := ATail( oLastMenu:aItems )
oMenuItem:nCol := oLastMenuItem:nCol + ;
Len( StrTran( oLastMenuItem:cPrompt, "~", "" ) )
Len( StrTran( oLastMenuItem:cPrompt, "~" ) )
ELSE
oMenuItem:nCol := 0
ENDIF
@@ -171,7 +171,7 @@ METHOD Build() CLASS HBDbMenu
FOR n := 1 TO Len( ::aItems )
::aItems[ n ]:nRow := 0
::aItems[ n ]:nCol := nPos
nPos += Len( StrTran( ::aItems[ n ]:cPrompt, "~", "" ) )
nPos += Len( StrTran( ::aItems[ n ]:cPrompt, "~" ) )
NEXT
ELSE
oMenuItem := ATail( ::aMenus[ Len( ::aMenus ) - 1 ]:aItems )
@@ -181,7 +181,7 @@ METHOD Build() CLASS HBDbMenu
FOR n := 1 TO Len( ::aItems )
::aItems[ n ]:nRow := ::nTop + n
::aItems[ n ]:nCol := ::nLeft + 1
nPos := Max( nPos, ::nLeft + Len( StrTran( ::aItems[ n ]:cPrompt, "~", "" ) ) + 1 )
nPos := Max( nPos, ::nLeft + Len( StrTran( ::aItems[ n ]:cPrompt, "~" ) ) + 1 )
NEXT
::nRight := nPos + 1
::nBottom := ::nTop + Len( ::aItems ) + 1

View File

@@ -92,7 +92,7 @@ METHOD Display( cClrText, cClrHotKey ) CLASS HBDbMenuItem
LOCAL nAt
hb_dispOutAt( ::nRow, ::nCol, StrTran( ::cPrompt, "~", "" ), cClrText )
hb_dispOutAt( ::nRow, ::nCol, StrTran( ::cPrompt, "~" ), cClrText )
hb_dispOutAt( ::nRow, ::nCol + ;
( nAt := At( "~", ::cPrompt ) ) - 1,;

View File

@@ -958,11 +958,11 @@ METHOD DoCommand( cCommand ) CLASS HBDebugger
FOR n := 1 TO 11
IF At( ",", cParam1 ) != 0
::aColors[ n ] := ;
StrTran( Left( cParam1, At( ",", cParam1 ) - 1 ), '"', "" )
StrTran( Left( cParam1, At( ",", cParam1 ) - 1 ), '"' )
cParam1 := SubStr( cParam1, At( ",", cParam1 ) + 1 )
ELSE
::aColors[ n ] := ;
StrTran( Left( cParam1, At( "}", cParam1 ) - 1 ), '"', "" )
StrTran( Left( cParam1, At( "}", cParam1 ) - 1 ), '"' )
ENDIF
NEXT
::LoadColors()

View File

@@ -1705,9 +1705,9 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
{ {|| FindInSamePath( "x86_64-w64-mingw32-gcc.exe", "gcc" ) }, "mingw64" },; /* mingw-w64 TDM build */
{ {|| FindInPath( "x86_64-w64-mingw32-gcc" ) }, "mingw64", "x86_64-w64-mingw32-" },; /* mingw-w64 build */
{ {|| FindInPath( hbmk[ _HBMK_cCCPREFIX ] + "gcc" + hbmk[ _HBMK_cCCPOSTFIX ] ) }, "mingw" },;
{ {|| iif( ! Empty( GetEnv( "WATCOM" ) ),;
FindInPath( "wcc386" ),;
NIL ) }, "watcom" },;
{ {|| iif( Empty( GetEnv( "WATCOM" ) ),;
NIL ,;
FindInPath( "wcc386" ) ) }, "watcom" },;
{ {|| FindInPath( "clarm.exe" ) }, "msvcarm" },;
{ {|| FindInPath( "armasm.exe" ) }, "msvcarm" },;
{ {|| FindInPath( "ml64.exe" ) }, "msvc64" },;
@@ -3321,7 +3321,7 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
ELSE
/* Use external compiler */
cCommand := FNameEscape( hb_DirSepAdd( PathSepToSelf( hbmk[ _HBMK_cHB_INSTALL_BIN ] ) ) + cBin_CompPRG + cBinExt, hbmk[ _HBMK_nCmd_Esc ] ) +;
iif( ! Empty( hbmk[ _HBMK_aOPTPRG ] ), " " + ArrayToList( hbmk[ _HBMK_aOPTPRG ] ), "" )
iif( Empty( hbmk[ _HBMK_aOPTPRG ] ), "", " " + ArrayToList( hbmk[ _HBMK_aOPTPRG ] ) )
hb_processRun( AllTrim( cCommand ) )
ENDIF
RETURN _ERRLEV_OK
@@ -5470,7 +5470,7 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
aCommand := ArrayAJoin( { { iif( hbmk[ _HBMK_lCreateLib ] .OR. hbmk[ _HBMK_lCreateDyn ], "-n1", "-n2" ) },;
aTO_DO,;
iif( hbmk[ _HBMK_lBLDFLGP ], { hb_Version( HB_VERSION_FLAG_PRG ) }, {} ),;
ListToArray( iif( ! Empty( GetEnv( "HB_USER_PRGFLAGS" ) ), " " + GetEnv( "HB_USER_PRGFLAGS" ), "" ) ),;
ListToArray( iif( Empty( GetEnv( "HB_USER_PRGFLAGS" ) ), "", " " + GetEnv( "HB_USER_PRGFLAGS" ) ) ),;
hbmk[ _HBMK_aOPTPRG ] } )
IF hbmk[ _HBMK_lTRACE ]
@@ -5548,8 +5548,8 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
" " + iif( hbmk[ _HBMK_lCreateLib ] .OR. hbmk[ _HBMK_lCreateDyn ], "-n1", iif( hbmk[ _HBMK_nHBMODE ] != _HBMODE_NATIVE, "-n", "-n2" ) ) +;
" " + iif( _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ), FNameEscape( tmp, hbmk[ _HBMK_nCmd_Esc ], hbmk[ _HBMK_nCmd_FNF ] ), tmp ) +;
iif( hbmk[ _HBMK_lBLDFLGP ], " " + hb_Version( HB_VERSION_FLAG_PRG ), "" ) +;
iif( ! Empty( GetEnv( "HB_USER_PRGFLAGS" ) ), " " + GetEnv( "HB_USER_PRGFLAGS" ), "" ) +;
iif( ! Empty( hbmk[ _HBMK_aOPTPRG ] ), " " + ArrayToList( hbmk[ _HBMK_aOPTPRG ] ), "" )
iif( Empty( GetEnv( "HB_USER_PRGFLAGS" ) ), "", " " + GetEnv( "HB_USER_PRGFLAGS" ) ) +;
iif( Empty( hbmk[ _HBMK_aOPTPRG ] ), "", " " + ArrayToList( hbmk[ _HBMK_aOPTPRG ] ) )
cCommand := AllTrim( cCommand )
@@ -6270,9 +6270,9 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
cOpt_CompCPass := cOpt_CompC
cOpt_CompCPass := StrTran( cOpt_CompCPass, "{FC}" , iif( hbmk[ _HBMK_lBLDFLGC ], hb_Version( HB_VERSION_FLAG_C ) + " ", "" ) +;
GetEnv( "HB_USER_CFLAGS" ) +;
iif( ! Empty( hbmk[ _HBMK_aOPTC ] ), " " + ArrayToList( hbmk[ _HBMK_aOPTC ] ), "" ) +;
iif( ! Empty( tmp4 ), " " + ArrayToList( tmp4 ), "" ) +;
iif( ! Empty( hbmk[ _HBMK_aOPTCUSER ] ), " " + ArrayToList( hbmk[ _HBMK_aOPTCUSER ] ), "" ) )
iif( Empty( hbmk[ _HBMK_aOPTC ] ), "", " " + ArrayToList( hbmk[ _HBMK_aOPTC ] ) ) +;
iif( Empty( tmp4 ), "", " " + ArrayToList( tmp4 ) ) +;
iif( Empty( hbmk[ _HBMK_aOPTCUSER ] ), "", " " + ArrayToList( hbmk[ _HBMK_aOPTCUSER ] ) ) )
cOpt_CompCPass := StrTran( cOpt_CompCPass, "{OD}" , FNameEscape( hb_FNameDir( hbmk[ _HBMK_cPROGNAME ] ), nOpt_Esc, nOpt_FNF ) )
cOpt_CompCPass := StrTran( cOpt_CompCPass, "{DI}" , FNameEscape( hbmk[ _HBMK_cHB_INSTALL_INC ], nOpt_Esc, nOpt_FNF ) )
@@ -6504,13 +6504,13 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
/* Order is significant */
cOpt_Link := StrTran( cOpt_Link, "{FL}" , iif( hbmk[ _HBMK_lBLDFLGL ], hb_Version( HB_VERSION_FLAG_LINKER ) + " ", "" ) +;
GetEnv( "HB_USER_LDFLAGS" ) +;
iif( ! Empty( hbmk[ _HBMK_aOPTL ] ), " " + ArrayToList( hbmk[ _HBMK_aOPTL ] ), "" ) )
iif( Empty( hbmk[ _HBMK_aOPTL ] ), "", " " + ArrayToList( hbmk[ _HBMK_aOPTL ] ) ) )
cOpt_Link := StrTran( cOpt_Link, "{LO}" , ArrayToList( ArrayJoin( l_aOBJ, hbmk[ _HBMK_aOBJUSER ] ),, nOpt_Esc, nOpt_FNF, cObjPrefix ) )
cOpt_Link := StrTran( cOpt_Link, "{LS}" , ArrayToList( ArrayJoin( ListDirExt( hbmk[ _HBMK_aRESSRC ], hbmk[ _HBMK_cWorkDir ], cResExt ), hbmk[ _HBMK_aRESCMP ] ),, nOpt_Esc, nOpt_FNF, cResPrefix ) )
cOpt_Link := StrTran( cOpt_Link, "{LA}" , ArrayToList( l_aOBJA,, nOpt_Esc, nOpt_FNF ) )
cOpt_Link := StrTran( cOpt_Link, "{LL}" , ArrayToList( l_aLIB,, nOpt_Esc, nOpt_FNF, cLibPrefix ) )
cOpt_Link := StrTran( cOpt_Link, "{LB}" , ArrayToList( l_aLIBA,, nOpt_Esc, nOpt_FNF ) )
cOpt_Link := StrTran( cOpt_Link, "{LF}" , iif( ! Empty( hbmk[ _HBMK_aOPTLPOST ] ), " " + ArrayToList( hbmk[ _HBMK_aOPTLPOST ] ), "" ) )
cOpt_Link := StrTran( cOpt_Link, "{LF}" , iif( Empty( hbmk[ _HBMK_aOPTLPOST ] ), "", " " + ArrayToList( hbmk[ _HBMK_aOPTLPOST ] ) ) )
cOpt_Link := StrTran( cOpt_Link, "{IM}" , ArrayToList( hbmk[ _HBMK_aDEF ],, nOpt_Esc, nOpt_FNF, cDefPrefix ) )
cOpt_Link := StrTran( cOpt_Link, "{OE}" , FNameEscape( hbmk[ _HBMK_cPROGNAME ], nOpt_Esc, nOpt_FNF ) )
cOpt_Link := StrTran( cOpt_Link, "{OM}" , FNameEscape( hb_FNameExtSet( hbmk[ _HBMK_cPROGNAME ], ".map" ), nOpt_Esc, nOpt_FNF ) )
@@ -6623,7 +6623,7 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
cOpt_Dyn := StrTran( cOpt_Dyn, "{LS}" , ArrayToList( ArrayJoin( ListDirExt( hbmk[ _HBMK_aRESSRC ], hbmk[ _HBMK_cWorkDir ], cResExt ), hbmk[ _HBMK_aRESCMP ] ),, nOpt_Esc, nOpt_FNF, cResPrefix ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{LL}" , ArrayToList( l_aLIB,, nOpt_Esc, nOpt_FNF, cLibPrefix ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{LB}" , ArrayToList( l_aLIBA,, nOpt_Esc, nOpt_FNF ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{LF}" , iif( ! Empty( hbmk[ _HBMK_aOPTDPOST ] ), " " + ArrayToList( hbmk[ _HBMK_aOPTDPOST ] ), "" ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{LF}" , iif( Empty( hbmk[ _HBMK_aOPTDPOST ] ), "", " " + ArrayToList( hbmk[ _HBMK_aOPTDPOST ] ) ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{IM}" , ArrayToList( hbmk[ _HBMK_aDEF ],, nOpt_Esc, nOpt_FNF, cDefPrefix ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{OD}" , FNameEscape( hbmk[ _HBMK_cPROGNAME ], nOpt_Esc, nOpt_FNF ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{OM}" , FNameEscape( hb_FNameExtSet( hbmk[ _HBMK_cPROGNAME ], ".map" ), nOpt_Esc, nOpt_FNF ) )
@@ -7620,7 +7620,7 @@ STATIC FUNCTION FindNewerHeaders( hbmk, cFileName, tTimeParent, lCMode, cBin_Com
{ iif( hbmk[ _HBMK_lCreateLib ] .OR. hbmk[ _HBMK_lCreateDyn ], "-n1", "-n2" ) },;
{ cFileName },;
iif( hbmk[ _HBMK_lBLDFLGP ], { hb_Version( HB_VERSION_FLAG_PRG ) }, {} ),;
ListToArray( iif( ! Empty( GetEnv( "HB_USER_PRGFLAGS" ) ), " " + GetEnv( "HB_USER_PRGFLAGS" ), "" ) ),;
ListToArray( iif( Empty( GetEnv( "HB_USER_PRGFLAGS" ) ), "", " " + GetEnv( "HB_USER_PRGFLAGS" ) ) ),;
hbmk[ _HBMK_aOPTPRG ] } )
IF ! HB_ISSTRING( tmp := hbmk_hb_compileBuf( hbmk, "harbour", aCommand ) )