20000330-23:10 GMT+1 Maurilio Longo <maurilio.longo@libero.it>

This commit is contained in:
Maurilio Longo
2000-03-30 21:10:20 +00:00
parent 3c79f6d7f4
commit f805ed043a
3 changed files with 48 additions and 10 deletions

View File

@@ -1,3 +1,10 @@
20000330-23:04 GMT+1 Maurilio Longo <maurilio.longo@libero.it>
* include/hbvmpub.h
! with OS/2 GCC pragma pack(8) is not valid
* source/rtl/gtos2/gtos2.c
* with OS/2 GCC kbhit() is not available (it's a ToolKit function)
20000330-12:15 EST Paul Tucker <ptucker@sympatico.ca>
* source/rtl/dates.c
* account for possible overflow in calculation
@@ -149,7 +156,7 @@
20000327-21:35 GMT+1 Victor Szakats <info@szelvesz.hu>
! Trash in harbour CVS root directory removed by SourceForge staff.
! File permission error corrected for CONTRIB/RDD_ADS/ dir
! File permission error corrected for CONTRIB/RDD_ADS/ dir
by SourceForge staff.
* utils/hbextern/hbextern.prg
@@ -193,7 +200,7 @@
+ The JAVA runner contribution has been added to a new directory
along with all the support files needed to make it work.
Thanks to Matteo Baccan for this contribution.
; !! WARNING !! I could not test this since I don't have the java
; !! WARNING !! I could not test this since I don't have the java
tools needed.
* makefile.vc
@@ -241,17 +248,17 @@
* include/clipdefs.h
* Now the HARBOUR keyword requires the function name to be in uppercase.
The compatibility CLIPPER keyword still allows for mixed case function
names on some platforms. The reason is that "pascal" keyword is
names on some platforms. The reason is that "pascal" keyword is
non-portable, and the above requirement was already there for some
platforms, now it's a generic rule.
- Removed the __attribute__ ((stdcall)) for the __GNUC__ branch. Setting
any specific calling convention is not needed, since we don't need to
deal with compatibility with precompiled legacy libs, there's no
any specific calling convention is not needed, since we don't need to
deal with compatibility with precompiled legacy libs, there's no
such thing, CA-Cl*pper never supported GNU C.
; Now the HARBOUR macro is quite simple, it's plain "void".
* source/pp/ppcore.c
+ Added predefined macro __HB_MAIN__. The macro is undefined or holds the
+ Added predefined macro __HB_MAIN__. The macro is undefined or holds the
value of HARBOUR_START_PROCEDURE depending on the compiler.
Use this code to make your Harbour startup procedure platform/compiler
independent:
@@ -331,7 +338,7 @@
+ bin/bld.*
+ GNU-make starters renamed to better show their purpose.
+ GNU-make starters modified to work like bld_gnu.*, so that they don't
need to be modified, instead they expect the HB_ envvars to be set. Now
need to be modified, instead they expect the HB_ envvars to be set. Now
they also throw a help screen when something is not set.
+ BLD.SH bash script added to build Harbour executables.
+ Other small improvements.

View File

@@ -44,9 +44,16 @@ extern "C" {
struct _HB_DYNS;
/* 30/03/2000 - maurilio.longo@libero.it
OS/2 GCC valid values for pragma pack are 1, 2, 4 with 4 being default
*/
#if !defined(HARBOUR_GCC_OS2)
/* symbol support structure */
#pragma pack(8)
#endif
typedef struct
{
char * szName; /* the name of the symbol */

View File

@@ -58,9 +58,13 @@
#define INCL_DOSPROCESS
#define INCL_NOPMAPI
#include <string.h>
#include <os2.h>
/* 25/03/2000 - maurilio.longo@libero.it
OS/2 GCC hasn't got ToolKit headers available */
#if defined(HARBOUR_GCC_OS2)
#include <stdlib.h>
#else
#include <bsedos.h>
#endif
#include <conio.h>
#include "hbapigt.h"
@@ -105,12 +109,30 @@ BOOL hb_gt_AdjustPos( BYTE * pStr, ULONG ulLen )
return TRUE;
}
int hb_gt_ReadKey( HB_inkey_enum eventmask )
{
int ch;
HB_TRACE(HB_TR_DEBUG, ("hb_gt_ReadKey(%d)", (int) event_mask));
#if defined(HARBOUR_GCC_OS2)
/* 25/03/2000 - maurilio.longo@libero.it
kbhit() isn't available when using emx/gcc under OS/2,
there is _read_kbd(), instead, which can be used to fetch characters from
keyboard buffer.
*/
ch = _read_kbd(0, 0, 0); /* readkey without echoing, waiting or breaking */
if(ch == 0) {
ch = _read_kbd(0, 0, 0);
if(ch != EOF) {
ch += 256;
}
}
/* TODO: Use KBDxxx subsystem to fetch keys */
#else
if( kbhit() )
{
/* A key code is available in the BIOS keyboard buffer, so read it */
@@ -133,12 +155,13 @@ int hb_gt_ReadKey( HB_inkey_enum eventmask )
}
else
ch = 0;
#endif
/* Perform key translations */
switch( ch )
{
case -1: /* No key available */
return;
return 0;
case 328: /* Up arrow */
ch = K_UP;
break;
@@ -247,6 +270,7 @@ int hb_gt_ReadKey( HB_inkey_enum eventmask )
return ch;
}
BOOL hb_gt_IsColor( void )
{
/* Chen Kedem <niki@actcom.co.il> */