From f36a5dbd3ce89b5b330e810aabd55f2302e0d38f Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 15 Jun 2012 01:21:55 +0000 Subject: [PATCH] 2012-06-15 03:17 UTC+0200 Viktor Szakats (harbour syenar.net) * bin/3rdpatch.hb * contrib/make.hb * changed to be executed by hbmk2 - contrib/hbrun/extdyn.prg - contrib/hbrun/hbrun.prg - contrib/hbrun/hbrun.rc - contrib/hbrun/headers.prg - contrib/hbrun/p_ext.hb - contrib/hbrun/plugins.prg * contrib/hbrun/hbrun.hbp % changed to use hbmk2 sources and make file to build hbrun, implementing the build method described in previous ChangeLog entry. The lost feature is netio management plugin, which is now not loaded by default. Plus, since this is a static build, dynamic extensions don't work. * contrib/make.hb * src/pp/ppcore.c * deleted reference to hbrun in comment * contrib/hbnetio/utils/hbnetio/netiocon.prg * contrib/hbnetio/utils/hbnetio/netiomgm.hb * __hbrun_plugin() -> __hbshell_plugin() * INSTALL * minor in previous change --- harbour/ChangeLog | 29 + harbour/INSTALL | 4 +- harbour/bin/3rdpatch.hb | 2 +- .../hbnetio/utils/hbnetio/netiocon.prg | 2 +- .../contrib/hbnetio/utils/hbnetio/netiomgm.hb | 2 +- harbour/contrib/hbrun/extdyn.prg | 122 --- harbour/contrib/hbrun/hbrun.hbp | 42 +- harbour/contrib/hbrun/hbrun.prg | 878 ------------------ harbour/contrib/hbrun/hbrun.rc | 13 - harbour/contrib/hbrun/headers.prg | 132 --- harbour/contrib/hbrun/p_ext.hb | 113 --- harbour/contrib/hbrun/plugins.prg | 75 -- harbour/contrib/make.hb | 6 +- harbour/src/pp/ppcore.c | 2 +- 14 files changed, 41 insertions(+), 1381 deletions(-) delete mode 100644 harbour/contrib/hbrun/extdyn.prg delete mode 100644 harbour/contrib/hbrun/hbrun.prg delete mode 100644 harbour/contrib/hbrun/hbrun.rc delete mode 100644 harbour/contrib/hbrun/headers.prg delete mode 100644 harbour/contrib/hbrun/p_ext.hb delete mode 100644 harbour/contrib/hbrun/plugins.prg diff --git a/harbour/ChangeLog b/harbour/ChangeLog index eb83bec340..c11c05b1c9 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,35 @@ The license applies to all entries newer than 2009-04-28. */ +2012-06-15 03:17 UTC+0200 Viktor Szakats (harbour syenar.net) + * bin/3rdpatch.hb + * contrib/make.hb + * changed to be executed by hbmk2 + + - contrib/hbrun/extdyn.prg + - contrib/hbrun/hbrun.prg + - contrib/hbrun/hbrun.rc + - contrib/hbrun/headers.prg + - contrib/hbrun/p_ext.hb + - contrib/hbrun/plugins.prg + * contrib/hbrun/hbrun.hbp + % changed to use hbmk2 sources and make file to build hbrun, + implementing the build method described in previous ChangeLog + entry. The lost feature is netio management plugin, which + is now not loaded by default. Plus, since this is a static + build, dynamic extensions don't work. + + * contrib/make.hb + * src/pp/ppcore.c + * deleted reference to hbrun in comment + + * contrib/hbnetio/utils/hbnetio/netiocon.prg + * contrib/hbnetio/utils/hbnetio/netiomgm.hb + * __hbrun_plugin() -> __hbshell_plugin() + + * INSTALL + * minor in previous change + 2012-06-15 02:26 UTC+0200 Viktor Szakats (harbour syenar.net) * contrib/make.hb * contrib/hbrun/hbrun.hbp diff --git a/harbour/INSTALL b/harbour/INSTALL index 6325dcf726..4f6525ba7c 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -1362,14 +1362,14 @@ HARBOUR - To run the interactive shell ('dot' prompt): 'hbmk2 .' - To run a Harbour script: - 'hbmk2 script.hb []' + 'hbmk2 script.hb []' Examples to build and run Harbour portable binary (aka precompiled script): - To build: 'hbmk2 -gh script.hb' - To run result of above: - 'hbmk2 script.hrb []' + 'hbmk2 script.hrb []' Examples to build a Harbour application: diff --git a/harbour/bin/3rdpatch.hb b/harbour/bin/3rdpatch.hb index 32c054995f..cea854d6fd 100755 --- a/harbour/bin/3rdpatch.hb +++ b/harbour/bin/3rdpatch.hb @@ -1,4 +1,4 @@ -#!/usr/bin/hbrun --hb:gtcgi +#!/usr/bin/hbmk2 /* * $Id$ */ diff --git a/harbour/contrib/hbnetio/utils/hbnetio/netiocon.prg b/harbour/contrib/hbnetio/utils/hbnetio/netiocon.prg index 608a73ae76..9b0f397b93 100644 --- a/harbour/contrib/hbnetio/utils/hbnetio/netiocon.prg +++ b/harbour/contrib/hbnetio/utils/hbnetio/netiocon.prg @@ -50,7 +50,7 @@ PROCEDURE hbnetiocon_cmdUI( cIP, nPort, cPassword ) LOCAL lQuit - LOCAL netclictrl := __hbrun_plugin() + LOCAL netclictrl := __hbshell_plugin() LOCAL netclictx LOCAL netcliID diff --git a/harbour/contrib/hbnetio/utils/hbnetio/netiomgm.hb b/harbour/contrib/hbnetio/utils/hbnetio/netiomgm.hb index 98b22bd7d7..cd7c24f184 100644 --- a/harbour/contrib/hbnetio/utils/hbnetio/netiomgm.hb +++ b/harbour/contrib/hbnetio/utils/hbnetio/netiomgm.hb @@ -39,7 +39,7 @@ #define _NETIOCLI_hConIO 8 #define _NETIOCLI_MAX_ 8 -FUNCTION __hbrun_plugin() +FUNCTION __hbshell_plugin() RETURN {; "id" => "netio",; "init" => {| hConIO, ... | hbnetiocon_init( hConIO, ... ) } ,; diff --git a/harbour/contrib/hbrun/extdyn.prg b/harbour/contrib/hbrun/extdyn.prg deleted file mode 100644 index 8dac427232..0000000000 --- a/harbour/contrib/hbrun/extdyn.prg +++ /dev/null @@ -1,122 +0,0 @@ -/* - * $Id$ - */ - -/* - * Harbour Project source code: - * extensions (dynamic + core) - * - * Copyright 2011 Viktor Szakats (harbour syenar.net) - * www - http://harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). - * - * As a special exception, the Harbour Project gives permission for - * additional uses of the text contained in its release of Harbour. - * - * The exception is that, if you link the Harbour libraries with other - * files to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the Harbour library code into it. - * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the Harbour - * Project under the name Harbour. If you copy code from other - * Harbour Project or Free Software Foundation releases into a copy of - * Harbour, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. - * - * If you write modifications of your own for Harbour, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - * - */ - -#include "hbver.ch" - -STATIC s_hLib := { => } - -PROCEDURE __hbrun_extensions_dynamic_init( aDynamic ) - LOCAL tmp - LOCAL nCount - LOCAL cName - - nCount := __dynsCount() - FOR tmp := 1 TO nCount - cName := __dynsGetName( tmp ) - IF Left( cName, Len( "__HBEXTERN__" ) ) == "__HBEXTERN__" .AND. ; - !( "|" + cName + "|" $ "|__HBEXTERN__HBCPAGE__|" ) - s_hLib[ Lower( SubStr( cName, Len( "__HBEXTERN__" ) + 1, Len( cName ) - Len( "__HBEXTERN__" ) - Len( "__" ) ) ) ] := NIL - ENDIF - NEXT - - IF ! Empty( aDynamic ) - FOR EACH cName IN aDynamic - __hbrun_extensions_dynamic_load( cName ) - NEXT - ENDIF - - RETURN - -/* Requires hbrun to be built in -shared mode */ - -PROCEDURE __hbrun_extensions_dynamic_load( cName ) - LOCAL cFileName - LOCAL hLib - - IF ! Empty( cName ) - IF hb_Version( HB_VERSION_SHARED ) - IF !( cName $ s_hLib ) - cFileName := __hbrun_FindInPath( hb_libName( cName + hb_libPostfix() ),; - iif( hb_Version( HB_VERSION_UNIX_COMPAT ), GetEnv( "LD_LIBRARY_PATH" ), GetEnv( "PATH" ) ) ) - IF ! Empty( cFileName ) - hLib := hb_libLoad( cFileName ) - IF ! Empty( hLib ) - s_hLib[ cName ] := hLib - ENDIF - ENDIF - ENDIF - ELSE - OutErr( hb_StrFormat( "Cannot load %1$s. Requires -shared hbrun build.", cName ) + hb_eol() ) - ENDIF - ENDIF - - RETURN - -PROCEDURE __hbrun_extensions_dynamic_unload( cName ) - - IF cName $ s_hLib .AND. s_hLib[ cName ] != NIL - hb_HDel( s_hLib, cName ) - ENDIF - - RETURN - -FUNCTION __hbrun_extensions_get_list() - LOCAL aName := Array( Len( s_hLib ) ) - LOCAL hLib - - FOR EACH hLib IN s_hLib - aName[ hLib:__enumIndex() ] := hLib:__enumKey() + iif( Empty( hLib ), "", "*" ) - NEXT - - ASort( aName ) - - RETURN aName diff --git a/harbour/contrib/hbrun/hbrun.hbp b/harbour/contrib/hbrun/hbrun.hbp index 3a4ebfe23f..a4e78075c6 100644 --- a/harbour/contrib/hbrun/hbrun.hbp +++ b/harbour/contrib/hbrun/hbrun.hbp @@ -2,43 +2,13 @@ # $Id$ # --w3 -es2 -l --kmo +@../../utils/hbmk2/hbmk2.hbp -o${hb_name} --DHBRUN_WITH_HEADERS +-static --head=dep - --cflag=-Zm200{wce&allmsvc} - -# required by some plugins (f.e. netio management console) --mt - -hbrun.prg - -headers.prg -plugins.prg -extdyn.prg - --lhbpmcom{dos} - -# not using these together with .rc input, because some compilers (mingw) -# do not support multiple .rc inputs -#-icon={allwin}../../package/harb_win.ico -#-icon={os2}../../package/harb_os2.ico -hbrun.rc - -# Plugins - --I. --I../hbnetio/utils/hbnetio - -# Here comes the list of contribs linked in: -# - Make sure to keep it in sync with pullext.prg. -# - Do not add contribs which have external dependencies. -# (not in the public SVN that is) +-DHBMK_WITH_ALL_EMBEDDED_HEADERS hbct.hbc -request=__HBEXTERN__HBCT__ hbexpat.hbc -request=__HBEXTERN__HBEXPAT__ @@ -47,9 +17,3 @@ hbmzip.hbc -request=__HBEXTERN__HBMZIP__ hbnetio.hbc -request=__HBEXTERN__HBNETIO__ hbunix.hbc{unix} -request=__HBEXTERN__HBUNIX__{unix} hbwin.hbc{allwin} -request=__HBEXTERN__HBWIN__{allwin} - -# Build in shared mode for these platforms because the -# it's required for dynamic extension loading. (only -# do that if HB_BUILD_CONTRIB_DYN is enabled, so there -# are actually some dynamic extensions to load.) -{_HB_BUILD_&(!(HB_BUILD_DYN='no')&!(HB_BUILD_CONTRIB_DYN='no')&(win|wce|os2))}-shared diff --git a/harbour/contrib/hbrun/hbrun.prg b/harbour/contrib/hbrun/hbrun.prg deleted file mode 100644 index 562fbfe02f..0000000000 --- a/harbour/contrib/hbrun/hbrun.prg +++ /dev/null @@ -1,878 +0,0 @@ -/* - * $Id$ - */ - -/* - * Harbour Project source code: - * "DOt Prompt" Console and .prg/.hrb runner for the Harbour Language - * - * Copyright 2008-2012 Viktor Szakats (harbour syenar.net) - * Copyright 2007 Przemyslaw Czerpak - * www - http://harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). - * - * As a special exception, the Harbour Project gives permission for - * additional uses of the text contained in its release of Harbour. - * - * The exception is that, if you link the Harbour libraries with other - * files to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the Harbour library code into it. - * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the Harbour - * Project under the name Harbour. If you copy code from other - * Harbour Project or Free Software Foundation releases into a copy of - * Harbour, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. - * - * If you write modifications of your own for Harbour, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - * - */ - -#include "color.ch" -#include "fileio.ch" -#include "inkey.ch" -#include "setcurs.ch" - -#include "hbgtinfo.ch" -#include "hbhrb.ch" - -/* NOTE: use hbextern library instead of #include "hbextern.ch" - * in dynamic builds it will greatly reduce the size because - * all function symbols will be registered by harbour shared - * library (.dll, .so, .sl, .dyn, ...) not by this code - */ - -REQUEST __HB_EXTERN__ - -REQUEST HB_GT_CGI -REQUEST HB_GT_PCA -REQUEST HB_GT_STD -#if defined( __PLATFORM__WINDOWS ) -REQUEST HB_GT_WVT -#endif - -#define HB_HISTORY_LEN 500 -#define HB_LINE_LEN 256 - -STATIC s_nRow -STATIC s_nCol := 0 -STATIC s_aHistory := {} -STATIC s_lPreserveHistory := .T. -STATIC s_lWasLoad := .F. - -STATIC s_cDirBase -STATIC s_cProgName - -/* ********************************************************************** */ - -#if defined( __PLATFORM__DOS ) -# define _EXT_FILE_ "hb_ext.ini" -#else -# define _EXT_FILE_ "hb_extension" -#endif -#define _EXT_ENV_ "HB_EXTENSION" - -PROCEDURE _APPMAIN( cFile, ... ) - LOCAL cExt - LOCAL hHeaders - - LOCAL aDynamic - - hb_cdpSelect( "UTF8EX" ) - - /* Configure terminal and OS codepage */ - hb_SetTermCP( hb_cdpTerm() ) - Set( _SET_OSCODEPAGE, hb_cdpOS() ) - - aDynamic := {} - - LoadExtDynamicFromFile( aDynamic, __hbrun_ConfigDir() + _EXT_FILE_ ) - LoadExtDynamicFromString( aDynamic, GetEnv( _EXT_ENV_ ) ) - - /* TODO: Rework parameter handling */ - IF PCount() > 0 - SWITCH Lower( cFile ) - CASE "-?" - CASE "-h" - CASE "--help" - CASE "/?" - CASE "/h" - hbrun_Usage() - EXIT - CASE "-v" - CASE "/v" - hbrun_Prompt( hb_AParams(), "? hb_version()" ) - EXIT -#if defined( __PLATFORM__WINDOWS ) - CASE "-r" - CASE "-ra" - CASE "/r" - CASE "/ra" - IF win_reg_self( .T., Right( Lower( cFile ), 1 ) == "a" ) - OutStd( "hbrun: Harbour Script File registered" + hb_eol() ) - ELSE - OutErr( "hbrun: Error: Registering Harbour Script File" + hb_eol() ) - ENDIF - EXIT - CASE "-u" - CASE "-ua" - CASE "/u" - CASE "/ua" - IF win_reg_self( .F., Right( Lower( cFile ), 1 ) == "a" ) - OutStd( "hbrun: Harbour Script File unregistered" + hb_eol() ) - ELSE - OutErr( "hbrun: Error: Unregistering Harbour Script File" + hb_eol() ) - ENDIF - EXIT -#endif - CASE "-p" - CASE "/p" - s_lPreserveHistory := .F. - hbrun_extensionlist_init( aDynamic ) - hbrun_Prompt( hb_AParams() ) - EXIT - OTHERWISE - IF Left( cFile, 2 ) == "--" - hbrun_extensionlist_init( aDynamic ) - hbrun_Prompt( hb_AParams() ) - EXIT - ELSE - cFile := __hbrun_FindInPath( cFile ) - IF ! Empty( cFile ) - hb_FNameSplit( cFile, NIL, NIL, @cExt ) - cExt := Lower( cExt ) - SWITCH cExt - CASE ".hb" - CASE ".prg" - CASE ".hrb" - CASE ".dbf" - EXIT - OTHERWISE - cExt := hbrun_FileSig( cFile ) - ENDSWITCH - SWITCH cExt - CASE ".dbf" - hbrun_extensionlist_init( aDynamic ) - hbrun_Prompt( hb_AParams(), "USE " + cFile + " SHARED" ) - EXIT - CASE ".hb" - CASE ".prg" - IF Empty( GetEnv( "HBRUN_NOHEAD" ) ) - hHeaders := __hbrun_CoreHeaderFiles() /* add core header files */ - ENDIF - - LoadExtDynamicFromSource( aDynamic, cFile ) - - cFile := hb_compileBuf( hHeaders, hb_ProgName(), "-n2", "-w", "-es2", "-q0", ; - "-I" + hb_FNameDir( cFile ), "-D" + "__HBSCRIPT__HBSHELL", cFile ) - IF cFile == NIL - ErrorLevel( 1 ) - EXIT - ENDIF - OTHERWISE - hbrun_extensionlist_init( aDynamic ) - s_cDirBase := hb_DirBase() - s_cProgName := hb_ProgName() - hb_argShift( .T. ) - hb_hrbRun( cFile, ... ) - EXIT - ENDSWITCH - ENDIF - ENDIF - ENDSWITCH - ELSE - hbrun_extensionlist_init( aDynamic ) - hbrun_Prompt( hb_AParams() ) - ENDIF - - RETURN - -/* Public hbshell API */ -FUNCTION hbshell_DirBase() - RETURN s_cDirBase - -FUNCTION hbshell_ProgName() - RETURN s_cProgName - -INIT PROCEDURE ClipInit() - - hb_cdpSelect( "UTF8EX" ) - - RETURN - -EXIT PROCEDURE hbrun_exit() - - hbrun_HistorySave() - - RETURN - -FUNCTION __hbrun_ConfigDir() - LOCAL cEnvVar - LOCAL cDir - -#if defined( __PLATFORM__WINDOWS ) - cEnvVar := "APPDATA" -#else - cEnvVar := "HOME" -#endif - - IF ! Empty( GetEnv( cEnvVar ) ) -#if defined( __PLATFORM__DOS ) - cDir := GetEnv( cEnvVar ) + hb_ps() + "~harbour" -#else - cDir := GetEnv( cEnvVar ) + hb_ps() + ".harbour" -#endif - ELSE - cDir := hb_DirBase() - ENDIF - - IF ! hb_DirExists( cDir ) - hb_DirCreate( cDir ) - ENDIF - - RETURN cDir + hb_ps() - -STATIC PROCEDURE LoadExtDynamicFromFile( aDynamic, cFileName ) - LOCAL cItem - - FOR EACH cItem IN hb_ATokens( StrTran( MemoRead( cFileName ), Chr( 13 ) ), Chr( 10 ) ) - IF "#" $ cItem - cItem := Left( cItem, At( "#", cItem ) - 1 ) - ENDIF - IF ! Empty( cItem ) - AAdd( aDynamic, cItem ) - ENDIF - NEXT - - RETURN - -STATIC PROCEDURE LoadExtDynamicFromString( aDynamic, cString ) - LOCAL cItem - - FOR EACH cItem IN hb_ATokens( cString,, .T. ) - IF ! Empty( cItem ) - AAdd( aDynamic, cItem ) - ENDIF - NEXT - - RETURN - -STATIC PROCEDURE LoadExtDynamicFromSource( aDynamic, cFileName ) - LOCAL cFile := MemoRead( cFileName ) - LOCAL pRegex - LOCAL tmp - - tmp := hb_cdpSelect( "EN" ) - pRegex := hb_regexComp( '(^|;)[[:blank:]]*#[[:blank:]]*(require)[[:blank:]]*(\".+?\"'+"|'.+?'"+')',; - .F. /* lCaseSensitive */,; - .T. /* lNewLine */ ) - hb_cdpSelect( tmp ) - - FOR EACH tmp IN hb_regexAll( pRegex, cFile, ; - NIL /* lCaseSensitive */, ; - NIL /* lNewLine */, NIL, ; - NIL /* nGetMatch */, ; - .T. /* lOnlyMatch */ ) - AAdd( aDynamic, SubStr( ATail( tmp ), 2, Len( ATail( tmp ) ) - 2 ) /* Last group in match marker */ ) - NEXT - - RETURN - -STATIC PROCEDURE hbrun_extensionlist_init( aDynamic ) - STATIC s_lInit := .F. - - IF ! s_lInit - IF hb_IsFunction( "__hbrun_extensions_static_init" ) - Do( "__hbrun_extensions_static_init" ) - ENDIF - __hbrun_extensions_dynamic_init( aDynamic ) - s_lInit := .T. - ENDIF - - RETURN - -STATIC FUNCTION hbrun_FileSig( cFile ) - LOCAL hFile - LOCAL cBuff, cSig, cExt - - cExt := ".hb" - hFile := FOpen( cFile, FO_READ ) - IF hFile != F_ERROR - cSig := hb_hrbSignature() - cBuff := Space( hb_BLen( cSig ) ) - FRead( hFile, @cBuff, hb_BLen( cBuff ) ) - FClose( hFile ) - IF cBuff == cSig - cExt := ".hrb" - ENDIF - ENDIF - - RETURN cExt - -#define _PLUGIN_hHRB 1 -#define _PLUGIN_hMethods 2 -#define _PLUGIN_ctx 3 -#define _PLUGIN_cID 4 -#define _PLUGIN_MAX_ 4 - -STATIC FUNCTION plugins_load( hPlugins, aParams ) - LOCAL hConIO := {; - "displine" => {| c | hbrun_ToConsole( c ) } ,; - "gethidden" => {|| hbrun_GetHidden() } } - - LOCAL plugin - LOCAL plugins := {} - LOCAL hHRBEntry - LOCAL cFile - - FOR EACH cFile IN hPlugins - - plugin := Array( _PLUGIN_MAX_ ) - plugin[ _PLUGIN_hHRB ] := NIL - - SWITCH Lower( hb_FNameExt( cFile:__enumKey() ) ) - CASE ".hb" - CASE ".prg" - cFile := hb_compileFromBuf( cFile, __hbrun_CoreHeaderFiles(), hb_ProgName(), "-n2", "-w", "-es2", "-q0" ) - IF cFile == NIL - EXIT - ENDIF - CASE ".hrb" - BEGIN SEQUENCE WITH {| oErr | Break( oErr ) } - plugin[ _PLUGIN_hHRB ] := hb_hrbLoad( HB_HRB_BIND_FORCELOCAL, cFile ) - IF Empty( hHRBEntry := hb_hrbGetFunSym( plugin[ _PLUGIN_hHRB ], "__hbrun_plugin" ) ) - plugin[ _PLUGIN_hHRB ] := NIL - ENDIF - RECOVER - plugin[ _PLUGIN_hHRB ] := NIL - END SEQUENCE - EXIT - ENDSWITCH - - IF ! Empty( plugin[ _PLUGIN_hHRB ] ) - plugin[ _PLUGIN_hMethods ] := Do( hHRBEntry ) - IF ! Empty( plugin[ _PLUGIN_hMethods ] ) - plugin[ _PLUGIN_ctx ] := Eval( plugin[ _PLUGIN_hMethods ][ "init" ], hConIO, aParams ) - IF ! Empty( plugin[ _PLUGIN_ctx ] ) - plugin[ _PLUGIN_cID ] := plugin[ _PLUGIN_hMethods ][ "id" ] - IF ! Empty( plugin[ _PLUGIN_cID ] ) - AAdd( plugins, plugin ) - ENDIF - ENDIF - ENDIF - ENDIF - NEXT - - RETURN plugins - -STATIC FUNCTION plugins_command( plugins, cCommand, cDomain ) - LOCAL plugin - - FOR EACH plugin IN plugins - IF Left( cCommand, Len( plugin[ _PLUGIN_cID ] ) + 1 ) == plugin[ _PLUGIN_cID ] + "." - IF Eval( plugin[ _PLUGIN_hMethods ][ "cmd" ], plugin[ _PLUGIN_ctx ], SubStr( cCommand, Len( plugin[ _PLUGIN_cID ] ) + 2 ) ) - RETURN .T. - ENDIF - ELSEIF cDomain == plugin[ _PLUGIN_cID ] - IF Eval( plugin[ _PLUGIN_hMethods ][ "cmd" ], plugin[ _PLUGIN_ctx ], cCommand ) - RETURN .T. - ENDIF - ENDIF - NEXT - - RETURN .F. - -STATIC FUNCTION plugins_valid_id( plugins, cID ) - LOCAL plugin - - FOR EACH plugin IN plugins - IF plugin[ _PLUGIN_cID ] == cID - RETURN .T. - ENDIF - NEXT - - RETURN .F. - -STATIC FUNCTION plugins_valid_id_list( plugins ) - LOCAL plugin - LOCAL aList := {} - - FOR EACH plugin IN plugins - AAdd( aList, plugin[ _PLUGIN_cID ] ) - NEXT - - RETURN aList - -STATIC PROCEDURE plugins_unload( plugins ) - LOCAL plugin - - FOR EACH plugin IN plugins - Eval( plugin[ _PLUGIN_hMethods ][ "exit" ], plugin[ _PLUGIN_ctx ] ) - NEXT - - RETURN - -STATIC PROCEDURE hbrun_Prompt( aParams, cCommand ) - LOCAL GetList - LOCAL cLine - LOCAL nMaxRow, nMaxCol - LOCAL nHistIndex - LOCAL bKeyUP, bKeyDown, bKeyIns, bKeyResize - LOCAL lResize := .F. - LOCAL plugins - - LOCAL cDomain := "" - LOCAL tmp - - IF ! hb_gtInfo( HB_GTI_ISSCREENPOS ) - OutErr( "hbrun: Error: Interactive session not possible with " + hb_gtVersion( 0 ) + " terminal driver" + hb_eol() ) - RETURN - ENDIF - - hb_gtInfo( HB_GTI_ICONRES, 1 ) - - CLEAR SCREEN - SET SCOREBOARD OFF - GetList := {} - - hbrun_HistoryLoad() - - AAdd( s_aHistory, PadR( "quit", HB_LINE_LEN ) ) - nHistIndex := Len( s_aHistory ) + 1 - - IF HB_ISSTRING( cCommand ) - AAdd( s_aHistory, PadR( cCommand, HB_LINE_LEN ) ) - hbrun_Info( cCommand ) - hbrun_Exec( cCommand ) - ELSE - cCommand := "" - ENDIF - - hb_gtInfo( HB_GTI_RESIZEMODE, HB_GTI_RESIZEMODE_ROWS ) - - SetKey( K_ALT_V, {|| hb_gtInfo( HB_GTI_CLIPBOARDPASTE ) } ) - - Set( _SET_EVENTMASK, hb_bitOr( INKEY_KEYBOARD, HB_INKEY_GTEVENT ) ) - - s_nRow := 2 + iif( Empty( __hbrun_extensions_get_list() ), 0, 1 ) - - plugins := plugins_load( __hbrun_plugins(), aParams ) - - DO WHILE .T. - - IF cLine == NIL - cLine := Space( HB_LINE_LEN ) - ENDIF - - hbrun_Info( cCommand ) - - nMaxRow := MaxRow() - nMaxCol := MaxCol() - @ nMaxRow, 0 SAY cDomain + "." - @ nMaxRow, Col() GET cLine ; - PICTURE "@KS" + hb_ntos( nMaxCol - Col() + 1 ) - - SetCursor( iif( ReadInsert(), SC_INSERT, SC_NORMAL ) ) - - bKeyIns := SetKey( K_INS, ; - {|| SetCursor( iif( ReadInsert( !ReadInsert() ), ; - SC_NORMAL, SC_INSERT ) ) } ) - bKeyUp := SetKey( K_UP, ; - {|| iif( nHistIndex > 1, ; - cLine := s_aHistory[ --nHistIndex ], ) } ) - bKeyDown := SetKey( K_DOWN, ; - {|| cLine := iif( nHistIndex < Len( s_aHistory ), ; - s_aHistory[ ++nHistIndex ], ; - ( nHistIndex := Len( s_aHistory ) + 1, Space( HB_LINE_LEN ) ) ) } ) - bKeyResize := SetKey( HB_K_RESIZE,; - {|| lResize := .T., hb_KeyPut( K_ENTER ) } ) - - READ - - SetKey( K_DOWN, bKeyDown ) - SetKey( K_UP, bKeyUp ) - SetKey( K_INS, bKeyIns ) - SetKey( HB_K_RESIZE, bKeyResize ) - - IF LastKey() == K_ESC .OR. Empty( cLine ) .OR. ; - ( lResize .AND. LastKey() == K_ENTER ) - IF lResize - lResize := .F. - ELSE - cLine := NIL - ENDIF - IF nMaxRow != MaxRow() .OR. nMaxCol != MaxCol() - @ nMaxRow, 0 CLEAR - ENDIF - LOOP - ENDIF - - IF Empty( s_aHistory ) .OR. ! ATail( s_aHistory ) == cLine - IF Len( s_aHistory ) < HB_HISTORY_LEN - AAdd( s_aHistory, cLine ) - ELSE - ADel( s_aHistory, 1 ) - s_aHistory[ Len( s_aHistory ) ] := cLine - ENDIF - ENDIF - nHistIndex := Len( s_aHistory ) + 1 - - cCommand := AllTrim( cLine, " " ) - cLine := NIL - @ nMaxRow, 0 CLEAR - hbrun_Info( cCommand ) - - IF ! Empty( cCommand ) - - IF Left( cCommand, 1 ) == "." - IF cCommand == "." - cDomain := "" - ELSEIF plugins_valid_id( plugins, SubStr( cCommand, 2 ) ) - cDomain := SubStr( cCommand, 2 ) - ELSE - FOR EACH tmp IN plugins_valid_id_list( plugins ) - hbrun_ToConsole( "." + tmp ) - NEXT - ENDIF - ELSE - IF ! plugins_command( plugins, cCommand, cDomain ) - hbrun_Exec( cCommand ) - ENDIF - - IF s_nRow >= MaxRow() - Scroll( 2 + iif( Empty( __hbrun_extensions_get_list() ), 0, 1 ), 0, MaxRow(), MaxCol(), 1 ) - s_nRow := MaxRow() - 1 - ENDIF - ENDIF - ENDIF - ENDDO - - plugins_unload( plugins ) - - RETURN - -/* ********************************************************************** */ - -STATIC PROCEDURE hbrun_ToConsole( cText ) - QQOut( cText + hb_eol() ) - RETURN - -STATIC FUNCTION hbrun_GetHidden() - LOCAL GetList := {} - LOCAL cPassword := Space( 128 ) - LOCAL nSavedRow - LOCAL bKeyPaste - - QQOut( "Enter password: " ) - - nSavedRow := Row() - - AAdd( GetList, hb_Get():New( Row(), Col(), {| v | iif( PCount() == 0, cPassword, cPassword := v ) }, "cPassword", "@S" + hb_ntos( MaxCol() - Col() + 1 ), hb_ColorIndex( SetColor(), CLR_STANDARD ) + "," + hb_ColorIndex( SetColor(), CLR_STANDARD ) ) ) - ATail( GetList ):hideInput( .T. ) - ATail( GetList ):postBlock := {|| ! Empty( cPassword ) } - ATail( GetList ):display() - - SetCursor( iif( ReadInsert(), SC_INSERT, SC_NORMAL ) ) - bKeyPaste := SetKey( K_ALT_V, {|| hb_gtInfo( HB_GTI_CLIPBOARDPASTE ) } ) - - READ - - /* Positions the cursor on the line previously saved */ - SetPos( nSavedRow, MaxCol() - 1 ) - SetKey( K_ALT_V, bKeyPaste ) - - QQOut( hb_eol() ) - - RETURN AllTrim( cPassword ) - -/* ********************************************************************** */ - -STATIC PROCEDURE hbrun_Usage() - - OutStd( 'Harbour "DOt Prompt" Console / runner ' + HBRawVersion() + hb_eol() +; - "Copyright (c) 1999-2012, Przemyslaw Czerpak, Viktor Szakats" + hb_eol() + ; - "http://harbour-project.org/" + hb_eol() +; - hb_eol() +; - "Syntax: hbrun [ []]" + hb_eol() ) - - RETURN - -/* ********************************************************************** */ - -STATIC PROCEDURE hbrun_Info( cCommand ) - - IF cCommand != NIL - hb_DispOutAt( 0, 0, "PP: " ) - hb_DispOutAt( 0, 4, PadR( cCommand, MaxCol() - 3 ), "N/R" ) - ENDIF - IF Used() - hb_DispOutAt( 1, 0, ; - PadR( "RDD: " + PadR( rddName(), 6 ) + ; - " | Area:" + Str( Select(), 3 ) + ; - " | Dbf: " + PadR( Alias(), 10 ) + ; - " | Index: " + PadR( ordName( IndexOrd() ), 8 ) + ; - " | # " + Str( RecNo(), 7 ) + "/" + Str( RecCount(), 7 ), ; - MaxCol() + 1 ), "N/BG" ) - ELSE - hb_DispOutAt( 1, 0, ; - PadR( "RDD: " + Space( 6 ) + ; - " | Area:" + Space( 3 ) + ; - " | Dbf: " + Space( 10 ) + ; - " | Index: " + Space( 8 ) + ; - " | # " + Space( 7 ) + "/" + Space( 7 ), ; - MaxCol() + 1 ), "N/BG" ) - ENDIF - IF s_lPreserveHistory - hb_DispOutAt( 1, MaxCol(), "o", "R/BG" ) - ENDIF - - hb_DispOutAt( 2, 0, PadR( "Ext: " + ArrayToList( __hbrun_extensions_get_list() ), MaxCol() + 1 ), "W/B" ) - - RETURN - -STATIC FUNCTION ArrayToList( array ) - LOCAL cString := "" - LOCAL tmp - - FOR tmp := 1 TO Len( array ) - cString += array[ tmp ] - IF tmp < Len( array ) - cString += ", " - ENDIF - NEXT - - RETURN cString - -/* ********************************************************************** */ - -STATIC PROCEDURE hbrun_Err( oErr, cCommand ) - - LOCAL xArg, cMessage - - cMessage := "Sorry, could not execute:;;" + cCommand + ";;" - IF oErr:ClassName == "ERROR" - cMessage += oErr:Description - IF !Empty( oErr:Operation ) - cMessage += " " + oErr:Operation - ENDIF - IF HB_ISARRAY( oErr:Args ) .AND. Len( oErr:Args ) > 0 - cMessage += ";Arguments:" - FOR EACH xArg IN oErr:Args - cMessage += ";" + hb_CStr( xArg ) - NEXT - ENDIF - ELSEIF HB_ISSTRING( oErr ) - cMessage += oErr - ENDIF - cMessage += ";;" + ProcName( 2 ) + "(" + hb_ntos( ProcLine( 2 ) ) + ")" - - Alert( cMessage ) - - Break( oErr ) - -/* ********************************************************************** */ - -STATIC PROCEDURE hbrun_Exec( cCommand ) - LOCAL pHRB, cHRB, cFunc, bBlock, cEol, nRowMin - - cEol := hb_eol() - cFunc := "STATIC FUNCTION __HBDOT()" + cEol + ; - "RETURN {||" + cEol + ; - " " + cCommand + cEol + ; - " RETURN __MVSETBASE()" + cEol + ; - "}" + cEol - - BEGIN SEQUENCE WITH {|oErr| hbrun_Err( oErr, cCommand ) } - - cHRB := hb_compileFromBuf( cFunc, hb_ProgName(), "-n2", "-q2" ) - IF cHRB == NIL - Eval( ErrorBlock(), "Syntax error." ) - ELSE - pHRB := hb_hrbLoad( cHRB ) - IF pHrb != NIL - bBlock := hb_hrbDo( pHRB ) - DevPos( s_nRow, s_nCol ) - Eval( bBlock ) - s_nRow := Row() - s_nCol := Col() - nRowMin := 2 + iif( Empty( __hbrun_extensions_get_list() ), 0, 1 ) - IF s_nRow < nRowMin - s_nRow := nRowMin - ENDIF - ENDIF - ENDIF - - ENDSEQUENCE - - __mvSetBase() - - RETURN - -STATIC FUNCTION HBRawVersion() - RETURN StrTran( Version(), "Harbour " ) - -/* ********************************************************************** */ - -#define _HISTORY_DISABLE_LINE "no" - -#if defined( __PLATFORM__DOS ) -# define _FNAME_HISTORY_ "hbhist.ini" -#else -# define _FNAME_HISTORY_ ".hb_history" -#endif - -STATIC PROCEDURE hbrun_HistoryLoad() - LOCAL cHistory - LOCAL cLine - - s_lWasLoad := .T. - - IF s_lPreserveHistory - cHistory := StrTran( MemoRead( __hbrun_ConfigDir() + _FNAME_HISTORY_ ), 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 cLine - LOCAL cDir - - IF s_lWasLoad .AND. s_lPreserveHistory - cHistory := "" - FOR EACH cLine IN s_aHistory - IF !( Lower( AllTrim( cLine ) ) == "quit" ) - cHistory += AllTrim( cLine ) + hb_eol() - ENDIF - NEXT - IF ! hb_DirExists( cDir := __hbrun_ConfigDir() ) - hb_DirCreate( cDir ) - ENDIF - hb_MemoWrit( cDir + _FNAME_HISTORY_, cHistory ) - ENDIF - - RETURN - -FUNCTION __hbrun_FindInPath( cFileName, xPath ) - LOCAL cDir - LOCAL cName - LOCAL cExt - LOCAL cFullName - LOCAL aExt - - hb_FNameSplit( cFileName, @cDir, @cName, @cExt ) - aExt := iif( Empty( cExt ), { ".hb", ".hrb" }, { cExt } ) - - FOR EACH cExt IN aExt - /* Check original filename (in supplied path or current dir) */ - IF hb_FileExists( cFullName := hb_FNameMerge( cDir, cName, cExt ) ) - RETURN cFullName - ENDIF - NEXT - - IF Empty( cDir ) - IF ! Empty( cDir := hb_DirBase() ) - /* Check in the dir of this executable. */ - FOR EACH cExt IN aExt - IF hb_FileExists( cFullName := hb_FNameMerge( cDir, cName, cExt ) ) - RETURN cFullName - ENDIF - NEXT - ENDIF - - IF ! HB_ISSTRING( xPath ) .AND. ; - ! HB_ISARRAY( xPath ) - xPath := GetEnv( "PATH" ) - ENDIF - - IF HB_ISSTRING( xPath ) - #if defined( __PLATFORM__WINDOWS ) .OR. ; - defined( __PLATFORM__DOS ) .OR. ; - defined( __PLATFORM__OS2 ) - xPath := hb_ATokens( xPath, hb_osPathListSeparator(), .T., .T. ) - #else - xPath := hb_ATokens( xPath, hb_osPathListSeparator() ) - #endif - ENDIF - - FOR EACH cExt IN aExt - /* Check in the PATH. */ - FOR EACH cDir IN xPath - IF Left( cDir, 1 ) == '"' .AND. Right( cDir, 1 ) == '"' - cDir := SubStr( cDir, 2, Len( cDir ) - 2 ) - ENDIF - IF ! Empty( cDir ) - IF hb_FileExists( cFullName := hb_FNameMerge( cDir, cName, cExt ) ) - RETURN cFullName - ENDIF - ENDIF - NEXT - NEXT - ENDIF - - RETURN NIL - -#if defined( __PLATFORM__WINDOWS ) - -STATIC FUNCTION win_reg_self( lRegister, lAllUser ) - RETURN win_reg_app( lRegister, lAllUser, hb_ProgName() ) - -STATIC FUNCTION win_reg_app( lRegister, lAllUser, cAppPath ) - LOCAL cHive := iif( HB_ISLOGICAL( lAllUser ) .AND. lAllUser, "HKEY_CLASSES_ROOT", "HKEY_CURRENT_USER\Software\Classes" ) - LOCAL lSuccess := .T. - LOCAL tmp - - LOCAL aEntries := {; - cHive + '\' , "" ,; - cHive + '\.hb\' , "HarbourScript" ,; - cHive + '\HarbourScript\' , "Harbour Script File" ,; - cHive + '\HarbourScript\DefaultIcon\' , cAppPath + ",-1" ,; - cHive + '\HarbourScript\Shell\' , "Run" ,; - cHive + '\HarbourScript\Shell\Run\' , "" ,; - cHive + '\HarbourScript\Shell\Run\Command\', cAppPath + ' "%1"' } - - IF lRegister - FOR tmp := 1 TO Len( aEntries ) STEP 2 - lSuccess := lSuccess .AND. win_regWrite( aEntries[ tmp ], aEntries[ tmp + 1 ] ) - NEXT - ELSE - FOR tmp := Len( aEntries ) - 1 TO 3 STEP -2 - lSuccess := win_regDelete( aEntries[ tmp ] ) - NEXT - ENDIF - - RETURN lSuccess - -#endif diff --git a/harbour/contrib/hbrun/hbrun.rc b/harbour/contrib/hbrun/hbrun.rc deleted file mode 100644 index 9254c1f54b..0000000000 --- a/harbour/contrib/hbrun/hbrun.rc +++ /dev/null @@ -1,13 +0,0 @@ -/* - * $Id$ - */ - -#if defined( OS2 ) || defined( __OS2__ ) || defined( OS_2 ) -ICON 1 DISCARDABLE "../../package/harb_os2.ico" -#else -#if ! defined( __BORLANDC__ ) -1 ICON DISCARDABLE "../../package/harb_win.ico" -#endif -#include "../../package/harb_win.rc" -__HB_CREATEPROCESS_MANIFEST_RESOURCE_ID __HB_RT_MANIFEST "../../package/harb_win.mft" -#endif diff --git a/harbour/contrib/hbrun/headers.prg b/harbour/contrib/hbrun/headers.prg deleted file mode 100644 index 5ba2d4b6ec..0000000000 --- a/harbour/contrib/hbrun/headers.prg +++ /dev/null @@ -1,132 +0,0 @@ -/* - * $Id$ - */ - -/* - * Harbour Project source code: - * header puller - * - * Copyright 2010-2011 Przemyslaw Czerpak - * www - http://harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). - * - * As a special exception, the Harbour Project gives permission for - * additional uses of the text contained in its release of Harbour. - * - * The exception is that, if you link the Harbour libraries with other - * files to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the Harbour library code into it. - * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the Harbour - * Project under the name Harbour. If you copy code from other - * Harbour Project or Free Software Foundation releases into a copy of - * Harbour, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. - * - * If you write modifications of your own for Harbour, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - * - */ - -/* command to store header files in hash array */ -#command ADD HEADER TO FILE <(cFile)> => ; - #pragma __streaminclude <(cFile)> | \[ <(cFile)> \] := %s - -FUNCTION __hbrun_CoreHeaderFiles() - STATIC s_hHeaders - -#ifdef HBRUN_WITH_HEADERS - - IF s_hHeaders == NIL - s_hHeaders := { => } - - ADD HEADER TO s_hHeaders FILE "achoice.ch" - ADD HEADER TO s_hHeaders FILE "assert.ch" - ADD HEADER TO s_hHeaders FILE "blob.ch" - ADD HEADER TO s_hHeaders FILE "box.ch" - ADD HEADER TO s_hHeaders FILE "button.ch" - ADD HEADER TO s_hHeaders FILE "color.ch" - ADD HEADER TO s_hHeaders FILE "common.ch" - ADD HEADER TO s_hHeaders FILE "dbedit.ch" - ADD HEADER TO s_hHeaders FILE "dbinfo.ch" - ADD HEADER TO s_hHeaders FILE "dbstruct.ch" - ADD HEADER TO s_hHeaders FILE "directry.ch" - ADD HEADER TO s_hHeaders FILE "error.ch" - ADD HEADER TO s_hHeaders FILE "fileio.ch" - ADD HEADER TO s_hHeaders FILE "getexit.ch" - ADD HEADER TO s_hHeaders FILE "hb.ch" - ADD HEADER TO s_hHeaders FILE "hbclass.ch" - ADD HEADER TO s_hHeaders FILE "hbcom.ch" - ADD HEADER TO s_hHeaders FILE "hbdebug.ch" - ADD HEADER TO s_hHeaders FILE "hbdyn.ch" - ADD HEADER TO s_hHeaders FILE "hbextcdp.ch" - ADD HEADER TO s_hHeaders FILE "hbextern.ch" - ADD HEADER TO s_hHeaders FILE "hbextlng.ch" - ADD HEADER TO s_hHeaders FILE "hbgfx.ch" - ADD HEADER TO s_hHeaders FILE "hbgfxdef.ch" - ADD HEADER TO s_hHeaders FILE "hbgtinfo.ch" - ADD HEADER TO s_hHeaders FILE "hbhash.ch" - ADD HEADER TO s_hHeaders FILE "hbhrb.ch" - ADD HEADER TO s_hHeaders FILE "hbinkey.ch" - ADD HEADER TO s_hHeaders FILE "hblang.ch" - ADD HEADER TO s_hHeaders FILE "hblpp.ch" - ADD HEADER TO s_hHeaders FILE "hbmacro.ch" - ADD HEADER TO s_hHeaders FILE "hbmath.ch" - ADD HEADER TO s_hHeaders FILE "hbmemory.ch" - ADD HEADER TO s_hHeaders FILE "hbmemvar.ch" - ADD HEADER TO s_hHeaders FILE "hboo.ch" - ADD HEADER TO s_hHeaders FILE "hbpers.ch" - ADD HEADER TO s_hHeaders FILE "hbsetup.ch" - ADD HEADER TO s_hHeaders FILE "hbsix.ch" - ADD HEADER TO s_hHeaders FILE "hbsocket.ch" - ADD HEADER TO s_hHeaders FILE "hbstdgen.ch" - ADD HEADER TO s_hHeaders FILE "hbsxdef.ch" - ADD HEADER TO s_hHeaders FILE "hbthread.ch" - ADD HEADER TO s_hHeaders FILE "hbtrace.ch" - ADD HEADER TO s_hHeaders FILE "hbusrrdd.ch" - ADD HEADER TO s_hHeaders FILE "hbver.ch" - ADD HEADER TO s_hHeaders FILE "hbzlib.ch" - ADD HEADER TO s_hHeaders FILE "inkey.ch" - ADD HEADER TO s_hHeaders FILE "memoedit.ch" - ADD HEADER TO s_hHeaders FILE "ord.ch" - ADD HEADER TO s_hHeaders FILE "rddsys.ch" - ADD HEADER TO s_hHeaders FILE "reserved.ch" - ADD HEADER TO s_hHeaders FILE "set.ch" - ADD HEADER TO s_hHeaders FILE "setcurs.ch" - ADD HEADER TO s_hHeaders FILE "simpleio.ch" - ADD HEADER TO s_hHeaders FILE "std.ch" - ADD HEADER TO s_hHeaders FILE "tbrowse.ch" - ADD HEADER TO s_hHeaders FILE "harbour.hbx" - ADD HEADER TO s_hHeaders FILE "hbcpage.hbx" - ADD HEADER TO s_hHeaders FILE "hblang.hbx" - ADD HEADER TO s_hHeaders FILE "hbscalar.hbx" - ADD HEADER TO s_hHeaders FILE "hbusrrdd.hbx" - - hb_HCaseMatch( s_hHeaders, .T. ) - ENDIF - -#endif /* HBRUN_WITH_HEADERS */ - - RETURN s_hHeaders diff --git a/harbour/contrib/hbrun/p_ext.hb b/harbour/contrib/hbrun/p_ext.hb deleted file mode 100644 index 4dd0cee394..0000000000 --- a/harbour/contrib/hbrun/p_ext.hb +++ /dev/null @@ -1,113 +0,0 @@ -/* - * $Id$ - */ - -/* - * Harbour Project source code: - * extensions (dynamic manager plugin) - * - * Copyright 2012 Viktor Szakats (harbour syenar.net) - * www - http://harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). - * - * As a special exception, the Harbour Project gives permission for - * additional uses of the text contained in its release of Harbour. - * - * The exception is that, if you link the Harbour libraries with other - * files to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the Harbour library code into it. - * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the Harbour - * Project under the name Harbour. If you copy code from other - * Harbour Project or Free Software Foundation releases into a copy of - * Harbour, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. - * - * If you write modifications of your own for Harbour, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - * - */ - -FUNCTION __hbrun_plugin() - RETURN {; - "id" => "ext",; - "init" => {| hConIO | __init( hConIO ) } ,; - "exit" => {| context | HB_SYMBOL_UNUSED( context ) } ,; - "cmd" => {| context, cCommand | __command( context, cCommand ) } } - -STATIC FUNCTION __init( hConIO ) - RETURN { hConIO, { ; - "load" => { "" , "Load." , {| context, cCommand | load( context, cCommand ) } },; - "unload" => { "" , "Unload." , {| context, cCommand | unload( context, cCommand ) } },; - "list" => { "" , "List." , {| context, cCommand | list( context ) } } } } - -STATIC PROCEDURE __disp( context, cText ) - Eval( context[ 1 ][ "displine" ], cText ) - RETURN - -STATIC FUNCTION __command( context, cCommand ) - LOCAL aCommand - LOCAL nPos - - IF ! Empty( context ) - aCommand := hb_ATokens( cCommand, " " ) - IF ! Empty( aCommand ) .AND. ( nPos := hb_HPos( context[ 2 ], Lower( aCommand[ 1 ] ) ) ) > 0 - Eval( hb_HValueAt( context[ 2 ], nPos )[ 3 ], context, cCommand ) - RETURN .T. - ENDIF - ENDIF - - RETURN .F. - -/* Commands */ - -STATIC PROCEDURE load( context, cCommand ) - LOCAL aToken := hb_ATokens( cCommand, " " ) - LOCAL tmp - - FOR tmp := 2 TO Len( aToken ) - __hbrun_extensions_dynamic_load( aToken[ tmp ] ) - NEXT - - RETURN - -STATIC PROCEDURE unload( context, cCommand ) - LOCAL aToken := hb_ATokens( cCommand, " " ) - LOCAL tmp - - FOR tmp := 2 TO Len( aToken ) - __hbrun_extensions_dynamic_unload( aToken[ tmp ] ) - NEXT - - RETURN - -STATIC PROCEDURE list( context ) - LOCAL cName - - FOR EACH cName IN __hbrun_extensions_get_list() - __disp( context, cName ) - NEXT - - RETURN diff --git a/harbour/contrib/hbrun/plugins.prg b/harbour/contrib/hbrun/plugins.prg deleted file mode 100644 index 8b52bfab89..0000000000 --- a/harbour/contrib/hbrun/plugins.prg +++ /dev/null @@ -1,75 +0,0 @@ -/* - * $Id$ - */ - -/* - * Harbour Project source code: - * plugin container - * - * Copyright 2011 Viktor Szakats (harbour syenar.net) - * www - http://harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). - * - * As a special exception, the Harbour Project gives permission for - * additional uses of the text contained in its release of Harbour. - * - * The exception is that, if you link the Harbour libraries with other - * files to produce an executable, this does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * Your use of that executable is in no way restricted on account of - * linking the Harbour library code into it. - * - * This exception does not however invalidate any other reasons why - * the executable file might be covered by the GNU General Public License. - * - * This exception applies only to the code released by the Harbour - * Project under the name Harbour. If you copy code from other - * Harbour Project or Free Software Foundation releases into a copy of - * Harbour, as the General Public License permits, the exception does - * not apply to the code that you add in this way. To avoid misleading - * anyone as to the status of such modified files, you must delete - * this exception notice from them. - * - * If you write modifications of your own for Harbour, it is your choice - * whether to permit this exception to apply to your modifications. - * If you do not wish that, delete this exception notice. - * - */ - -#include "directry.ch" - -#command ADD PLUGIN TO FILE <(cFile)> => ; - #pragma __streaminclude <(cFile)> | \[ <(cFile)> \] := %s - -FUNCTION __hbrun_plugins() - LOCAL hPlugins := { => } - LOCAL cDir - LOCAL cExt - LOCAL file - - ADD PLUGIN TO hPlugins FILE "netiomgm.hb" - ADD PLUGIN TO hPlugins FILE "p_ext.hb" - - cDir := __hbrun_ConfigDir() - - FOR EACH cExt IN { "*.hb", "*.hrb" } - FOR EACH file IN Directory( cDir + cExt ) - hPlugins[ cDir + file[ F_NAME ] ] := MemoRead( cDir + file[ F_NAME ] ) - NEXT - NEXT - - RETURN hPlugins diff --git a/harbour/contrib/make.hb b/harbour/contrib/make.hb index bc3af6fe2e..cb5426a472 100755 --- a/harbour/contrib/make.hb +++ b/harbour/contrib/make.hb @@ -1,4 +1,4 @@ -#!/usr/bin/hbrun --hb:gtcgi +#!/usr/bin/hbmk2 /* * $Id$ */ @@ -267,8 +267,8 @@ PROCEDURE GNUMake( aParams, hProjectList ) AScanL( aGNUMakeParams, "install" ) > AScanL( aGNUMakeParams, "clean" ) /* Use rebuild mode. This is needed because the clean phase might not have been called previously by GNU Make, f.e. - because hbrun or hbmk2 wasn't available. -rebuildall is - costless, so we do it to make sure to build cleanly. + because hbmk2 wasn't available. -rebuildall is costless, + so we do it to make sure to build cleanly. [vszakats] */ nAction := _ACT_INC_REBUILD_INST ELSE diff --git a/harbour/src/pp/ppcore.c b/harbour/src/pp/ppcore.c index acb848ba1a..682cd7b9ae 100644 --- a/harbour/src/pp/ppcore.c +++ b/harbour/src/pp/ppcore.c @@ -5265,7 +5265,7 @@ static void hb_pp_preprocessToken( PHB_PP_STATE pState ) } else if( hb_pp_tokenValueCmp( pToken, "REQUIRE", HB_PP_CMP_STD ) ) { - /* do nothing. this directive is processed by hbrun and hbmk2 to + /* do nothing. this directive is processed by hbmk2 to pull in external modules. */ } else if( hb_pp_tokenValueCmp( pToken, "STDOUT", HB_PP_CMP_DBASE ) )