From 021fe7e736a5285fc9ffcd5c1b30184df29d18f0 Mon Sep 17 00:00:00 2001 From: Przemyslaw Czerpak Date: Mon, 22 Jun 2009 10:45:51 +0000 Subject: [PATCH] 2009-06-22 12:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/utils/hbmk2/hbmk2.prg ! fixes in blinker file processing --- harbour/ChangeLog | 4 +++ harbour/utils/hbmk2/hbmk2.prg | 62 +++++++++++++++++++---------------- 2 files changed, 37 insertions(+), 29 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index f21bef6a80..11faf2abbe 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,10 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-06-22 12:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/utils/hbmk2/hbmk2.prg + ! fixes in blinker file processing + 2009-06-22 11:25 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * utils/hbmk2/hbmk2.pt_BR.po * utils/hbmk2/hbmk2.hu_HU.po diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 8a37518904..b22e9d8ea3 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -5808,45 +5808,35 @@ STATIC FUNCTION rtlnk_read( cFileName, aPrevFiles ) RETURN cFileBody +STATIC FUNCTION rtlnk_tokens( cLine ) + LOCAL cCh + + FOR EACH cCh IN @cLine + IF cCh $ Chr( 9 ) + Chr( 11 ) + Chr( 12 ) + ";" + cCh := " " + ENDIF + NEXT + + RETURN hb_ATokens( StrTran( cLine, ",", " , " ) ) + STATIC FUNCTION rtlnk_process( hbmk, cCommands, cFileOut, aFileList, aLibList, ; aPrevFiles ) - LOCAL nCh, nMode LOCAL cLine, cWord + LOCAL nMode + + cCommands := StrTran( StrTran( cCommands, Chr( 13 ) ), "//", "# " ) - cCommands := StrTran( StrTran( cCommands, Chr( 13 ) ), ",", " , " ) - FOR EACH nCh IN @cCommands - SWITCH Asc( nCh ) - CASE 9 - CASE 11 - CASE 12 - CASE Asc( ";" ) - nCh := " " - ENDSWITCH - NEXT nMode := RTLNK_MODE_NONE IF ! ISARRAY( aPrevFiles ) aPrevFiles := {} ENDIF FOR EACH cLine IN hb_ATokens( cCommands, Chr( 10 ) ) cLine := AllTrim( cLine ) - IF !Empty( cLine ) .AND. ! LEFTEQUAL( cLine, "#" ) .AND. ! LEFTEQUAL( cLine, "//" ) - IF nMode == RTLNK_MODE_NONE - /* blinker extension */ - IF LEFTEQUAL( Upper( cLine ), "ECHO " ) - hbmk_OutStd( hbmk, hb_StrFormat( I_( "Blinker ECHO: %1$s" ), SubStr( cLine, 6 ) ) ) - LOOP - ELSEIF LEFTEQUAL( Upper( cLine ), "BLINKER " ) - /* skip blinker commands */ - LOOP - ELSEIF LEFTEQUAL( Upper( cLine ), "MAP" ) - hbmk[ _HBMK_lMAP ] := .T. - ELSEIF LEFTEQUAL( Upper( cLine ), "NOBELL" ) - hbmk[ _HBMK_lBEEP ] := .F. - ELSE /* TODO: add other blinker commands */ - ENDIF - ENDIF - FOR EACH cWord IN hb_aTokens( cLine ) - IF nMode == RTLNK_MODE_OUT + IF !Empty( cLine ) + FOR EACH cWord IN rtlnk_tokens( cLine ) + IF LEFTEQUAL( cWord, "#" ) + EXIT + ELSEIF nMode == RTLNK_MODE_OUT cFileOut := cWord nMode := RTLNK_MODE_FILENEXT ELSEIF nMode == RTLNK_MODE_FILE @@ -5898,6 +5888,20 @@ STATIC FUNCTION rtlnk_process( hbmk, cCommands, cFileOut, aFileList, aLibList, ; LEFTEQUAL( "REFER", cWord ) .OR. ; LEFTEQUAL( "INTO", cWord ) nMode := RTLNK_MODE_SKIP + /* blinker extension */ + ELSEIF LEFTEQUAL( "BLINKER", cWord ) + /* skip blinker commands */ + EXIT + ELSEIF LEFTEQUAL( "ECHO", cWord ) + hbmk_OutStd( hbmk, hb_StrFormat( I_( "Blinker ECHO: %1$s" ), SubStr( cLine, 6 ) ) ) + EXIT + ELSEIF LEFTEQUAL( "MAP", cWord ) + hbmk[ _HBMK_lMAP ] := .T. + EXIT + ELSEIF LEFTEQUAL( "NOBELL", cWord ) + hbmk[ _HBMK_lBEEP ] := .F. + EXIT + ELSE /* TODO: add other blinker commands */ ENDIF ENDIF ENDIF