This commit is contained in:
@@ -10,6 +10,33 @@
|
||||
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
|
||||
*/
|
||||
|
||||
2013-03-25 21:41 UTC+0100 Viktor Szakats (harbour syenar.net)
|
||||
+ tests/achoice3.prg
|
||||
+ added another AChoice() TOFIX demonstration.
|
||||
Sent by Tony
|
||||
! code adatped to Harbour stds, some formatting
|
||||
for hbformat misses.
|
||||
|
||||
2013-03-25 21:33 UTC+0100 Viktor Szakats (harbour syenar.net)
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
! corrected a few spelling subtleties
|
||||
|
||||
2013-03-25 21:31 UTC+0100 Viktor Szakats (harbour syenar.net)
|
||||
* README.txt
|
||||
! expression correction
|
||||
|
||||
2013-03-25 20:27 UTC+0100 Viktor Szakats (harbour syenar.net)
|
||||
* doc/Makefile
|
||||
! updated for recently deleted file
|
||||
|
||||
* config/global.mk
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
+ autodetect gcc 4.8
|
||||
|
||||
* package/winuni/mpkg_win_uni.bat
|
||||
+ include sjlj and seh libgcc dlls
|
||||
(starting with gcc 4.8, libgcc dll is required by default)
|
||||
|
||||
2013-03-25 16:14 UTC+0100 Viktor Szakats (harbour syenar.net)
|
||||
* extras/template/tests/hbmk.hbm
|
||||
* reverted to not refer to hbtest.hbc
|
||||
|
||||
12
README.txt
12
README.txt
@@ -2,12 +2,12 @@
|
||||
WELCOME TO HARBOUR
|
||||
==================
|
||||
|
||||
Harbour is the Free Open Source Software implementation
|
||||
of a multi-platform, multi-threading, object-oriented, scriptable
|
||||
programming language, backward compatible with Clipper/xBase.
|
||||
Harbour consists of a compiler and runtime libraries with multiple
|
||||
UI and database backends, its own make system and a large
|
||||
collection of libraries and interfaces to many popular APIs.
|
||||
Harbour is the free software implementation of a multi-platform,
|
||||
multi-threading, object-oriented, scriptable programming language,
|
||||
backward compatible with Clipper/xBase. Harbour consists of
|
||||
a compiler and runtime libraries with multiple UI and database
|
||||
backends, its own make system and a large collection of libraries
|
||||
and interfaces to many popular APIs.
|
||||
|
||||
<http://harbour-project.org/>
|
||||
|
||||
|
||||
@@ -597,6 +597,9 @@ ifeq ($(HB_COMPILER),)
|
||||
ifneq ($(HB_COMP_PATH),)
|
||||
HB_COMPILER := mingw64
|
||||
HB_CPU := x86_64
|
||||
ifneq ($(wildcard $(dir $(HB_COMP_PATH))x86_64-*-mingw32-gcc-4.8*),)
|
||||
HB_COMPILER_VER := 48
|
||||
else
|
||||
ifneq ($(wildcard $(dir $(HB_COMP_PATH))x86_64-*-mingw32-gcc-4.7*),)
|
||||
HB_COMPILER_VER := 47
|
||||
else
|
||||
@@ -608,12 +611,16 @@ ifeq ($(HB_COMPILER),)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else
|
||||
HB_COMP_PATH := $(call find_in_path,gcc)
|
||||
ifneq ($(HB_COMP_PATH),)
|
||||
# Check for a mingw64-tdm gcc executable in the same directory
|
||||
ifneq ($(wildcard $(dir $(HB_COMP_PATH))x86_64-w64-mingw32-gcc$(HB_HOST_BIN_EXT)),)
|
||||
HB_COMPILER := mingw64
|
||||
ifneq ($(wildcard $(dir $(HB_COMP_PATH))x86_64-w64-mingw32-gcc-4.8*),)
|
||||
HB_COMPILER_VER := 48
|
||||
else
|
||||
ifneq ($(wildcard $(dir $(HB_COMP_PATH))x86_64-w64-mingw32-gcc-4.7*),)
|
||||
HB_COMPILER_VER := 47
|
||||
else
|
||||
@@ -625,8 +632,12 @@ ifeq ($(HB_COMPILER),)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else
|
||||
HB_COMPILER := mingw
|
||||
ifneq ($(wildcard $(dir $(HB_COMP_PATH))mingw32-gcc-4.8*),)
|
||||
HB_COMPILER_VER := 48
|
||||
else
|
||||
ifneq ($(wildcard $(dir $(HB_COMP_PATH))mingw32-gcc-4.7*),)
|
||||
HB_COMPILER_VER := 47
|
||||
else
|
||||
@@ -650,6 +661,7 @@ ifeq ($(HB_COMPILER),)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else
|
||||
HB_COMP_PATH := $(call find_in_path,wcc386)
|
||||
@@ -779,6 +791,9 @@ ifeq ($(HB_COMPILER),)
|
||||
HB_COMPILER := mingw64
|
||||
HB_CCPREFIX := i686-w64-mingw32-
|
||||
HB_CPU := x86_64
|
||||
ifneq ($(wildcard $(dir $(HB_COMP_PATH))$(HB_CCPREFIX)gcc-4.8*),)
|
||||
HB_COMPILER_VER := 48
|
||||
else
|
||||
ifneq ($(wildcard $(dir $(HB_COMP_PATH))$(HB_CCPREFIX)gcc-4.7*),)
|
||||
HB_COMPILER_VER := 47
|
||||
else
|
||||
@@ -790,6 +805,7 @@ ifeq ($(HB_COMPILER),)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else
|
||||
ifeq ($(HB_HOST_CPU),x86_64)
|
||||
# mingw-w64 build
|
||||
@@ -798,6 +814,9 @@ ifeq ($(HB_COMPILER),)
|
||||
HB_COMPILER := mingw64
|
||||
HB_CCPREFIX := x86_64-w64-mingw32-
|
||||
HB_CPU := x86_64
|
||||
ifneq ($(wildcard $(dir $(HB_COMP_PATH))$(HB_CCPREFIX)gcc-4.8*),)
|
||||
HB_COMPILER_VER := 48
|
||||
else
|
||||
ifneq ($(wildcard $(dir $(HB_COMP_PATH))$(HB_CCPREFIX)gcc-4.7*),)
|
||||
HB_COMPILER_VER := 47
|
||||
else
|
||||
@@ -809,6 +828,7 @@ ifeq ($(HB_COMPILER),)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -17,7 +17,6 @@ DOC_FILES := \
|
||||
hdr_tpl.txt \
|
||||
howtorel.txt \
|
||||
howtorep.txt \
|
||||
inet.txt \
|
||||
locks.txt \
|
||||
oldnews.txt \
|
||||
pcode.txt \
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@echo off
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem Copyright 2009-2011 Viktor Szakats (harbour syenar.net)
|
||||
rem Copyright 2009-2013 Viktor Szakats (harbour syenar.net)
|
||||
rem See COPYING.txt for licensing terms.
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
@@ -80,6 +80,8 @@ xcopy /y "%HB_DIR_UPX%upx.exe"
|
||||
xcopy /y /s /e "%HB_DIR_MINGW%" %HB_ABSROOT%comp\mingw\
|
||||
rem del %HB_ABSROOT%comp\mingw\tdm-mingw-1.908.0-4.4.1-2.exe
|
||||
|
||||
xcopy /y "%HB_DIR_MINGW%\bin\libgcc_s_seh-1.dll" %HB_ABSROOT%bin\
|
||||
xcopy /y "%HB_DIR_MINGW%\bin\libgcc_s_sjlj-1.dll" %HB_ABSROOT%bin\
|
||||
xcopy /y "%HB_DIR_MINGW%\bin\libgcc_s_dw2-1.dll" %HB_ABSROOT%bin\
|
||||
xcopy /y "%HB_DIR_MINGW%\bin\mingwm10.dll" %HB_ABSROOT%bin\
|
||||
|
||||
|
||||
70
tests/achoice3.prg
Normal file
70
tests/achoice3.prg
Normal file
@@ -0,0 +1,70 @@
|
||||
|
||||
#ifndef __HARBOUR__
|
||||
#include "clipper.ch"
|
||||
#endif
|
||||
|
||||
#include "achoice.ch"
|
||||
#include "inkey.ch"
|
||||
|
||||
/* TOFIX: Code below demonstrates an AChoice() difference between Harbour
|
||||
and Clipper it is called with the number of items in the array is
|
||||
less than number of rows determined by ( nBottom - nTop + 1 ),
|
||||
and a user function is specified for cUserFunction. In the attached
|
||||
example, a box is drawn around the area used by AChoice() to make
|
||||
it easier to see the difference in action. When cUserFunction is
|
||||
not specified, the bottom line of the box is not overwritten.
|
||||
In Clipper, the bottom line of the box is not overwritten, but
|
||||
in Harbour it is. */
|
||||
|
||||
MEMVAR m_aItems
|
||||
|
||||
PROCEDURE Main()
|
||||
|
||||
LOCAL nResult
|
||||
|
||||
PRIVATE m_aItems := { ;
|
||||
"Apple", ;
|
||||
"Blueberry", ;
|
||||
"Cashew", ;
|
||||
"Grape", ;
|
||||
"Hazelnut", ;
|
||||
"Jackfruit", ;
|
||||
"Kumquat", ;
|
||||
"Mulberry" }
|
||||
|
||||
CLS
|
||||
@ 7, 25 TO 8 + Len( m_aItems ), 57
|
||||
nResult := AChoice( 8, 26, 8 + Len( m_aItems ), 55, m_aItems,, "HotChoice" )
|
||||
IF nResult > 0
|
||||
Alert( m_aItems[ nResult ] + " selected" )
|
||||
ENDIF
|
||||
|
||||
RETURN
|
||||
|
||||
FUNCTION HotChoice( nStatus, nCurrent, window_pos )
|
||||
|
||||
LOCAL nKey, cKey
|
||||
|
||||
HB_SYMBOL_UNUSED( nCurrent )
|
||||
HB_SYMBOL_UNUSED( window_pos )
|
||||
|
||||
DO CASE
|
||||
CASE nStatus == AC_EXCEPT
|
||||
nKey := LastKey()
|
||||
cKey := Upper( hb_keyChar( nKey ) )
|
||||
DO CASE
|
||||
CASE AScan( m_aItems, {| c | Left( c, 1 ) == cKey } ) > 0
|
||||
hb_keyPut( K_ENTER )
|
||||
RETURN AC_GOTO
|
||||
CASE nKey == K_ENTER
|
||||
RETURN AC_SELECT
|
||||
CASE nKey == K_ESC
|
||||
RETURN AC_ABORT
|
||||
OTHERWISE
|
||||
?? Chr( 7 )
|
||||
ENDCASE
|
||||
CASE nStatus == AC_NOITEM
|
||||
RETURN AC_ABORT
|
||||
ENDCASE
|
||||
|
||||
RETURN AC_CONT
|
||||
@@ -2280,6 +2280,11 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
|
||||
( hbmk[ _HBMK_cPLAT ] == "wce" .AND. hbmk[ _HBMK_cCOMP ] == "mingwarm" )
|
||||
|
||||
DO CASE
|
||||
CASE File( hb_FNameDir( cPath_CompC ) + "mingw32-gcc-4.8" + hb_osFileMask() ) .OR. ;
|
||||
File( hb_FNameDir( cPath_CompC ) + "i686-w64-mingw32-gcc-4.8" + hb_osFileMask() ) .OR. ;
|
||||
File( hb_FNameDir( cPath_CompC ) + "x86_64-pc-mingw32-gcc-4.8" + hb_osFileMask() ) .OR. ;
|
||||
File( hb_FNameDir( cPath_CompC ) + "x86_64-w64-mingw32-gcc-4.8" + hb_osFileMask() )
|
||||
hbmk[ _HBMK_nCOMPVer ] := 48
|
||||
CASE File( hb_FNameDir( cPath_CompC ) + "mingw32-gcc-4.7" + hb_osFileMask() ) .OR. ;
|
||||
File( hb_FNameDir( cPath_CompC ) + "i686-w64-mingw32-gcc-4.7" + hb_osFileMask() ) .OR. ;
|
||||
File( hb_FNameDir( cPath_CompC ) + "x86_64-pc-mingw32-gcc-4.7" + hb_osFileMask() ) .OR. ;
|
||||
@@ -5517,7 +5522,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
|
||||
AAdd( hbmk[ _HBMK_aOPTD ], "-Wl, -Xdynamic" )
|
||||
ENDIF
|
||||
IF hbmk[ _HBMK_lSHARED ]
|
||||
/* TOFIX: .so is referred by its full link time search path,
|
||||
/* TOFIX: .so is referred by its full link-time search path,
|
||||
there is even a backslash present in the dir formed by
|
||||
the linker */
|
||||
AAdd( hbmk[ _HBMK_aOPTL ], "-Wl, -Xdynamic" )
|
||||
@@ -10629,7 +10634,7 @@ STATIC FUNCTION HBC_ProcessOne( hbmk, cFileName, nNestingLevel )
|
||||
hb_FNameExt( cItemL ) == ".hh" .OR. ;
|
||||
hb_FNameExt( cItemL ) == ".mm" .OR. ;
|
||||
Empty( hb_FNameExt( cItemL ) )
|
||||
/* ignore C/C++/Objective C headers */
|
||||
/* ignore C/C++/Objective-C headers */
|
||||
OTHERWISE
|
||||
AAddNew( hbmk[ _HBMK_aCH ], tmp )
|
||||
ENDCASE
|
||||
@@ -15686,7 +15691,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lMore, lLong )
|
||||
{ "-L<libpath>" , I_( "additional path to search for libraries" ) }, ;
|
||||
{ "-i<p>|-incpath=<p>" , I_( "additional path to search for headers" ) }, ;
|
||||
{ "-static|-shared" , I_( "link with static/shared libs" ) }, ;
|
||||
{ "-gt<name>" , I_( "link with GT<name> GT driver, can be repeated to link with more GTs. First one will be the default at runtime" ) }, ;
|
||||
{ "-gt<name>" , I_( "link with GT<name> GT driver, can be repeated to link with more GTs. First one will be the default at run-time" ) }, ;
|
||||
{ "-inc[-]" , I_( "enable/disable incremental build mode (default: disabled)" ) }, ;
|
||||
{ "-hbexe" , I_( "create executable (default)" ) }, ;
|
||||
{ "-hblib" , I_( "create static library" ) }, ;
|
||||
@@ -15873,7 +15878,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lMore, lLong )
|
||||
{ "-debugi18n" , "display internals on translation file generation" }, ;
|
||||
{ "-debugdepd" , "display internals of dependency detection" }, ;
|
||||
{ "-debugpars" , "display all input parameters in processing order" }, ;
|
||||
{ "-debugrte" , "generate a runtime error" } }
|
||||
{ "-debugrte" , "generate a run-time error" } }
|
||||
|
||||
LOCAL aHdr_Opt_Self := { ;
|
||||
NIL, ;
|
||||
@@ -16321,13 +16326,13 @@ STATIC PROCEDURE ShowHelp( hbmk, lMore, lLong )
|
||||
e"%1$s is an integrated and portable build tool, making it possible to " + ;
|
||||
e"create various types of executable binaries (executable, dynamic library, " + ;
|
||||
e"static library, Harbour portable binary) out of multiple types of source " + ;
|
||||
e"files (C, C++, Objective C, Harbour, gettext translations, Windows " + ;
|
||||
e"files (C, C++, Objective-C, Harbour, gettext translations, Windows " + ;
|
||||
e"resources). 'Integrated' means that a single %1$s project file can " + ;
|
||||
e"control all or most aspects of the build process. 'Portable' means that " + ;
|
||||
e"a single %1$s project file can control the build on all supported OS " + ;
|
||||
e"platforms and across all supported C compilers. It also aims to cover " + ;
|
||||
e"the majority of build tasks via short and simple project files (options). " + ;
|
||||
e"%1$s supports pure -non-Harbour- C/C++/Objective C projects as well. " + ;
|
||||
e"%1$s supports pure -non-Harbour- C/C++/Objective-C projects as well. " + ;
|
||||
e"In order to achieve above goals, %1$s will autodetect Harbour, C compiler " + ;
|
||||
e"and other required tools, then configure and call them appropriately. " + ;
|
||||
e"%1$s allows to extend the types of supported source files via plugins.\n" + ;
|
||||
|
||||
Reference in New Issue
Block a user