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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -459,7 +459,7 @@ METHOD GetWvgFont( aFont ) CLASS WvgFontDialog
|
||||
|
||||
LOCAL oWvgFont
|
||||
|
||||
IF aFont == NIL
|
||||
IF ! HB_ISARRAY( aFont )
|
||||
aFont := Wvg_ChooseFont_GetLogFont( ::hWnd )
|
||||
ENDIF
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 )
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 }
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,;
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 ) )
|
||||
|
||||
Reference in New Issue
Block a user