2009-09-16 09:22 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/bin/hb-func.sh
    * updated hb* scripts to work with HAIKU/BEOS

  * harbour/source/vm/dynlibhb.c
    * enabled dlopen()/dlclose() in HAIKU/BEOS builds
    * added TODO warning in non DOS builds which does not support
      dynamic library loading

  * harbour/source/rtl/fserr.c
    ! fixed errno translation

  * harbour/source/rtl/gttrm/gttrm.c
    + added support for CTRL+{UP,DOWN,RIGHT,LEFT} keys in HAIKU XTerm.
    + added hack for UP,DOWN,RIGHT,LEFT keys in HAIKU XTerm - it works
      only locally.
    * added two notes about problems with HAIKU XTerm which cannot be
      cleanly resolved by us:
         - reverted MIDDLE and RIGHT button
         - UP,DOWN,RIGHT,LEFT use the same sequences as
           CTRL+{UP,DOWN,RIGHT,LEFT} in XTerm 3.x.x
      any hardcoded solution is wrong in such case because XTerm can
      be used for remote access.
This commit is contained in:
Przemyslaw Czerpak
2009-09-16 07:22:52 +00:00
parent 864a0d7108
commit fb3caa2d83
5 changed files with 89 additions and 8 deletions

View File

@@ -17,6 +17,30 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-09-16 09:22 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
* updated hb* scripts to work with HAIKU/BEOS
* harbour/source/vm/dynlibhb.c
* enabled dlopen()/dlclose() in HAIKU/BEOS builds
* added TODO warning in non DOS builds which does not support
dynamic library loading
* harbour/source/rtl/fserr.c
! fixed errno translation
* harbour/source/rtl/gttrm/gttrm.c
+ added support for CTRL+{UP,DOWN,RIGHT,LEFT} keys in HAIKU XTerm.
+ added hack for UP,DOWN,RIGHT,LEFT keys in HAIKU XTerm - it works
only locally.
* added two notes about problems with HAIKU XTerm which cannot be
cleanly resolved by us:
- reverted MIDDLE and RIGHT button
- UP,DOWN,RIGHT,LEFT use the same sequences as
CTRL+{UP,DOWN,RIGHT,LEFT} in XTerm 3.x.x
any hardcoded solution is wrong in such case because XTerm can
be used for remote access.
2009-09-16 02:44 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/common/hbgete.c
! fixed typo

View File

@@ -194,7 +194,11 @@ mk_hbtools()
[ -z "${_DEFAULT_INC_DIR}" ] && _DEFAULT_INC_DIR="${HB_INC_INSTALL}"
[ -z "${_DEFAULT_LIB_DIR}" ] && _DEFAULT_LIB_DIR="${HB_LIB_INSTALL}"
HB_SYS_LIBS="-lm"
if [ "${HB_PLATFORM}" = "beos" ]; then
HB_SYS_LIBS="-lroot -lsocket"
else
HB_SYS_LIBS="-lm"
fi
HB_CRS_LIB=""
HB_SLN_LIB=""
if [ "${HB_USER_CFLAGS//-DHB_PCRE_REGEX/}" != "${HB_USER_CFLAGS}" ]; then
@@ -574,6 +578,10 @@ for gt in \${HB_GT_REQ}; do
# fi
done
if [ "\${HB_PLATFORM}" = "beos" ]; then
SYSTEM_LIBS="-L/system/lib \${SYSTEM_LIBS}"
fi
HB_LNK_ATTR=""
HARBOUR_LIBS=""
@@ -829,7 +837,11 @@ mk_hblibso()
LIBS=""
LIBSMT=""
gpm="${HB_HAS_GPM}"
linker_options="-lm"
if [ "${HB_PLATFORM}" = "beos" ]; then
linker_options="-L/system/lib -lroot -lsocket"
else
linker_options="-lm"
fi
linker_mtoptions=""
if [ "${HB_USER_CFLAGS//-DHB_PCRE_REGEX/}" != "${HB_USER_CFLAGS}" ]; then
linker_options="-lpcre ${linker_options}"

View File

@@ -252,12 +252,14 @@ void hb_fsSetIOError( BOOL fResult, USHORT uiOperation )
}
else
{
uiOsErrorLast = errno;
uiErrorLast = hb_errnoToDosError( errno );
int iErrCode = errno;
uiOsErrorLast = iErrCode;
uiErrorLast = hb_errnoToDosError( iErrCode );
}
#else
uiOsErrorLast = errno;
uiErrorLast = hb_errnoToDosError( uiOsErrorLast );
int iErrCode = errno;
uiOsErrorLast = iErrCode;
uiErrorLast = hb_errnoToDosError( iErrCode );
#endif
}
pIOErrors = hb_stackIOErrors();

View File

@@ -1002,6 +1002,19 @@ static void set_tmevt( PHB_GTTRM pTerm, unsigned char *cMBuf, mouseEvent * mEvt
mEvt->col = col;
}
#if defined( HB_OS_BEOS )
/* warning in HAIKU/BEOS MIDDLE and RIGHT buttons are reverted */
switch( cMBuf[0] & 0xC3 )
{
case 0x1:
cMBuf[0] = 0x2;
break;
case 0x2:
cMBuf[0] = 0x1;
break;
}
#endif
switch( cMBuf[0] & 0xC3 )
{
case 0x0:
@@ -2397,6 +2410,28 @@ static void init_keys( PHB_GTTRM pTerm )
{ 0, NULL } };
#if defined( HB_OS_BEOS )
/* warning above XFree 3.x.x CTRL + {UP,DOWN,RIGHT,LEFT} kyes create
* collision with HAIKU/BEOS XTerm and standard CTRL keys
*/
static const keySeq haikuStdKeySeq[] = {
{ EXKEY_UP , "\033OA" },
{ EXKEY_DOWN , "\033OB" },
{ EXKEY_RIGHT, "\033OC" },
{ EXKEY_LEFT , "\033OD" },
{ 0, NULL } };
#endif
static const keySeq haikuCtrlKeySeq[] = {
/* HAIKU/BEOS XTerm CTRL + {UP,DOWN,RIGHT,LEFT} kyes */
{ EXKEY_UP |KEY_CTRLMASK, "\033O5A" },
{ EXKEY_DOWN |KEY_CTRLMASK, "\033O5B" },
{ EXKEY_RIGHT |KEY_CTRLMASK, "\033O5C" },
{ EXKEY_LEFT |KEY_CTRLMASK, "\033O5D" },
{ 0, NULL } };
static const keySeq rxvtKeySeq[] = {
{ EXKEY_HOME, "\033[H" },
@@ -2708,6 +2743,10 @@ static void init_keys( PHB_GTTRM pTerm )
addKeyTab( pTerm, stdCursorKeySeq );
addKeyTab( pTerm, xtermModKeySeq );
addKeyTab( pTerm, puttyKeySeq );
addKeyTab( pTerm, haikuCtrlKeySeq );
#if defined( HB_OS_BEOS )
addKeyTab( pTerm, haikuStdKeySeq );
#endif
}
else if( pTerm->terminal_type == TERM_LINUX )
{

View File

@@ -66,8 +66,8 @@
#if !defined( HB_HAS_DLFCN ) && \
( ( defined( HB_OS_LINUX ) && !defined( __WATCOMC__ ) ) || \
defined( HB_OS_SUNOS ) || \
defined( HB_OS_DARWIN ) )
defined( HB_OS_SUNOS ) || defined( HB_OS_DARWIN ) || \
defined( HB_OS_BEOS ) )
# define HB_HAS_DLFCN
#endif
@@ -113,6 +113,10 @@ HB_FUNC( HB_LIBLOAD )
}
#elif defined( HB_HAS_DLFCN )
hDynLib = ( void * ) dlopen( hb_parc( 1 ), RTLD_LAZY | RTLD_GLOBAL );
#elif !defined( HB_OS_DOS )
{
int TODO;
}
#endif
/* set real marker */
hb_vmInitSymbolGroup( hDynLib, argc, argv );