diff --git a/harbour/ChangeLog.txt b/harbour/ChangeLog.txt index 7068a8d0d6..23f8f60339 100644 --- a/harbour/ChangeLog.txt +++ b/harbour/ChangeLog.txt @@ -10,6 +10,11 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2013-03-01 14:28 UTC+0100 Viktor Szakats (harbour syenar.net) + * utils/hbmk2/hbmk2.prg + + display warning when invalid value is passed to certain + .hbc directives + 2013-03-01 14:24 UTC+0100 Viktor Szakats (harbour syenar.net) * utils/hbmk2/hbmk2.prg + added support for debugging .hb scripts. diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index a522813f80..70d0eb303c 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -10762,12 +10762,14 @@ STATIC FUNCTION HBC_ProcessOne( hbmk, cFileName, nNestingLevel ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lMT ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lMT ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "pic=" ) ) ) == "pic=" ; cLine := SubStr( cLine, Len( "pic=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lPIC ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lPIC ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "shareddef=" ) ) ) == "shareddef=" ; cLine := SubStr( cLine, Len( "shareddef=" ) + 1 ) @@ -10775,72 +10777,84 @@ STATIC FUNCTION HBC_ProcessOne( hbmk, cFileName, nNestingLevel ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lSHARED ] := .T. ; hbmk[ _HBMK_lSTATICFULL ] := .F. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lSHARED ] := .F. ; hbmk[ _HBMK_lSTATICFULL ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE ENDIF CASE Lower( Left( cLine, Len( "shared=" ) ) ) == "shared=" ; cLine := SubStr( cLine, Len( "shared=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lSHARED ] := .T. ; hbmk[ _HBMK_lSTATICFULL ] := .F. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lSHARED ] := .F. ; hbmk[ _HBMK_lSTATICFULL ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "fullstatic=" ) ) ) == "fullstatic=" ; cLine := SubStr( cLine, Len( "fullstatic=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lSHARED ] := .F. ; hbmk[ _HBMK_lSTATICFULL ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lSHARED ] := .F. ; hbmk[ _HBMK_lSTATICFULL ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "debug=" ) ) ) == "debug=" ; cLine := SubStr( cLine, Len( "debug=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lDEBUG ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lDEBUG ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "optim=" ) ) ) == "optim=" ; cLine := SubStr( cLine, Len( "optim=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lOPTIM ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lOPTIM ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "nulrdd=" ) ) ) == "nulrdd=" ; cLine := SubStr( cLine, Len( "nulrdd=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lNULRDD ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lNULRDD ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "nodefgt=" ) ) ) == "nodefgt=" ; cLine := SubStr( cLine, Len( "nodefgt=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_aLIBCOREGT ] := {} CASE ValueIsF( cLine ) ; hbmk[ _HBMK_aLIBCOREGT ] := hbmk[ _HBMK_aLIBCOREGTDEF ] + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "map=" ) ) ) == "map=" ; cLine := SubStr( cLine, Len( "map=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lMAP ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lMAP ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "hbcppmm=" ) ) ) == "hbcppmm=" ; cLine := SubStr( cLine, Len( "hbcppmm=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lHBCPPMM ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lHBCPPMM ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "implib=" ) ) ) == "implib=" ; cLine := SubStr( cLine, Len( "implib=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lIMPLIB ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lIMPLIB ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "winuni=" ) ) ) == "winuni=" ; cLine := SubStr( cLine, Len( "winuni=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lWINUNI ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lWINUNI ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "strip=" ) ) ) == "strip=" ; cLine := SubStr( cLine, Len( "strip=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lSTRIP ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lSTRIP ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "cpp=" ) ) ) == "cpp=" ; cLine := SubStr( cLine, Len( "cpp=" ) + 1 ) @@ -10848,6 +10862,7 @@ STATIC FUNCTION HBC_ProcessOne( hbmk, cFileName, nNestingLevel ) CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lCPP ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lCPP ] := .F. CASE Lower( cLine ) == "def" ; hbmk[ _HBMK_lCPP ] := NIL + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "warn=" ) ) ) == "warn=" ; cLine := SubStr( cLine, Len( "warn=" ) + 1 ) @@ -10857,12 +10872,14 @@ STATIC FUNCTION HBC_ProcessOne( hbmk, cFileName, nNestingLevel ) CASE Lower( cLine ) == "low" ; hbmk[ _HBMK_nWARN ] := _WARN_LOW CASE Lower( cLine ) == "max" ; hbmk[ _HBMK_nWARN ] := _WARN_MAX CASE Lower( cLine ) == "def" ; hbmk[ _HBMK_nWARN ] := _WARN_DEF + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "safe=" ) ) ) == "safe=" ; cLine := SubStr( cLine, Len( "safe=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lSAFE ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lSAFE ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "compr=" ) ) ) == "compr=" ; cLine := SubStr( cLine, Len( "compr=" ) + 1 ) @@ -10874,6 +10891,7 @@ STATIC FUNCTION HBC_ProcessOne( hbmk, cFileName, nNestingLevel ) #endif CASE Lower( cLine ) == "min" ; hbmk[ _HBMK_nCOMPR ] := _COMPR_MIN CASE Lower( cLine ) == "max" ; hbmk[ _HBMK_nCOMPR ] := _COMPR_MAX + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "head=" ) ) ) == "head=" ; cLine := SubStr( cLine, Len( "head=" ) + 1 ) @@ -10882,18 +10900,21 @@ STATIC FUNCTION HBC_ProcessOne( hbmk, cFileName, nNestingLevel ) CASE Lower( cLine ) == "full" ; hbmk[ _HBMK_nHEAD ] := _HEAD_FULL CASE Lower( cLine ) == "native" ; hbmk[ _HBMK_nHEAD ] := _HEAD_NATIVE CASE Lower( cLine ) == "dep" ; hbmk[ _HBMK_nHEAD ] := _HEAD_DEP + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "run=" ) ) ) == "run=" ; cLine := SubStr( cLine, Len( "run=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lRUN ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lRUN ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "inc=" ) ) ) == "inc=" ; cLine := SubStr( cLine, Len( "inc=" ) + 1 ) DO CASE CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lINC ] := .T. CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lINC ] := .F. + OTHERWISE ; InvalidOptionValue( hbmk, _PAR_NEW( cLineOri, cFileName, cLine:__enumIndex() ) ) ENDCASE CASE Lower( Left( cLine, Len( "plugins=" ) ) ) == "plugins=" ; cLine := SubStr( cLine, Len( "plugins=" ) + 1 )