2010-06-30 22:49 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbrun/hbrun.prg
+ Added load/save of command history.
It can be disabled by -p cmdline option or by adding
a single line "no" (without quotes) to the history filename.
Otherwise last 500 commands will be remembered.
History filename is %APPDATA|HOME%/.harbour/.hbrun_history
if such envvar is present, otherwise hbrun dir. On MS-DOS
it's hbrun dir and hbrunhst.ini.
* utils/hbmk2/hbmk2.prg
* Minor variable/constant name cleanup.
* contrib/hbqt/hbmk2_plugin_qt.prg
! Typo in #if statements.
This commit is contained in:
@@ -16,6 +16,22 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2010-06-30 22:49 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* utils/hbrun/hbrun.prg
|
||||
+ Added load/save of command history.
|
||||
It can be disabled by -p cmdline option or by adding
|
||||
a single line "no" (without quotes) to the history filename.
|
||||
Otherwise last 500 commands will be remembered.
|
||||
History filename is %APPDATA|HOME%/.harbour/.hbrun_history
|
||||
if such envvar is present, otherwise hbrun dir. On MS-DOS
|
||||
it's hbrun dir and hbrunhst.ini.
|
||||
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
* Minor variable/constant name cleanup.
|
||||
|
||||
* contrib/hbqt/hbmk2_plugin_qt.prg
|
||||
! Typo in #if statements.
|
||||
|
||||
2010-06-30 10:23 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
|
||||
* contrib/hbide/idebrowse.prg
|
||||
! Fixed: closing a table in ideDBU was causing RTE.
|
||||
|
||||
@@ -77,7 +77,7 @@ FUNCTION hbmk2_plugin_qt( hbmk2 )
|
||||
NEXT
|
||||
|
||||
FOR EACH cSrc IN hbmk2[ "vars" ][ "aQRC_Src" ]
|
||||
#if __OWN_QRC_GENERATOR__
|
||||
#ifdef __OWN_QRC_GENERATOR__
|
||||
cDst := hbmk2_FNameDirExtSet( "rcc_" + hbmk2_FNameNameGet( cSrc ), hbmk2[ "cWorkDir" ], ".c" )
|
||||
AAdd( hbmk2[ "vars" ][ "aQRC_Dst" ], cDst )
|
||||
hbmk2_AddInput_C( hbmk2, cDst )
|
||||
@@ -228,7 +228,7 @@ FUNCTION hbmk2_plugin_qt( hbmk2 )
|
||||
|
||||
IF lBuildIt
|
||||
|
||||
#if __OWN_QRC_GENERATOR__
|
||||
#ifdef __OWN_QRC_GENERATOR__
|
||||
FClose( hb_FTempCreateEx( @cTmp ) )
|
||||
|
||||
cCommand := cRCC_BIN +;
|
||||
|
||||
@@ -192,12 +192,12 @@ REQUEST hbmk_KEYW
|
||||
#define _ESC_DBLQUOTE 1
|
||||
#define _ESC_SGLQUOTE_WATCOM 2
|
||||
#define _ESC_NIX 3
|
||||
#define _ESC_BACKSLASH 4
|
||||
#define _ESC_BCKSLASH 4
|
||||
|
||||
#define _FNF_BACKSLASH 0
|
||||
#define _FNF_FWSLASH 1
|
||||
#define _FNF_FWSLASHCYGWIN 2
|
||||
#define _FNF_FWSLASHMSYS 3
|
||||
#define _FNF_BCKSLASH 0
|
||||
#define _FNF_FWDSLASH 1
|
||||
#define _FNF_FWDSLASHCYGWIN 2
|
||||
#define _FNF_FWDSLASHMSYS 3
|
||||
|
||||
#define _MACRO_NO_PREFIX ""
|
||||
#define _MACRO_NORM_PREFIX "$"
|
||||
@@ -2833,9 +2833,9 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
( hbmk[ _HBMK_cPLAT ] == "win" .AND. hbmk[ _HBMK_cCOMP ] == "cygwin" )
|
||||
|
||||
IF hbmk[ _HBMK_cCOMP ] == "cygwin"
|
||||
hbmk[ _HBMK_nCmd_FNF ] := _FNF_FWSLASHCYGWIN
|
||||
hbmk[ _HBMK_nCmd_FNF ] := _FNF_FWDSLASHCYGWIN
|
||||
ELSE
|
||||
hbmk[ _HBMK_nCmd_FNF ] := _FNF_FWSLASH
|
||||
hbmk[ _HBMK_nCmd_FNF ] := _FNF_FWDSLASH
|
||||
ENDIF
|
||||
|
||||
IF hbmk[ _HBMK_lDEBUG ]
|
||||
@@ -2981,7 +2981,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
ENDIF
|
||||
|
||||
CASE hbmk[ _HBMK_cPLAT ] == "os2" .AND. hbmk[ _HBMK_cCOMP ] $ "gcc|gccomf"
|
||||
hbmk[ _HBMK_nCmd_FNF ] := _FNF_BACKSLASH
|
||||
hbmk[ _HBMK_nCmd_FNF ] := _FNF_BCKSLASH
|
||||
IF hbmk[ _HBMK_lDEBUG ]
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-g" )
|
||||
ENDIF
|
||||
@@ -3346,7 +3346,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
ENDIF
|
||||
|
||||
CASE hbmk[ _HBMK_cPLAT ] == "win" .AND. hbmk[ _HBMK_cCOMP ] == "bcc"
|
||||
hbmk[ _HBMK_nCmd_FNF ] := _FNF_BACKSLASH
|
||||
hbmk[ _HBMK_nCmd_FNF ] := _FNF_BCKSLASH
|
||||
#if defined( __PLATFORM__UNIX )
|
||||
hbmk[ _HBMK_nCmd_Esc ] := _ESC_NIX
|
||||
#else
|
||||
@@ -3442,7 +3442,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
CASE ( hbmk[ _HBMK_cPLAT ] == "win" .AND. hbmk[ _HBMK_cCOMP ] $ "msvc|msvc64|msvcia64|icc|iccia64" ) .OR. ;
|
||||
( hbmk[ _HBMK_cPLAT ] == "wce" .AND. hbmk[ _HBMK_cCOMP ] == "msvcarm" ) /* NOTE: Cross-platform: wce/ARM on win/x86 */
|
||||
|
||||
hbmk[ _HBMK_nCmd_FNF ] := _FNF_BACKSLASH
|
||||
hbmk[ _HBMK_nCmd_FNF ] := _FNF_BCKSLASH
|
||||
#if defined( __PLATFORM__UNIX )
|
||||
hbmk[ _HBMK_nCmd_Esc ] := _ESC_NIX
|
||||
#else
|
||||
@@ -3659,7 +3659,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
( hbmk[ _HBMK_cPLAT ] == "wce" .AND. hbmk[ _HBMK_cCOMP ] == "poccarm" ) .OR. ; /* NOTE: Cross-platform: wce/ARM on win/x86 */
|
||||
( hbmk[ _HBMK_cPLAT ] == "win" .AND. hbmk[ _HBMK_cCOMP ] == "xcc" )
|
||||
|
||||
hbmk[ _HBMK_nCmd_FNF ] := _FNF_BACKSLASH
|
||||
hbmk[ _HBMK_nCmd_FNF ] := _FNF_BCKSLASH
|
||||
#if defined( __PLATFORM__UNIX )
|
||||
hbmk[ _HBMK_nCmd_Esc ] := _ESC_NIX
|
||||
#else
|
||||
@@ -7213,19 +7213,19 @@ STATIC FUNCTION FN_Escape( cFileName, nEscapeMode, nFNNotation )
|
||||
#if defined( __PLATFORM__WINDOWS ) .OR. ;
|
||||
defined( __PLATFORM__DOS ) .OR. ;
|
||||
defined( __PLATFORM__OS2 )
|
||||
DEFAULT nFNNotation TO _FNF_BACKSLASH
|
||||
DEFAULT nFNNotation TO _FNF_BCKSLASH
|
||||
#else
|
||||
DEFAULT nFNNotation TO _FNF_FWSLASH
|
||||
DEFAULT nFNNotation TO _FNF_FWDSLASH
|
||||
#endif
|
||||
|
||||
SWITCH nFNNotation
|
||||
CASE _FNF_BACKSLASH
|
||||
CASE _FNF_BCKSLASH
|
||||
cFileName := StrTran( cFileName, "/", "\" )
|
||||
EXIT
|
||||
CASE _FNF_FWSLASH
|
||||
CASE _FNF_FWDSLASH
|
||||
cFileName := StrTran( cFileName, "\", "/" )
|
||||
EXIT
|
||||
CASE _FNF_FWSLASHCYGWIN
|
||||
CASE _FNF_FWDSLASHCYGWIN
|
||||
hb_FNameSplit( cFileName, @cDir, @cName, @cExt, @cDrive )
|
||||
IF ! Empty( cDrive )
|
||||
cDir := SubStr( cDir, Len( cDrive + hb_osDriveSeparator() ) + 1 )
|
||||
@@ -7237,7 +7237,7 @@ STATIC FUNCTION FN_Escape( cFileName, nEscapeMode, nFNNotation )
|
||||
ENDIF
|
||||
cFileName := StrTran( cFileName, "\", "/" )
|
||||
EXIT
|
||||
CASE _FNF_FWSLASHMSYS
|
||||
CASE _FNF_FWDSLASHMSYS
|
||||
hb_FNameSplit( cFileName, @cDir, @cName, @cExt, @cDrive )
|
||||
IF ! Empty( cDrive )
|
||||
cDir := SubStr( cDir, Len( cDrive + hb_osDriveSeparator() ) + 1 )
|
||||
@@ -7273,7 +7273,7 @@ STATIC FUNCTION FN_Escape( cFileName, nEscapeMode, nFNNotation )
|
||||
CASE _ESC_NIX
|
||||
cFileName := "'" + StrTran( cFileName, "'", "'\''" ) + "'"
|
||||
EXIT
|
||||
CASE _ESC_BACKSLASH
|
||||
CASE _ESC_BCKSLASH
|
||||
cFileName := StrTran( cFileName, "\", "\\" )
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
@@ -7416,10 +7416,10 @@ STATIC FUNCTION HBC_ProcessOne( hbmk, cFileName, nNestingLevel )
|
||||
|
||||
cFile := MemoRead( cFileName ) /* NOTE: Intentionally using MemoRead() which handles EOF char. */
|
||||
|
||||
IF ! hb_osNewLine() == _CHR_EOL
|
||||
IF !( hb_osNewLine() == _CHR_EOL )
|
||||
cFile := StrTran( cFile, hb_osNewLine(), _CHR_EOL )
|
||||
ENDIF
|
||||
IF ! hb_osNewLine() == Chr( 13 ) + Chr( 10 )
|
||||
IF !( hb_osNewLine() == Chr( 13 ) + Chr( 10 ) )
|
||||
cFile := StrTran( cFile, Chr( 13 ) + Chr( 10 ), _CHR_EOL )
|
||||
ENDIF
|
||||
|
||||
@@ -7879,10 +7879,10 @@ STATIC PROCEDURE HBM_Load( hbmk, aParams, cFileName, nNestingLevel )
|
||||
|
||||
cFile := MemoRead( cFileName ) /* NOTE: Intentionally using MemoRead() which handles EOF char. */
|
||||
|
||||
IF ! hb_osNewLine() == _CHR_EOL
|
||||
IF !( hb_osNewLine() == _CHR_EOL )
|
||||
cFile := StrTran( cFile, hb_osNewLine(), _CHR_EOL )
|
||||
ENDIF
|
||||
IF ! hb_osNewLine() == Chr( 13 ) + Chr( 10 )
|
||||
IF !( hb_osNewLine() == Chr( 13 ) + Chr( 10 ) )
|
||||
cFile := StrTran( cFile, Chr( 13 ) + Chr( 10 ), _CHR_EOL )
|
||||
ENDIF
|
||||
|
||||
@@ -8370,7 +8370,7 @@ STATIC PROCEDURE PlatformPRGFlags( hbmk, aOPTPRG )
|
||||
#define RTLNK_MODE_SKIPNEXT 7
|
||||
|
||||
STATIC PROCEDURE rtlnk_libtrans( aLibList )
|
||||
STATIC hTrans := { ;
|
||||
STATIC s_hTrans := { ;
|
||||
"CT" => "hbct" , ;
|
||||
"CTP" => "hbct" , ;
|
||||
"CLASSY" => NIL , ;
|
||||
@@ -8402,8 +8402,8 @@ STATIC PROCEDURE rtlnk_libtrans( aLibList )
|
||||
IF Lower( Right( cLib, 4 ) ) == ".lib"
|
||||
cLib := Left( cLib, Len( cLib ) - 4 )
|
||||
ENDIF
|
||||
IF Upper( cLib ) $ hTrans
|
||||
cLib := hTrans[ Upper( cLib ) ]
|
||||
IF Upper( cLib ) $ s_hTrans
|
||||
cLib := s_hTrans[ Upper( cLib ) ]
|
||||
IF cLib == NIL
|
||||
hb_ADel( aLibList, cLib:__enumIndex(), .T. )
|
||||
ENDIF
|
||||
@@ -8413,7 +8413,7 @@ STATIC PROCEDURE rtlnk_libtrans( aLibList )
|
||||
RETURN
|
||||
|
||||
STATIC PROCEDURE rtlnk_filetrans( aFileList )
|
||||
STATIC hTrans := { ;
|
||||
STATIC s_hTrans := { ;
|
||||
"CTUS" => NIL , ;
|
||||
"CTUSP" => NIL , ;
|
||||
"CTINT" => NIL , ;
|
||||
@@ -8441,8 +8441,8 @@ STATIC PROCEDURE rtlnk_filetrans( aFileList )
|
||||
IF Lower( Right( cFile, 4 ) ) == ".obj"
|
||||
cFile := Left( cFile, Len( cFile ) - 4 )
|
||||
ENDIF
|
||||
IF Upper( cFile ) $ hTrans
|
||||
cFile := hTrans[ Upper( cFile ) ]
|
||||
IF Upper( cFile ) $ s_hTrans
|
||||
cFile := s_hTrans[ Upper( cFile ) ]
|
||||
IF cFile == NIL
|
||||
hb_ADel( aFileList, cFile:__enumIndex(), .T. )
|
||||
ENDIF
|
||||
|
||||
@@ -74,6 +74,8 @@ REQUEST HB_GT_STD
|
||||
STATIC s_nRow := 2
|
||||
STATIC s_nCol := 0
|
||||
STATIC s_aIncDir := {}
|
||||
STATIC s_aHistory := {}
|
||||
STATIC s_lPreserveHistory := .T.
|
||||
|
||||
/* ********************************************************************** */
|
||||
|
||||
@@ -99,11 +101,16 @@ PROCEDURE _APPMAIN( cFile, ... )
|
||||
CASE "--help"
|
||||
CASE "/?"
|
||||
CASE "/h"
|
||||
HB_DotUsage()
|
||||
hbrun_Usage()
|
||||
EXIT
|
||||
CASE "-v"
|
||||
CASE "/v"
|
||||
HB_DotPrompt( "? hb_version()" )
|
||||
hbrun_Prompt( "? hb_version()" )
|
||||
EXIT
|
||||
CASE "-p"
|
||||
CASE "/p"
|
||||
s_lPreserveHistory := .F.
|
||||
hbrun_Prompt()
|
||||
EXIT
|
||||
OTHERWISE
|
||||
hb_FNameSplit( cFile, NIL, NIL, @cExt )
|
||||
@@ -115,11 +122,11 @@ PROCEDURE _APPMAIN( cFile, ... )
|
||||
CASE ".dbf"
|
||||
EXIT
|
||||
OTHERWISE
|
||||
cExt := HB_DotFileSig( cFile )
|
||||
cExt := hbrun_FileSig( cFile )
|
||||
ENDSWITCH
|
||||
SWITCH cExt
|
||||
CASE ".dbf"
|
||||
HB_DotPrompt( "USE " + cFile )
|
||||
hbrun_Prompt( "USE " + cFile )
|
||||
EXIT
|
||||
CASE ".prg"
|
||||
CASE ".hbs"
|
||||
@@ -135,12 +142,18 @@ PROCEDURE _APPMAIN( cFile, ... )
|
||||
ENDSWITCH
|
||||
ENDSWITCH
|
||||
ELSE
|
||||
HB_DotPrompt()
|
||||
hbrun_Prompt()
|
||||
ENDIF
|
||||
|
||||
RETURN
|
||||
|
||||
STATIC FUNCTION HB_DotFileSig( cFile )
|
||||
EXIT PROCEDURE hbrun_exit()
|
||||
|
||||
hbrun_HistorySave()
|
||||
|
||||
RETURN
|
||||
|
||||
STATIC FUNCTION hbrun_FileSig( cFile )
|
||||
LOCAL hFile
|
||||
LOCAL cBuff, cSig, cExt
|
||||
|
||||
@@ -158,23 +171,26 @@ STATIC FUNCTION HB_DotFileSig( cFile )
|
||||
|
||||
RETURN cExt
|
||||
|
||||
STATIC PROCEDURE HB_DotPrompt( cCommand )
|
||||
STATIC PROCEDURE hbrun_Prompt( cCommand )
|
||||
LOCAL GetList
|
||||
LOCAL cLine
|
||||
LOCAL nMaxRow, nMaxCol
|
||||
LOCAL aHistory, nHistIndex
|
||||
LOCAL nHistIndex
|
||||
LOCAL bKeyUP, bKeyDown, bKeyIns
|
||||
|
||||
CLEAR SCREEN
|
||||
SET SCOREBOARD OFF
|
||||
GetList := {}
|
||||
aHistory := { padr( "quit", HB_LINE_LEN ) }
|
||||
nHistIndex := 2
|
||||
|
||||
hbrun_HistoryLoad()
|
||||
|
||||
AADD( s_aHistory, padr( "quit", HB_LINE_LEN ) )
|
||||
nHistIndex := Len( s_aHistory ) + 1
|
||||
|
||||
IF ISCHARACTER( cCommand )
|
||||
AADD( aHistory, PadR( cCommand, HB_LINE_LEN ) )
|
||||
HB_DotInfo( cCommand )
|
||||
HB_DotExec( cCommand )
|
||||
AADD( s_aHistory, PadR( cCommand, HB_LINE_LEN ) )
|
||||
hbrun_Info( cCommand )
|
||||
hbrun_Exec( cCommand )
|
||||
ELSE
|
||||
cCommand := ""
|
||||
ENDIF
|
||||
@@ -185,7 +201,7 @@ STATIC PROCEDURE HB_DotPrompt( cCommand )
|
||||
cLine := Space( HB_LINE_LEN )
|
||||
ENDIF
|
||||
|
||||
HB_DotInfo( cCommand )
|
||||
hbrun_Info( cCommand )
|
||||
|
||||
nMaxRow := MaxRow()
|
||||
nMaxCol := MaxCol()
|
||||
@@ -199,12 +215,12 @@ STATIC PROCEDURE HB_DotPrompt( cCommand )
|
||||
{|| SetCursor( IIF( ReadInsert( !ReadInsert() ), ;
|
||||
SC_NORMAL, SC_INSERT ) ) } )
|
||||
bKeyUp := SetKey( K_UP, ;
|
||||
{|| IIF( nHistIndex > 1, ;
|
||||
cLine := aHistory[ --nHistIndex ], ) } )
|
||||
{|| IIF( nHistIndex > 1, ;
|
||||
cLine := s_aHistory[ --nHistIndex ], ) } )
|
||||
bKeyDown := SetKey( K_DOWN, ;
|
||||
{|| cLine := IIF( nHistIndex < LEN( aHistory ), ;
|
||||
aHistory[ ++nHistIndex ], ;
|
||||
( nHistIndex := LEN( aHistory ) + 1, Space( HB_LINE_LEN ) ) ) } )
|
||||
{|| cLine := IIF( nHistIndex < LEN( s_aHistory ), ;
|
||||
s_aHistory[ ++nHistIndex ], ;
|
||||
( nHistIndex := LEN( s_aHistory ) + 1, Space( HB_LINE_LEN ) ) ) } )
|
||||
|
||||
READ
|
||||
|
||||
@@ -220,22 +236,22 @@ STATIC PROCEDURE HB_DotPrompt( cCommand )
|
||||
LOOP
|
||||
ENDIF
|
||||
|
||||
IF EMPTY( aHistory ) .OR. ! ATAIL( aHistory ) == cLine
|
||||
IF LEN( aHistory ) < HB_HISTORY_LEN
|
||||
AADD( aHistory, cLine )
|
||||
IF EMPTY( s_aHistory ) .OR. ! ATAIL( s_aHistory ) == cLine
|
||||
IF LEN( s_aHistory ) < HB_HISTORY_LEN
|
||||
AADD( s_aHistory, cLine )
|
||||
ELSE
|
||||
ADEL( aHistory, 1 )
|
||||
aHistory[ LEN( aHistory ) ] := cLine
|
||||
ADEL( s_aHistory, 1 )
|
||||
s_aHistory[ LEN( s_aHistory ) ] := cLine
|
||||
ENDIF
|
||||
ENDIF
|
||||
nHistIndex := LEN( aHistory ) + 1
|
||||
nHistIndex := LEN( s_aHistory ) + 1
|
||||
|
||||
cCommand := AllTrim( cLine, " " )
|
||||
cLine := NIL
|
||||
@ nMaxRow, 0 CLEAR
|
||||
HB_DotInfo( cCommand )
|
||||
hbrun_Info( cCommand )
|
||||
|
||||
HB_DotExec( cCommand )
|
||||
hbrun_Exec( cCommand )
|
||||
|
||||
IF s_nRow >= MaxRow()
|
||||
Scroll( 2, 0, MaxRow(), MaxCol(), 1 )
|
||||
@@ -248,7 +264,7 @@ STATIC PROCEDURE HB_DotPrompt( cCommand )
|
||||
|
||||
/* ********************************************************************** */
|
||||
|
||||
STATIC PROCEDURE HB_DotUsage()
|
||||
STATIC PROCEDURE hbrun_Usage()
|
||||
|
||||
OutStd( 'Harbour "DOt Prompt" Console / runner ' + HBRawVersion() + HB_OSNewLine() +;
|
||||
"Copyright (c) 1999-2010, Przemyslaw Czerpak" + HB_OSNewLine() + ;
|
||||
@@ -260,7 +276,7 @@ STATIC PROCEDURE HB_DotUsage()
|
||||
|
||||
/* ********************************************************************** */
|
||||
|
||||
STATIC PROCEDURE HB_DotInfo( cCommand )
|
||||
STATIC PROCEDURE hbrun_Info( cCommand )
|
||||
|
||||
LOCAL r := Row(), c := Col()
|
||||
|
||||
@@ -291,7 +307,7 @@ STATIC PROCEDURE HB_DotInfo( cCommand )
|
||||
|
||||
/* ********************************************************************** */
|
||||
|
||||
STATIC PROCEDURE HB_DotErr( oErr, cCommand )
|
||||
STATIC PROCEDURE hbrun_Err( oErr, cCommand )
|
||||
|
||||
LOCAL xArg, cMessage
|
||||
|
||||
@@ -315,7 +331,7 @@ STATIC PROCEDURE HB_DotErr( oErr, cCommand )
|
||||
|
||||
/* ********************************************************************** */
|
||||
|
||||
STATIC PROCEDURE HB_DotExec( cCommand )
|
||||
STATIC PROCEDURE hbrun_Exec( cCommand )
|
||||
LOCAL pHRB, cHRB, cFunc, bBlock, cEol
|
||||
|
||||
cEol := hb_osNewLine()
|
||||
@@ -325,7 +341,7 @@ STATIC PROCEDURE HB_DotExec( cCommand )
|
||||
" RETURN __MVSETBASE()" + cEol + ;
|
||||
"}" + cEol
|
||||
|
||||
BEGIN SEQUENCE WITH {|oErr| HB_DotErr( oErr, cCommand ) }
|
||||
BEGIN SEQUENCE WITH {|oErr| hbrun_Err( oErr, cCommand ) }
|
||||
|
||||
cHRB := HB_COMPILEFROMBUF( cFunc, HB_ARGV( 0 ), "-n", "-q2", s_aIncDir )
|
||||
IF cHRB == NIL
|
||||
@@ -354,3 +370,70 @@ STATIC FUNCTION HBRawVersion()
|
||||
RETURN StrTran( Version(), "Harbour " )
|
||||
|
||||
/* ********************************************************************** */
|
||||
|
||||
#define _HISTORY_DISABLE_LINE "no"
|
||||
#define _HISTORY_SAVE_LINE_MAX 500
|
||||
|
||||
STATIC PROCEDURE hbrun_HistoryLoad()
|
||||
LOCAL cHistory
|
||||
LOCAL cLine
|
||||
|
||||
IF s_lPreserveHistory
|
||||
cHistory := StrTran( MemoRead( hbrun_HistoryFileName() ), Chr( 13 ) )
|
||||
IF Left( cHistory, Len( _HISTORY_DISABLE_LINE + Chr( 10 ) ) ) == _HISTORY_DISABLE_LINE + Chr( 10 )
|
||||
s_lPreserveHistory := .F.
|
||||
ELSE
|
||||
FOR EACH cLine IN hb_ATokens( StrTran( cHistory, Chr( 13 ) ), Chr( 10 ) )
|
||||
IF ! Empty( cLine )
|
||||
AAdd( s_aHistory, PadR( cLine, HB_LINE_LEN ) )
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN
|
||||
|
||||
STATIC PROCEDURE hbrun_HistorySave()
|
||||
LOCAL cHistory
|
||||
LOCAL tmp
|
||||
|
||||
IF s_lPreserveHistory
|
||||
cHistory := ""
|
||||
FOR tmp := Max( 1, Len( s_aHistory ) - _HISTORY_SAVE_LINE_MAX ) TO Len( s_aHistory )
|
||||
IF !( Lower( AllTrim( s_aHistory[ tmp ] ) ) == "quit" )
|
||||
cHistory += AllTrim( s_aHistory[ tmp ] ) + hb_osNewLine()
|
||||
ENDIF
|
||||
NEXT
|
||||
hb_MemoWrit( hbrun_HistoryFileName(), cHistory )
|
||||
ENDIF
|
||||
|
||||
RETURN
|
||||
|
||||
STATIC FUNCTION hbrun_HistoryFileName()
|
||||
LOCAL cEnvVar
|
||||
LOCAL cDir
|
||||
LOCAL cFileName
|
||||
|
||||
#if defined( __PLATFORM__WINDOWS )
|
||||
cEnvVar := "APPDATA"
|
||||
#else
|
||||
cEnvVar := "HOME"
|
||||
#endif
|
||||
|
||||
#if defined( __PLATFORM__DOS )
|
||||
cFileName := "hbrunhst.ini"
|
||||
#else
|
||||
cFileName := ".hbrun_history"
|
||||
#endif
|
||||
|
||||
IF ! Empty( GetEnv( cEnvVar ) )
|
||||
cDir := GetEnv( cEnvVar ) + hb_osPathSeparator() + ".harbour"
|
||||
ELSE
|
||||
cDir := hb_dirBase()
|
||||
ENDIF
|
||||
|
||||
IF ! hb_dirExists( cDir )
|
||||
MakeDir( cDir )
|
||||
ENDIF
|
||||
|
||||
RETURN cDir + hb_osPathSeparator() + cFileName
|
||||
|
||||
Reference in New Issue
Block a user