See ChangeLog entry 19990914-20:45 EDT David G. Holm <dholm@jsd-llc.com>

This commit is contained in:
David G. Holm
1999-09-16 00:59:18 +00:00
parent 2611bfd089
commit 402d4e5da7
10 changed files with 172 additions and 67 deletions

View File

@@ -1,3 +1,15 @@
19990914-20:45 EDT David G. Holm <dholm@jsd-llc.com>
+ config/win32/mingw32.cf
* source/hbpp/hbpp.c
* source/hbpp/hbppint.c
* source/rtl/console.c
* source/rtl/dir.c
* source/rtl/environ.c
* source/rtl/filesys.c
* source/rtl/inkey.c
* source/rtl/tone.c
+ Added __MINGW32__ support for Cygnus GCC compiler.
19990916-02:25 GMT+1 Victor Szel <info@szelvesz.hu>
* source/compiler/symbols.asm (removed)

View File

@@ -0,0 +1,52 @@
#
# $Id$
#
include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf
OBJ_EXT = .o
EXE_EXT = .exe
LIB_PREF = lib
LIB_EXT = .a
CC = gcc
CC_IN = -c
CC_OUT = -o
CPPFLAGS = -DDEBUG -I. -I$(HB_INC_COMPILE) -mno-cygwin
CFLAGS = -Wall -g
LD = gcc
LD_OUT = -o
# Add all libraries specified in LIBS.
ifeq ($(HB_LIB_COMPILE),)
LINKPATHS += $(foreach lib, $(LIBS), -L$(TOP)$(ROOT)source/$(lib)/$(ARCH))
else
LINKPATHS += -L$(HB_LIB_COMPILE)
endif
# The -( option could be appropriate to link against libraries with
# cyclic dependencies, but I think it is not really necessary if the
# libraries are kept in proper order.
# LINKLIBS += -Wl,-(
LINKLIBS += $(foreach lib, $(LIBS), -l$(lib))
# If LIBS specifies the rdd library, add all DB drivers.
ifeq ($(findstring rdd,$(LIBS)),rdd)
LINKPATHS += $(foreach drv, $(HB_DB_DRIVERS), -L$(TOP)$(ROOT)source/rdd/$(drv)/$(ARCH))
LINKLIBS += $(foreach drv, $(HB_DB_DRIVERS), -l$(drv))
endif
# The -) option could be appropriate to link against libraries with
# cyclic dependencies, but I think it is not really necessary if the
# libraries are kept in proper order.
# LINKLIBS += -Wl,-)
LDFLAGS = $(LINKPATHS) -mno-cygwin
AR = ar
ARFLAGS =
AR_RULE = $(AR) $(ARFLAGS) r $@ $^ || $(RM) $@
include $(TOP)$(ROOT)config/rules.cf

View File

@@ -34,7 +34,7 @@
*/
#include <stdlib.h>
#if defined(__GNUC__)
#if defined(__GNUC__) && ! defined(__MINGW32__)
#include <string.h>
#include <unistd.h>
#else

View File

@@ -34,17 +34,15 @@
their web site at http://www.gnu.org/).
*/
#if defined(__GNUC__) || defined(__WATCOMC__)
#if ( defined(__GNUC__) || defined(__WATCOMC__) ) && ! defined(__MINGW32__)
#include <string.h>
#include <stdlib.h>
#else
#if ( defined(_MSC_VER) || defined(__IBMCPP__) )
#elif ( defined(_MSC_VER) || defined(__IBMCPP__) )
#include <memory.h>
#include <stdlib.h>
#else
#else
#include <alloc.h>
#include <mem.h>
#endif
#endif
#include <stdio.h>
#include "hbpp.h"

View File

@@ -69,7 +69,7 @@
#include "gtapi.h" /* HARBOUR_USE_GTAPI is checked inside gtapi.h, so that
we can always get the border styles */
#if defined(__GNUC__)
#if defined(__GNUC__) && ! defined(__MINGW32__)
#include <unistd.h>
#if defined(__DJGPP__) || defined(__CYGWIN__) || defined(HARBOUR_GCC_OS2)
#include <io.h>

View File

@@ -7,6 +7,7 @@
* by the optional file and attribute mask.
*
* Latest mods:
* 1.49 19990915 dholm Added __MINGW32__ support
* 1.46 19990915 ptucker Return results are now fully compatible
* particularly using MSVC - other os's need
* testing.
@@ -69,9 +70,12 @@
#define INCL_DOSERRORS
#endif
#if defined(_MSC_VER)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#if defined(_MSC_VER) || defined(__MINGW32__)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#if defined(__MINGW32__)
#define HB_DONT_DEFINE_BASIC_TYPES
#endif
#endif
#include <ctype.h>
@@ -79,7 +83,7 @@
#include "itemapi.h"
#include "directry.ch"
#if defined(__GNUC__)
#if defined(__GNUC__) && ! defined(__MINGW32__)
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
@@ -102,7 +106,7 @@
#include <time.h>
#endif
#if defined(__WATCOMC__) || defined(_MSC_VER)
#if defined(__WATCOMC__) || defined(_MSC_VER) || defined(__MINGW32__)
#include <sys/stat.h>
#include <share.h>
#include <fcntl.h>
@@ -285,7 +289,7 @@ static USHORT osAttributesToMask( BYTE * byAttrib )
#else
#if defined(__IBMCPP__)
#else
#if defined(_MSC_VER)
#if defined(_MSC_VER) || defined(__MINGW32__)
#elif defined(__BORLANDC__) || defined(__DJGPP__)
#else
#endif
@@ -305,7 +309,7 @@ static BYTE * osMaskToAttributes( USHORT usMask, BYTE * byAttrib )
#else
#if defined(__IBMCPP__)
#else
#if defined(_MSC_VER)
#if defined(_MSC_VER) || defined(__MINGW32__)
#elif defined(__BORLANDC__) || defined(__DJGPP__)
#else
#endif
@@ -432,7 +436,7 @@ HARBOUR HB_DIRECTORY( void )
struct stat statbuf;
struct tm * ft;
#if defined(_MSC_VER )
#if defined(_MSC_VER ) || defined(__MINGW32__)
struct _finddata_t entry;
long hFile;
#elif defined(__IBMCPP__)
@@ -541,7 +545,7 @@ HARBOUR HB_DIRECTORY( void )
tzset();
pDir = hb_itemArrayNew( 0 );
#if defined(_MSC_VER)
#if defined(_MSC_VER) || defined(__MINGW32__)
strcpy( string, dirname );
strcat( string, pattern );
@@ -624,7 +628,7 @@ HARBOUR HB_DIRECTORY( void )
{
attrib = 0;
#if defined(_MSC_VER)
#if defined(_MSC_VER) || defined(__MINGW32__)
/* due to short-name support: reconstruct the filename */
if( bEightDotThree )
{
@@ -672,7 +676,7 @@ HARBOUR HB_DIRECTORY( void )
#if defined(__IBMCPP__)
attrib = entry.attrFile;
#else
#if defined(_MSC_VER)
#if defined(_MSC_VER) || defined(__MINGW32__)
attrib = entry.attrib;
if( bEightDotThree )
{
@@ -750,7 +754,7 @@ HARBOUR HB_DIRECTORY( void )
}
}
}
#if defined(_MSC_VER)
#if defined(_MSC_VER) || defined(__MINGW32__)
while( _findnext( hFile, &entry ) == 0 );
_findclose( hFile );
#elif defined(__IBMCPP__)
@@ -763,7 +767,7 @@ HARBOUR HB_DIRECTORY( void )
hb_itemReturn( pDir ); /* DIRECTORY() returns an array */
hb_itemRelease( pDir );
#if defined(_MSC_VER) || defined(__IBMCPP__)
#if defined(_MSC_VER) || defined(__IBMCPP__) || defined(__MINGW32__)
}
#endif

View File

@@ -19,10 +19,13 @@
/* NOTE: The following #ifdef block #including <windows.h> must
be ahead of any and all #include statements! */
#if defined(_Windows) || defined(_WIN32)
#if defined(_Windows) || defined(_WIN32) || defined(__MINGW32__)
#if !defined(__CYGWIN__)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#if defined(__MINGW32__)
#define HB_DONT_DEFINE_BASIC_TYPES
#endif
#endif
#endif
@@ -30,12 +33,12 @@
#include "errorapi.h"
#include "hbver.h"
#if defined(__TURBOC__) || defined(__BORLANDC__) || defined(__MSC__) || defined(_MSC_VER) || defined(__DJGPP__)
#if defined(__TURBOC__) || defined(__BORLANDC__) || defined(__MSC__) || defined(_MSC_VER) || defined(__DJGPP__) || defined(__MINGW32__)
#include <dos.h>
#include <stdlib.h>
#endif
#if defined(__GNUC__) && !defined(__DJGPP__)
#if defined(__GNUC__) && !defined(__DJGPP__) && ! defined(__MINGW32__)
#include <sys/utsname.h>
#endif
@@ -79,7 +82,7 @@ HARBOUR HB_OS( void )
#else
#if defined(__GNUC__) && !defined(__DJGPP__)
#if defined(__GNUC__) && !defined(__DJGPP__) && !defined(__MINGW32__)
struct utsname un;
@@ -97,9 +100,9 @@ HARBOUR HB_OS( void )
#else
/* TODO: add MSVC support but MSVC cannot detect any OS except Windows! */
#if defined(__TURBOC__) || defined(__BORLANDC__) || defined(__MSC__) || defined(_MSC_VER)
#if defined(__TURBOC__) || defined(__BORLANDC__) || defined(__MSC__) || defined(_MSC_VER) || defined(__MINGW32__)
#if defined(_Windows) || defined(_WIN32)
#if defined(_Windows) || defined(_WIN32) || defined(__MINGW32__)
/* NOTE: Support for determining the window version by Luiz Rafael Culik
Culik@sl.conex.net
@@ -297,7 +300,7 @@ HARBOUR HB_GETENV( void )
HARBOUR HB___RUN( void )
{
#if defined(__TURBOC__) || defined(__BORLANDC__) || defined(__DJGPP__) || defined(__MSC__) || defined(_MSC_VER) || defined(__IBMCPP__) || defined(HARBOUR_GCC_OS2) || defined(__CYGWIN__)
#if defined(__TURBOC__) || defined(__BORLANDC__) || defined(__DJGPP__) || defined(__MSC__) || defined(_MSC_VER) || defined(__IBMCPP__) || defined(HARBOUR_GCC_OS2) || defined(__CYGWIN__) || defined(__MINGW32__)
if( ISCHAR( 1 ) )
system( hb_parc( 1 ) );
#else

View File

@@ -46,7 +46,7 @@
#include <io.h>
#endif
#if defined(__GNUC__)
#if defined(__GNUC__) && !defined(__MINGW32__)
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
@@ -80,7 +80,7 @@
#endif
#endif
#if defined(__BORLANDC__) || defined(__IBMCPP__) || defined(_MSC_VER)
#if defined(__BORLANDC__) || defined(__IBMCPP__) || defined(_MSC_VER) || defined(__MINGW32__)
#include <sys\stat.h>
#include <io.h>
#include <fcntl.h>
@@ -90,7 +90,7 @@
#include <dir.h>
#endif
#if defined(_MSC_VER)
#if defined(_MSC_VER) || defined(__MINGW32__)
#include <sys\locking.h>
#else
#if !defined(HAVE_POSIX_IO)
@@ -163,7 +163,7 @@ extern int rename( const char *, const char * );
/* Convert HARBOUR flags to IO subsystem flags */
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
static int convert_open_flags( USHORT uiFlags )
{
@@ -173,7 +173,7 @@ static int convert_open_flags( USHORT uiFlags )
result_flags |= O_BINARY;
/* DEBUG: printf("\nconvert_open_flags: O_BINARY"); */
#if defined( _MSC_VER )
#if defined( _MSC_VER ) || defined(__MINGW32__)
if( uiFlags == 0 )
{
result_flags |= O_RDONLY;
@@ -201,7 +201,7 @@ static int convert_open_flags( USHORT uiFlags )
/* DEBUG: printf(" O_RDWR"); */
}
#if ! defined(_MSC_VER)
#if ! defined(_MSC_VER) && ! defined(__MINGW32__)
/* shared flags */
if( ( uiFlags & FO_DENYREAD ) == FO_DENYREAD )
{
@@ -292,9 +292,7 @@ FHANDLE hb_fsOpen( BYTE * pFilename, USHORT uiFlags )
hFileHandle = open( ( char * ) pFilename, convert_open_flags( uiFlags ) );
s_uiErrorLast = errno;
#else
#if defined(_MSC_VER)
#elif defined(_MSC_VER)
int iShare = _SH_DENYNO;
@@ -314,13 +312,31 @@ FHANDLE hb_fsOpen( BYTE * pFilename, USHORT uiFlags )
hFileHandle = _open( ( char * ) pFilename, convert_open_flags( uiFlags ) );
s_uiErrorLast = errno;
#else
#elif defined(__MINGW32__)
int iShare = SH_DENYNO;
if( ( uiFlags & FO_DENYREAD ) == FO_DENYREAD )
iShare = SH_DENYRD;
else if( uiFlags & FO_EXCLUSIVE )
iShare = SH_DENYRW;
else if( uiFlags & FO_DENYWRITE )
iShare = SH_DENYWR;
errno = 0;
if( iShare )
hFileHandle = sopen( ( char * ) pFilename, convert_open_flags( uiFlags ), iShare );
else
hFileHandle = open( ( char * ) pFilename, convert_open_flags( uiFlags ) );
s_uiErrorLast = errno;
#else
hFileHandle = FS_ERROR;
s_uiErrorLast = FS_ERROR;
#endif
#endif
return hFileHandle;
@@ -334,7 +350,7 @@ FHANDLE hb_fsCreate( BYTE * pFilename, USHORT uiFlags )
s_uiErrorLast = 0;
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
errno = 0;
convert_create_flags( uiFlags, &oflag, &pmode );
@@ -359,7 +375,7 @@ FHANDLE hb_fsCreate( BYTE * pFilename, USHORT uiFlags )
void hb_fsClose( FHANDLE hFileHandle )
{
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
errno = 0;
close( hFileHandle );
@@ -395,7 +411,7 @@ void hb_fsSetDevMode( FHANDLE hFileHandle, USHORT uiDevMode )
}
s_uiErrorLast = errno;
#elif defined(_MSC_VER)
#elif defined(_MSC_VER) || defined(__MINGW32__)
errno = 0;
switch( uiDevMode )
@@ -422,7 +438,7 @@ USHORT hb_fsRead( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount )
{
USHORT uiRead;
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
errno = 0;
uiRead = read( hFileHandle, pBuff, uiCount );
@@ -444,7 +460,7 @@ USHORT hb_fsWrite( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount )
{
USHORT uiWritten;
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
errno = 0;
uiWritten = write( hFileHandle, pBuff, uiCount );
@@ -466,7 +482,7 @@ ULONG hb_fsReadLarge( FHANDLE hFileHandle, BYTE * pBuff, ULONG ulCount )
{
ULONG ulReadTotal = 0;
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
errno = 0;
while( ulReadTotal < ulCount )
@@ -497,7 +513,7 @@ ULONG hb_fsWriteLarge( FHANDLE hFileHandle, BYTE * pBuff, ULONG ulCount )
{
ULONG ulWrittenTotal = 0;
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
errno = 0;
while( ulWrittenTotal < ulCount )
@@ -534,7 +550,7 @@ ULONG hb_fsSeek( FHANDLE hFileHandle, LONG lOffset, USHORT uiFlags )
/* 'Seek Error' */
s_uiErrorLast = 25;
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
/* get current offset */
errno = 0;
ulPos = lseek( hFileHandle, 0, SEEK_CUR );
@@ -547,7 +563,7 @@ ULONG hb_fsSeek( FHANDLE hFileHandle, LONG lOffset, USHORT uiFlags )
else
{
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
errno = 0;
ulPos = lseek( hFileHandle, lOffset, Flags );
@@ -591,7 +607,7 @@ int hb_fsDelete( BYTE * pFilename )
#else
#if defined(_MSC_VER)
#if defined(_MSC_VER) || defined(__MINGW32__)
errno = 0;
iResult = remove( ( char * ) pFilename );
@@ -613,7 +629,7 @@ int hb_fsRename( BYTE * pOldName, BYTE * pNewName )
{
int iResult;
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
errno = 0;
iResult = rename( ( char * ) pOldName, ( char * ) pNewName );
@@ -634,7 +650,7 @@ BOOL hb_fsLock ( FHANDLE hFileHandle, ULONG ulStart,
{
int iResult = 0;
#if defined(_MSC_VER)
#if defined(_MSC_VER) || defined(__MINGW32__)
ULONG ulOldPos;
#endif
@@ -653,9 +669,7 @@ BOOL hb_fsLock ( FHANDLE hFileHandle, ULONG ulStart,
}
s_uiErrorLast = errno;
#else
#if defined(_MSC_VER)
#elif defined(_MSC_VER)
ulOldPos = hb_fsSeek( hFileHandle, ulStart, FS_SET );
@@ -672,13 +686,28 @@ BOOL hb_fsLock ( FHANDLE hFileHandle, ULONG ulStart,
hb_fsSeek( hFileHandle, ulOldPos, FS_SET );
#elif defined(__MINGW32__)
ulOldPos = hb_fsSeek( hFileHandle, ulStart, FS_SET );
switch( uiMode )
{
case FL_LOCK:
iResult = _locking( hFileHandle, _LK_LOCK, ulLength );
break;
case FL_UNLOCK:
iResult = _locking( hFileHandle, _LK_UNLOCK, ulLength );
break;
}
hb_fsSeek( hFileHandle, ulOldPos, FS_SET );
#else
iResult = 1;
s_uiErrorLast = FS_ERROR;
#endif
#endif
return ( iResult ? FALSE : TRUE );
@@ -686,7 +715,7 @@ BOOL hb_fsLock ( FHANDLE hFileHandle, ULONG ulStart,
void hb_fsCommit( FHANDLE hFileHandle )
{
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER)
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
int dup_handle;
@@ -801,7 +830,7 @@ USHORT hb_fsChDrv( BYTE nDrive )
{
USHORT uiResult;
#if defined(HAVE_POSIX_IO) && ( defined(OS2) || defined(DOS) || defined(_Windows) ) && ! defined(__CYGWIN__)
#if defined(HAVE_POSIX_IO) && ( defined(OS2) || defined(DOS) || defined(_Windows) || defined(__MINGW32__) ) && ! defined(__CYGWIN__)
USHORT uiSave = _getdrive();
@@ -831,7 +860,7 @@ BYTE hb_fsCurDrv( void )
{
USHORT uiResult;
#if defined(HAVE_POSIX_IO) && ( defined(OS2) || defined(DOS) || defined(_Windows) ) && ! defined(__CYGWIN__)
#if defined(HAVE_POSIX_IO) && ( defined(OS2) || defined(DOS) || defined(_Windows) || defined(__MINGW32__) ) && ! defined(__CYGWIN__)
errno = 0;
uiResult = _getdrive();
@@ -851,7 +880,7 @@ USHORT hb_fsIsDrv( BYTE nDrive )
{
USHORT uiResult;
#if defined(HAVE_POSIX_IO) && ( defined(OS2) || defined(DOS) || defined(_Windows) ) && ! defined(__CYGWIN__)
#if defined(HAVE_POSIX_IO) && ( defined(OS2) || defined(DOS) || defined(_Windows) || defined(__MINGW32__) ) && ! defined(__CYGWIN__)
USHORT uiSave = _getdrive();

View File

@@ -32,6 +32,7 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
their web site at http://www.gnu.org/).
V 1.36 David G. Holm Added __MINGW32__ support
V 1.35 David G. Holm Changed the __CYGWIN__ build to use
the Unix keyboard input method and
modified it to not block the VM.
@@ -70,7 +71,7 @@
#include "inkey.h"
#include "init.h"
#if defined(__TURBOC__) || defined(__BORLANDC__) || defined(__MSC__) || defined(_MSC_VER)
#if defined(__TURBOC__) || defined(__BORLANDC__) || defined(__MSC__) || defined(_MSC_VER) || defined(__MINGW32__)
#include <conio.h>
#include <dos.h>
#elif defined(__DJGPP__)
@@ -145,7 +146,7 @@ static HB_inkey_enum s_eventmask;
void hb_releaseCPU( void )
{
/* TODO: Add code to release time slices on all platforms */
#if defined(_Windows)
#if defined(_Windows) || defined(__MINGW32__)
/* according to ms docs, you should not do this in a Win app. dos only */
#elif defined(OS2)
DosSleep( 25 ); /* Duration is in milliseconds */
@@ -218,7 +219,8 @@ int hb_inkeyGet( void ) /* Extract the next key from the keyboard buffer *
non-blocking Unix-style keyboard input is implemented */
char ch;
read( STDIN_FILENO, &ch, 1 );
key = ch;
if( ch == '\n' ) key = '\r';
else key = ch;
#else
hb_inkeyPoll();
if( hb_set.HB_SET_TYPEAHEAD )
@@ -267,7 +269,7 @@ void hb_inkeyPoll( void ) /* Poll the console keyboard to stuff the Harbour
if( hb_set.HB_SET_TYPEAHEAD || s_inkeyPoll )
{
int ch = 0;
#if ( defined(OS_DOS_COMPATIBLE) || defined(HARBOUR_GCC_OS2) || defined(__IBMCPP__) || defined(_Windows) ) && ! defined(__CYGWIN__)
#if ( defined(OS_DOS_COMPATIBLE) || defined(HARBOUR_GCC_OS2) || defined(__IBMCPP__) || defined(_Windows) || defined(__MINGW32__) ) && ! defined(__CYGWIN__)
/* The reason for including _Windows here is that kbhit() and getch() appear
to work properly in console mode. For true Windows mode, changes are needed. */
#if defined(HARBOUR_GCC_OS2)

View File

@@ -30,6 +30,7 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
their web site at http://www.gnu.org/).
V 1.10 David G. Holm Added __MINGW32__ support
V 1.8 David G. Holm Added '&& ! defined(_Windows)'
check to all __BORLANDC__ checks.
V 1.6 David G. Holm Added Win32 Beep(), thanks to
@@ -53,6 +54,8 @@
#include <pc.h>
#include <time.h>
#elif defined(_Windows)
#elif defined(__MINGW32__)
#include <stdlib.h>
#elif defined(__BORLANDC__)
#include <dos.h>
#include <time.h>
@@ -133,7 +136,7 @@ void hb_tone( double frequency, double duration )
ULONG temp;
#elif defined(WINNT) || defined(_Windows)
ULONG temp;
#elif defined(OS2)
#elif defined(OS2) || defined(__MINGW32__)
USHORT temp;
#elif defined(__DJGPP__) || defined(__BORLANDC__)
USHORT temp; /* Use USHORT, because this variable gets added to clock()
@@ -144,7 +147,7 @@ void hb_tone( double frequency, double duration )
ULONG temp; /* Avoid unreferenced temp */
duration = -1; /* Exit without delay */
#endif
#if defined(HARBOUR_GCC_OS2) || defined(OS2) || defined(WINNT) || defined(_Windows)
#if defined(HARBOUR_GCC_OS2) || defined(OS2) || defined(WINNT) || defined(_Windows) || defined(__MINGW32__)
frequency = MIN( MAX( 0.0, frequency ), 32767.0 );
duration = duration * 1000.0 / 18.2; /* milliseconds */
#elif defined(__DJGPP) || defined(__BORLANDC__)
@@ -160,7 +163,7 @@ void hb_tone( double frequency, double duration )
{
#if defined(HARBOUR_GCC_OS2) || defined(_Windows) || defined(__CYGWIN__)
temp = MIN( MAX ( 0, duration ), ULONG_MAX );
#elif defined(OS2) || defined(__BORLANDC__) || defined(__DJGPP__)
#elif defined(OS2) || defined(__BORLANDC__) || defined(__DJGPP__) || defined(__MINGW32__)
temp = MIN( MAX ( 0, duration ), USHRT_MAX );
#endif
duration -= temp;
@@ -176,6 +179,8 @@ void hb_tone( double frequency, double duration )
DosBeep( ( ULONG ) frequency, temp );
#elif defined(OS2)
DosBeep( ( USHORT ) frequency, temp );
#elif defined(__MINGW32__)
beep( frequency, temp );
#elif defined(WINNT)
Beep( ( ULONG ) frequency, temp );
#elif defined(_Windows) && ! defined(_Windows)