BeOS port related changes (initial commit)

This commit is contained in:
zharik 2003-03-29 21:51:19 +00:00
parent ff3bd0a039
commit f760aae131
24 changed files with 844 additions and 244 deletions

View File

@ -115,8 +115,11 @@ bool PopupLocked(long tries, int isopen, const char* file) {
} }
// Pause approx 1 second before trying again // Pause approx 1 second before trying again
#ifndef __BEOS__
usleep(1000); usleep(1000);
#else
sleep(1);
#endif
// Try again // Try again
return true; return true;
} }

View File

@ -24,63 +24,63 @@
## Master build file. ## Master build file.
## ------------------------------------------------------------------ ## ------------------------------------------------------------------
gcalst cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gcalst cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gcarea cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gcarea cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gccfgg cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gccfgg cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gccfgg0 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gccfgg0 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gccfgg1 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gccfgg1 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gccfgg2 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gccfgg2 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gccfgg3 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gccfgg3 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gccfgg4 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gccfgg4 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gccfgg5 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gccfgg5 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gccfgg6 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gccfgg6 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gccfgg7 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gccfgg7 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gccfgg8 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gccfgg8 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gckeys cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gckeys cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gclang cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gclang cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gcmisc cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gcmisc cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gealst cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gealst cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gearea cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gearea cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gecarb cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gecarb cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gecmfd cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gecmfd cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gectnr cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gectnr cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gectrl cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gectrl cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gedoit cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gedoit cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gedoss cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gedoss cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
geedit cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg geedit cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
geedit2 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg geedit2 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
geedit3 cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg geedit3 cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gefile cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gefile cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gefind cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gefind cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
geglob cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg geglob cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gehdre cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gehdre cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gehdrs cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gehdrs cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
geinit cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg geinit cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
geline cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg geline cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gelmsg cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gelmsg cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gemain cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gemain cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gemenu cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gemenu cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gemlst cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gemlst cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gemnus cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gemnus cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gemrks cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gemrks cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gemsgs cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gemsgs cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
genode cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg genode cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
geplay cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg geplay cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gepost cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gepost cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
geqwks cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg geqwks cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gerand cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gerand cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
geread cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg geread cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
geread2 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg geread2 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gescan cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gescan cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gesrch cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gesrch cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gesoup cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gesoup cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
getpls cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg getpls cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
geusrbse cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg geusrbse cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
geutil cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg geutil cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
geutil2 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg geutil2 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
geview cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg geview cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gmarea cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg gmarea cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
golded3 cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg golded3 cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
gedcyg rc cyg gedcyg rc cyg
gedemx rc emx gedemx rc emx

View File

@ -111,6 +111,11 @@ const char* __gver_shortver__ = __GVER_SVER__(__GVER_MAJOR__,__GVER_MINOR__,__GV
#define __GVER_SHORTPLATFORM__ "BSD" #define __GVER_SHORTPLATFORM__ "BSD"
#define __GVER_SHORTLOGNAME__ "B" #define __GVER_SHORTLOGNAME__ "B"
#define __GVER_CFGEXT__ ".geb" #define __GVER_CFGEXT__ ".geb"
#elif defined(__BEOS__)
#define __GVER_PLATFORM__ "/BeOS"
#define __GVER_SHORTPLATFORM__ "BeOS"
#define __GVER_SHORTLOGNAME__ "B"
#define __GVER_CFGEXT__ ".gbe"
#elif defined(__UNIX__) #elif defined(__UNIX__)
#define __GVER_PLATFORM__ "/UNX" #define __GVER_PLATFORM__ "/UNX"
#define __GVER_SHORTPLATFORM__ "UNX" #define __GVER_SHORTPLATFORM__ "UNX"

113
goldlib/gall/be_lock.c Normal file
View File

@ -0,0 +1,113 @@
/*
BeLock.c - implementation of Fido-style message bases lock library.
Copyright 2001-2003 Siarzhuk Zharski, imker@gmx.li
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
4. Neither the names of the authors nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
#include <stdio.h>
#include <errno.h>
#include "be_lock.h"
static const char rcsid[]="$Id$";
static status_t look_for_port(int file_handle, bool b_create, port_id *port_id_ptr)
{
status_t status = B_OK;
struct stat st = {0};
char name[B_OS_NAME_LENGTH] = {0};
if(fstat(file_handle, &st))
return B_IO_ERROR;
sprintf(name, "FidoLock:%08X:%08X", st.st_dev, st.st_ino);
*port_id_ptr = find_port(name);
if(*port_id_ptr == B_NAME_NOT_FOUND)
{
if(b_create)
{
*port_id_ptr = create_port(1, name);
if(*port_id_ptr == B_BAD_VALUE || *port_id_ptr == B_NO_MORE_PORTS)
status = *port_id_ptr;
}
else
status = B_NAME_NOT_FOUND;
}
else // already have such lock ...
status = B_BUSY;
return status;
}
status_t beos_lock(int file_handle)
{
port_id pid = 0;
return look_for_port(file_handle, true, &pid);
}
status_t beos_unlock(int file_handle)
{
port_id pid = 0;
status_t status = look_for_port(file_handle, false, &pid);
if(status == B_BUSY)
status = delete_port(pid);
return status;
}
#define IMPLEMENT_BEOS_FUNC(_FUNC_NAME, _FUNC)\
status_t _FUNC_NAME(FILE *handle) \
{ \
int file_handle = fileno(handle); \
if(file_handle == -1) \
return B_IO_ERROR; \
return _FUNC(file_handle); \
} \
IMPLEMENT_BEOS_FUNC(beos_flock, beos_lock)
IMPLEMENT_BEOS_FUNC(beos_funlock, beos_unlock)
#define IMPLEMENT_BE_FUNC(_FUNC_NAME, _HANDLE_TYPE, _FUNC)\
int _FUNC_NAME(_HANDLE_TYPE handle)\
{ \
int ret_value = 0; \
status_t status = _FUNC(handle); \
if(status != B_OK) \
{ \
errno = status; \
ret_value = -1; \
} \
return ret_value; \
} \
IMPLEMENT_BE_FUNC(be_lock, int, beos_lock)
IMPLEMENT_BE_FUNC(be_unlock, int, beos_unlock)
IMPLEMENT_BE_FUNC(be_flock, FILE *, beos_flock)
IMPLEMENT_BE_FUNC(be_funlock, FILE *, beos_funlock)

143
goldlib/gall/be_lock.h Normal file
View File

@ -0,0 +1,143 @@
/*
BeLock.h - interface to Fido-style message bases lock library.
Copyright 2001-2003 Siarzhuk Zharski, imker@gmx.li
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
4. Neither the names of the authors nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*/
/*
COMMENT: Many of Fidonet message bases uses file locks for theirs work in
concurrent environment. The Be Operating System has not such possibility.
Existing BeOS inplementations of locking allows to block only "nodes" from
any access. This blocking cannot prevent from some "entry" modification
attempts - for example, you can delete such file without problems or move
it to somewhere. The node is still locked but it is not that we wait for.
After long discussion on beos developer mail-lists I have not found usable
solution for this problem. That's why I decide to implement some alternative
locking technology. The key idea of my locking is using some BeOS-specific
kernel objects. At this time I found only single one to be accessible from
many processes - the BeOS kernel ports. See BeBook->Kernel Kit->Ports for
details. We can create port with some name and we can look for port with
such name in the system. Than, the locking algorithm is below:
1) Get the device and node IDs for file handle we going to lock:
fstat(file_handle, &stat_info);
2) Create the name for the port to be used as locking object:
sprintf(name, "FidoLock:%08X:%08X", stat_info.st_dev, stat_info.st_ino);
3) Look for existing port with this name:
pid = find_port(name);
if(pid == B_NAME_NOT_FOUND)
{
4) Create such port.
pid = create_port(1, name);
}
else
{
5) If such port exists - the file is locked - we must not touch it now -
say calling program about failed lock.
}
To unlock locked file - just delete the port
delete_port(pid);
This technique is also not perfect, but, in my opinion it is more safe than
node locking and more safe that work without any locking at al.
*/
#ifndef __BeLock_H_
#define __BeLock_H_
#include <OS.h>
#ifdef __cplusplus
extern "C" {
#endif //__cplusplus
/* be[os]_[f][un]lock() - acquires/releases file lock for file handle or stream
parameters:
file_handle - hanlde to file you want to [un]lock
file - opened stream for file you want to [un]lock
returns:
be_* - set of functions:
0 - on success
-1 - on fails. See errno for error code and B_* - codes below.
beos_* - set of functions:
B_OK
[0x00000000] - on success
other codes on error:
B_IO_ERROR (EIO)
[0x80000001] - input/output error.
For example fstat or fileno on file handles failed.
B_NAME_NOT_FOUND
[0x80000007] - port_name doesn't name an existing port.
Try to unlock non-existing filelock.
B_BAD_VALUE (EINVAL)
[0x80000005] - port's queue_length is too big or less than zero.
Error creating new port.
B_NO_MORE_PORTS
[0x80001201] - the system couldn't allocate another port.
Error creating new port.
B_BUSY (EBUSY)
[0x8000000E] - file is already locked - port exists.
B_BAD_PORT_ID
[0x80001200] - port doesn't identify an open port.
$Id$
*/
int be_lock(int file_handle);
int be_unlock(int file_handle);
int be_flock(FILE *file);
int be_funlock(FILE *file);
status_t beos_lock(int file_handle);
status_t beos_unlock(int file_handle);
status_t beos_flock(FILE *file);
status_t beos_funlock(FILE *file);
#ifdef __cplusplus
} //extern "C"
#endif //__cplusplus
#endif // __BeLock_H_

View File

@ -22,117 +22,117 @@
## ------------------------------------------------------------------ ## ------------------------------------------------------------------
## CRC and hash calculation. ## CRC and hash calculation.
gcrc16tb cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gcrc16tb cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gcrc32tb cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gcrc32tb cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gcrchash cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gcrchash cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gcrckeyv cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gcrckeyv cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gcrcm16 cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gcrcm16 cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gcrcm32 cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gcrcm32 cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gcrcs16 cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gcrcs16 cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gcrcs32 cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gcrcs32 cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Debugging. ## Debugging.
gdbgerr cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gdbgerr cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gdbgexit cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gdbgexit cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gdbgtrk cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gdbgtrk cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Directory handling. ## Directory handling.
gdirposx cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gdirposx cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Expression evaluators. ## Expression evaluators.
geval cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg geval cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gevalhum cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gevalhum cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gevalrpn cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gevalrpn cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## File handling. ## File handling.
gfile cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gfile cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gfilport cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gfilport cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gfilutl1 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gfilutl1 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gfilutl2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gfilutl2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## FTN address classes. ## FTN address classes.
gftnaddr cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gftnaddr cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Nodelist index access classes. ## Nodelist index access classes.
gftnnl cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gftnnl cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gftnnlfd cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gftnnlfd cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gftnnlfu cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gftnnlfu cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gftnnlge cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gftnnlge cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gftnnlv7 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gftnnlv7 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Keyboard. ## Keyboard.
gkbdbase cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gkbdbase cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gkbdgetm cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gkbdgetm cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gkbdunix cpp all nov lnx gkbdunix cpp all nov lnx be
gkbdwait cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gkbdwait cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Logfile class. ## Logfile class.
glog cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg glog cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Misc. memory stuff. ## Misc. memory stuff.
gmemdbg cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmemdbg cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmemutil cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmemutil cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Mouse. ## Mouse.
gmoubase cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmoubase cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Message attributes. ## Message attributes.
gmsgattr cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmsgattr cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Message handling. ## Message handling.
ghdrmime cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg ghdrmime cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## GoldED printer definition strings. ## GoldED printer definition strings.
gprnutil cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gprnutil cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## UNIX signals. ## UNIX signals.
gsigunix cpp all nov lnx gsigunix cpp all nov lnx be
## Sound. ## Sound.
gsnd cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gsnd cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gsndwrap cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gsndwrap cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Strings. ## Strings.
gstrbags cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gstrbags cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gstrctyp cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gstrctyp cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gstrmail cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gstrmail cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gstrname cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gstrname cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gstrutil cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gstrutil cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Time related. ## Time related.
gtimjuld cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gtimjuld cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gtimutil cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gtimutil cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Text searching. ## Text searching.
gbmh cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gbmh cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gfuzzy cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gfuzzy cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gregex cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gregex cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gwildmat cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gwildmat cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gsearch cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gsearch cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gsrchmgr cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gsrchmgr cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Text processing. ## Text processing.
gtxtpara cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gtxtpara cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## BBS userbase access. ## BBS userbase access.
gusrbase cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gusrbase cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gusrezyc cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gusrezyc cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gusrgold cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gusrgold cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gusrhuds cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gusrhuds cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gusrmax cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gusrmax cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gusrpcb cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gusrpcb cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gusrra2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gusrra2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gusrxbbs cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gusrxbbs cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Miscellaneous utility. ## Miscellaneous utility.
gutlclip cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gutlclip cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gutlcode cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gutlcode cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gutlgrp cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gutlgrp cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gutlmisc cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gutlmisc cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gutlmtsk cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gutlmtsk cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gutltag cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gutltag cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gutlvers cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gutlvers cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gcharset cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gcharset cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## OS specific utilities ## OS specific utilities
gutldos cpp all djg gutldos cpp all djg
@ -140,24 +140,25 @@ gutlos2 cpp all bco wco emx
gutlos2m cpp all bco wco emx gutlos2m cpp all bco wco emx
gutlwin cpp all bcx cyg gutlwin cpp all bcx cyg
gutlwinm cpp all bcx cyg gutlwinm cpp all bcx cyg
gutlunix cpp all lnx gutlunix cpp all lnx be
be_lock c all be
## Low-level text video ## Low-level text video
gvidbase cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gvidbase cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gvidinit cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gvidinit cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## Text windowing. ## Text windowing.
gwinbase cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gwinbase cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gwindow cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gwindow cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gwinhlp1 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gwinhlp1 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gwinhlp2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gwinhlp2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gwininit cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gwininit cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gwinline cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gwinline cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gwinmenu cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gwinmenu cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gwinmnub cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gwinmnub cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gwinpckf cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gwinpckf cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gwinpcks cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gwinpcks cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gwinpick cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gwinpick cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gwinput2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gwinput2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
## ------------------------------------------------------------------ ## ------------------------------------------------------------------

View File

@ -73,6 +73,9 @@
#if defined(__OpenBSD__) #if defined(__OpenBSD__)
#define __UNIX__ __OpenBSD__ #define __UNIX__ __OpenBSD__
#endif #endif
#if defined(__BEOS__)
#define __UNIX__ __BEOS__
#endif
#endif #endif
#ifdef __GNUC__ #ifdef __GNUC__

View File

@ -72,6 +72,14 @@ extern __inline__ int isxalnum(char c) { return isascii(c) ? isalnum(c) : (c !=
} }
#endif #endif
#ifdef __BEOS__
//sz: there are some problems under BeOS with that function - symbols
// from second half of ASCII table are assumed as control ones ...
// This is a real disaster for cyrillic users ...
// It's also not possible to use setlocale() to change it's behaviour. =-(
#undef iscntrl
# define iscntrl(c) ((c < 0x7f) ? __isctype((c), _IScntrl) : 0)
#endif //__BEOS__
// ------------------------------------------------------------------ // ------------------------------------------------------------------

View File

@ -45,6 +45,10 @@
#include <sys/locking.h> #include <sys/locking.h>
#endif #endif
#if defined(__BEOS__)
#include "be_lock.h"
#endif
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -133,10 +137,11 @@ int unlock(int handle, long ofs, long length)
// ------------------------------------------------------------------ // ------------------------------------------------------------------
#if defined(__UNIX__) || defined(__CYGWIN__) #if defined(__UNIX__) || defined(__CYGWIN__)
int lock(int handle, long offset, long length) { int lock(int handle, long offset, long length) {
#ifndef __BEOS__
struct flock fl; struct flock fl;
fl.l_type = F_WRLCK; fl.l_type = F_WRLCK;
fl.l_whence = SEEK_SET; fl.l_whence = SEEK_SET;
@ -144,6 +149,9 @@ int lock(int handle, long offset, long length) {
fl.l_len = length; fl.l_len = length;
return fcntl(handle, F_SETLK, &fl); return fcntl(handle, F_SETLK, &fl);
#else //__BEOS__
return be_lock(handle);
#endif
} }
#endif #endif
@ -155,6 +163,7 @@ int lock(int handle, long offset, long length) {
int unlock(int handle, long offset, long length) { int unlock(int handle, long offset, long length) {
#ifndef __BEOS__
struct flock fl; struct flock fl;
fl.l_type = F_UNLCK; fl.l_type = F_UNLCK;
fl.l_whence = SEEK_SET; fl.l_whence = SEEK_SET;
@ -162,6 +171,9 @@ int unlock(int handle, long offset, long length) {
fl.l_len = length; fl.l_len = length;
return fcntl(handle, F_SETLK, &fl); return fcntl(handle, F_SETLK, &fl);
#else //__BEOS__
return be_unlock(handle);
#endif //__BEOS__
} }
#endif #endif

View File

@ -52,9 +52,11 @@
// ------------------------------------------------------------------M // ------------------------------------------------------------------M
#if defined(__UNIX__) #if defined(__UNIX__)
#if not defined(__BEOS__)
#define O_TEXT 0 #define O_TEXT 0
#define O_BINARY 0 #define O_BINARY 0
#endif #endif
#endif
#ifndef S_IWUSR #ifndef S_IWUSR
#define S_IWUSR S_IWRITE #define S_IWUSR S_IWRITE

View File

@ -60,6 +60,9 @@
#include <stdio.h> #include <stdio.h>
#endif #endif
#if defined(__BEOS__)
#include <InterfaceDefs.h>
#endif
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -177,7 +180,7 @@ GKbd::GKbd() {
Init(); Init();
#if defined(__UNIX__) && !defined(__USE_NCURSES__) #if defined(__UNIX__) && !defined(__USE_NCURSES__) && !defined(__BEOS__)
gkbd_keymap_init(); gkbd_keymap_init();
@ -283,6 +286,58 @@ GKbd::GKbd() {
gkbd_define_keysym("\033\x0D", Key_A_Ent); gkbd_define_keysym("\033\x0D", Key_A_Ent);
gkbd_define_keysym("\033\x09", Key_A_Tab); gkbd_define_keysym("\033\x09", Key_A_Tab);
#elif defined(__BEOS__)
gkbd_keymap_init();
char escseq[2];
escseq[1] = NUL;
for(int n=0; n<256; n++) {
escseq[0] = (char)n;
if(n == 0x08)
gkbd_define_keysym(escseq, Key_BS);
else if(n == 0x09)
gkbd_define_keysym(escseq, Key_Tab);
else if(n == 0x0D)
gkbd_define_keysym(escseq, Key_Ent);
else if(n == 0x7F)
gkbd_define_keysym(escseq, Key_Del); // ?????
else
gkbd_define_keysym(escseq, (n < 128) ? (scancode_table[n]|n) : n);
}
// gkbd_define_keysym("^@", 0); ?????????
gkbd_define_keysym("\033[A", Key_Up);
gkbd_define_keysym("\033[B", Key_Dwn);
gkbd_define_keysym("\033[C", Key_Rgt);
gkbd_define_keysym("\033[D", Key_Lft);
gkbd_define_keysym("\033[1~", Key_Home);
gkbd_define_keysym("\033[2~", Key_Ins);
gkbd_define_keysym("\033[4~", Key_End);
gkbd_define_keysym("\033[5~", Key_PgUp);
gkbd_define_keysym("\033[6~", Key_PgDn);
// gkbd_define_keysym("\033[3~", Key_Del);
gkbd_define_keysym("\033[11~", Key_F1);
gkbd_define_keysym("\033[12~", Key_F2);
gkbd_define_keysym("\033[13~", Key_F3);
gkbd_define_keysym("\033[14~", Key_F4);
gkbd_define_keysym("\033[15~", Key_F5);
gkbd_define_keysym("\033[16~", Key_F6);
gkbd_define_keysym("\033[17~", Key_F7);
gkbd_define_keysym("\033[18~", Key_F8);
gkbd_define_keysym("\033[19~", Key_F9);
gkbd_define_keysym("\033[20~", Key_F10);
/*
gkbd_define_keysym("\033\x7F", Key_A_BS);
gkbd_define_keysym("\033\x0D", Key_A_Ent);
gkbd_define_keysym("\033\x09", Key_A_Tab);
*/
#endif #endif
} }
@ -968,6 +1023,19 @@ bool linux_cui_key(gkey k) {
} }
#endif #endif
#if defined(__BEOS__)
int BeOSShiftState()
{
int shift = 0;
uint32 mods = modifiers();
if(mods&B_LEFT_SHIFT_KEY) shift |= LSHIFT;
if(mods&B_RIGHT_SHIFT_KEY) shift |= RSHIFT;
if(mods&B_CONTROL_KEY) shift |= GCTRL;
if(mods&B_OPTION_KEY) shift |= ALT;
return shift;
}
#endif
// ------------------------------------------------------------------ // ------------------------------------------------------------------
// Get key stroke // Get key stroke
@ -1305,6 +1373,9 @@ gkey kbxget_raw(int mode) {
if(ioctl(fileno(stdin), TIOCLINUX, &key) == -1) if(ioctl(fileno(stdin), TIOCLINUX, &key) == -1)
#endif #endif
key = 0; key = 0;
#ifdef __BEOS__
key = BeOSShiftState();
#endif
return key; return key;
} }
else if(mode & 0x01) { else if(mode & 0x01) {
@ -1373,6 +1444,129 @@ gkey kbxget_raw(int mode) {
else if(shifts & GCTRL) else if(shifts & GCTRL)
k = Key_C_BS; k = Key_C_BS;
} }
#elif __BEOS__
{
int shifts = BeOSShiftState();
if(shifts & (ALT))
switch(k){
case Key_0: k=Key_A_0; break;
case Key_1: k=Key_A_1; break;
case Key_2: k=Key_A_2; break;
case Key_3: k=Key_A_3; break;
case Key_4: k=Key_A_4; break;
case Key_5: k=Key_A_5; break;
case Key_6: k=Key_A_6; break;
case Key_7: k=Key_A_7; break;
case Key_8: k=Key_A_8; break;
case Key_9: k=Key_A_9; break;
case Key_A: k=Key_A_A; break;
case Key_B: k=Key_A_B; break;
case Key_C: k=Key_A_C; break;
case Key_D: k=Key_A_D; break;
case Key_E: k=Key_A_E; break;
case Key_F: k=Key_A_F; break;
case Key_G: k=Key_A_G; break;
case Key_H: k=Key_A_H; break;
case Key_I: k=Key_A_I; break;
case Key_J: k=Key_A_J; break;
case Key_K: k=Key_A_K; break;
case Key_L: k=Key_A_L; break;
case Key_M: k=Key_A_M; break;
case Key_N: k=Key_A_N; break;
case Key_O: k=Key_A_O; break;
case Key_P: k=Key_A_P; break;
case Key_Q: k=Key_A_Q; break;
case Key_R: k=Key_A_R; break;
case Key_S: k=Key_A_S; break;
case Key_T: k=Key_A_T; break;
case Key_U: k=Key_A_U; break;
case Key_V: k=Key_A_V; break;
case Key_W: k=Key_A_W; break;
case Key_X: k=Key_A_X; break;
case Key_Y: k=Key_A_Y; break;
case Key_Z: k=Key_A_Z; break;
case Key_F1: k=Key_A_F1; break;
case Key_F2: k=Key_A_F2; break;
case Key_F3: k=Key_A_F3; break;
case Key_F4: k=Key_A_F4; break;
case Key_F5: k=Key_A_F5; break;
case Key_F6: k=Key_A_F6; break;
case Key_F7: k=Key_A_F7; break;
case Key_F8: k=Key_A_F8; break;
case Key_F9: k=Key_A_F9; break;
case Key_F10: k=Key_A_F10; break;
case Key_F11: k=Key_A_F11; break;
case Key_F12: k=Key_A_F12; break;
case Key_BS: k=Key_A_BS; break;
case Key_Ent: k=Key_A_Ent; break;
case Key_Tab: k=Key_A_Tab; break;
case Key_Dwn: k = Key_A_Dwn; break;
case Key_Up: k = Key_A_Up; break;
case Key_Lft: k = Key_A_Lft; break;
case Key_Rgt: k = Key_A_Rgt; break;
case Key_Home: k = Key_A_Home; break;
case Key_PgDn: k = Key_A_PgDn; break;
case Key_PgUp: k = Key_A_PgUp; break;
case Key_End: k = Key_A_End; break;
// case Key_: k=Key_A_; break;
default: break;
}
else if(shifts & (LSHIFT | RSHIFT))
switch(k){
case Key_F1: k=Key_S_F1; break;
case Key_F2: k=Key_S_F2; break;
case Key_F3: k=Key_S_F3; break;
case Key_F4: k=Key_S_F4; break;
case Key_F5: k=Key_S_F5; break;
case Key_F6: k=Key_S_F6; break;
case Key_F7: k=Key_S_F7; break;
case Key_F8: k=Key_S_F8; break;
case Key_F9: k=Key_S_F9; break;
case Key_F10: k=Key_S_F10; break;
case Key_F11: k=Key_S_F11; break;
case Key_F12: k=Key_S_F12; break;
case Key_Tab: k=Key_S_Tab; break;
default: KCodScn(k) |= 0x80; break;
}
else if(shifts & GCTRL) {
switch(k) {
case Key_Ent: k = Key_C_Ent; break;
case Key_Ins: k = Key_C_Ins; break;
case Key_Del: k = Key_C_Del; break;
case Key_Dwn: k = Key_C_Dwn; break;
case Key_Up: k = Key_C_Up; break;
case Key_Lft: k = Key_C_Lft; break;
case Key_Rgt: k = Key_C_Rgt; break;
case Key_Home: k = Key_C_Home; break;
case Key_PgDn: k = Key_C_PgDn; break;
case Key_PgUp: k = Key_C_PgUp; break;
case Key_End: k = Key_C_End; break;
case Key_BS: k = Key_C_BS; break;
case Key_F1: k=Key_C_F1; break;
case Key_F2: k=Key_C_F2; break;
case Key_F3: k=Key_C_F3; break;
case Key_F4: k=Key_C_F4; break;
case Key_F5: k=Key_C_F5; break;
case Key_F6: k=Key_C_F6; break;
case Key_F7: k=Key_C_F7; break;
case Key_F8: k=Key_C_F8; break;
case Key_F9: k=Key_C_F9; break;
case Key_F10: k=Key_C_F10; break;
case Key_F11: k=Key_C_F11; break;
case Key_F12: k=Key_C_F12; break;
}
}
} /*else if(k == Key_BS) {
// Under Linux we could use TIOCLINUX fn. 6 to read shift states on console
// Of course it is very unportable but should produce good results :-)
int shifts = 6;
if(ioctl(fileno(stdin), TIOCLINUX, &shifts) == -1)
shifts = 0;
if(shifts & ALT)
k = Key_A_BS;
else if(shifts & GCTRL)
k = Key_C_BS;
}*/
#endif #endif
return k; return k;

View File

@ -41,6 +41,11 @@
#include <gsigunix.h> #include <gsigunix.h>
#include <gkbdunix.h> #include <gkbdunix.h>
#ifdef __BEOS__
//sz: some undocumented call that behaves in same manner as select ...
extern "C" int waiton( int, fd_set *, fd_set *, fd_set *, bigtime_t);
#endif
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -158,6 +163,7 @@ void gkbd_tty_reset() {
int gkbd_sys_input_pending(int tsecs) { int gkbd_sys_input_pending(int tsecs) {
#ifndef __BEOS__
static fd_set read_fd_set; static fd_set read_fd_set;
struct timeval wait; struct timeval wait;
long usecs, secs; long usecs, secs;
@ -179,6 +185,53 @@ int gkbd_sys_input_pending(int tsecs) {
FD_SET(gkbd_stdin, &read_fd_set); FD_SET(gkbd_stdin, &read_fd_set);
return select(gkbd_stdin+1, &read_fd_set, NULL, NULL, &wait); return select(gkbd_stdin+1, &read_fd_set, NULL, NULL, &wait);
#else
//bigtime_t t= bigtime_t(secs) * 1000000L + usecs;
///*return*/ waiton(gkbd_stdin+1, &read_fd_set, NULL, NULL, 0/*t * 1000*/);
//return 0;
struct termios term, oterm;
int fd = gkbd_stdin;
int c = 0;
/* get the terminal settings */
tcgetattr(fd, &oterm);
/* get a copy of the settings, which we modify */
memcpy(&term, &oterm, sizeof(term));
/* put the terminal in non-canonical mode, any
reads timeout after 0.1 seconds or when a
single character is read */
term.c_lflag = term.c_lflag & (!ICANON);
term.c_cc[VMIN] = 0;
term.c_cc[VTIME] = 1;
tcsetattr(fd, TCSANOW, &term);
/* get input - timeout after 0.1 seconds or
when one character is read. If timed out
getchar() returns -1, otherwise it returns
the character */
/* c=getchar();
*/
int bytes = -1;
ioctl(fd, TCWAITEVENT, &bytes);
/* reset the terminal to original state */
tcsetattr(fd, TCSANOW, &oterm);
/* if we retrieved a character, put it back on
the input stream */
/* if (c != -1)
ungetc(c, stdin);
/* return 1 if the keyboard was hit, or 0 if it
was not hit */
/* return ((c!=-1)?1:0);
*/
return bytes;
#endif
} }

View File

@ -42,6 +42,9 @@
#include <unistd.h> #include <unistd.h>
#endif #endif
#ifdef __BEOS__
#include <OS.h> // sz: snooze() declaration ...
#endif
// ------------------------------------------------------------------ // ------------------------------------------------------------------
// Global multitasker data // Global multitasker data
@ -180,7 +183,11 @@ void GMTsk::timeslice() {
switch(detected) { switch(detected) {
#if defined(__UNIX__) #if defined(__UNIX__)
case GMTSK_LINUX: case GMTSK_LINUX:
usleep(5000); #if defined(__BEOS__)
snooze(5000);
#else
usleep(5000);
#endif
break; break;
#endif #endif
#if defined(__WIN32__) #if defined(__WIN32__)

View File

@ -38,6 +38,10 @@
#define CLIPDIR "~/.cedit" #define CLIPDIR "~/.cedit"
#define CLIPFILE "~/.cedit/cooledit.clip" #define CLIPFILE "~/.cedit/cooledit.clip"
#ifdef __BEOS__
char ge_beos_title[GMAXTITLE] = "";
int ge_beos_ext_title;
#endif
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -60,7 +64,13 @@ void g_deinit_os(void) {
void g_init_title(char *tasktitle, int titlestatus) { void g_init_title(char *tasktitle, int titlestatus) {
#ifndef __BEOS__
NW(tasktitle); NW(titlestatus); NW(tasktitle); NW(titlestatus);
#else
strncpy(ge_beos_title, tasktitle, GMAXTITLE);
ge_beos_title[GMAXTITLE-1] = '\0';
ge_beos_ext_title = titlestatus;
#endif
} }
@ -76,7 +86,14 @@ void g_increase_priority(void) {
void g_set_ostitle(char* title, word dx) { void g_set_ostitle(char* title, word dx) {
NW(title); NW(dx); NW(dx);
#ifndef __BEOS__
NW(title);
#else
char fmt[]={'\x1b','\x5d','\x32','\x3b', '%', 's', '\x07', 0};
fprintf(stdout, fmt, title);
fflush(stdout);
#endif
} }
@ -152,7 +169,26 @@ void g_get_ostitle_name(char* title) {
void g_set_ostitle_name(char* title, int mode) { void g_set_ostitle_name(char* title, int mode) {
#ifndef __BEOS__
NW(title); NW(mode); NW(title); NW(mode);
#else
if(mode == 0) {
char fulltitle[GMAXTITLE];
strcpy(fulltitle, ge_beos_title);
if(ge_beos_ext_title) {
int len = strlen(fulltitle);
if(len < GMAXTITLE-4) {
if(len)
strcat(fulltitle, " - ");
strncpy(fulltitle+len+3, title, GMAXTITLE-len-3);
fulltitle[GMAXTITLE-1] = '\0';
}
}
g_set_ostitle(fulltitle, 0);
}
else
g_set_ostitle(title, 0);
#endif
} }

View File

@ -36,6 +36,9 @@
# define NULL_VALUE 255 # define NULL_VALUE 255
#endif #endif
#ifdef __BEOS__
#include <net/socket.h> // defintions of FD_xx - to avoid problems with code below
#endif
// ------------------------------------------------------------------ // ------------------------------------------------------------------

View File

@ -35,6 +35,10 @@
#include <sys/utsname.h> #include <sys/utsname.h>
#endif #endif
#if defined(__BEOS__)
#include <File.h>
#include <AppFileInfo.h>
#endif
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -53,7 +57,16 @@ char* ggetosstring(void) {
sprintf(osstring, "%s %s.%s %s", info.sysname, info.version, info.release, info.machine); sprintf(osstring, "%s %s.%s %s", info.sysname, info.version, info.release, info.machine);
#elif defined(__DJGPP__) #elif defined(__DJGPP__)
sprintf(osstring, "%s %s.%s %s", info.sysname, info.release, info.version, info.machine); sprintf(osstring, "%s %s.%s %s", info.sysname, info.release, info.version, info.machine);
#else #elif defined(__BEOS__)
{
BAppFileInfo appFileInfo;
version_info sys_ver = {0};
BFile file("/boot/beos/system/lib/libbe.so", B_READ_ONLY);
appFileInfo.SetTo(&file);
appFileInfo.GetVersionInfo(&sys_ver, B_APP_VERSION_KIND);
sprintf(osstring, "%s %s %s", info.sysname, sys_ver.short_info, info.machine);
}
#else
sprintf(osstring, "%s %s %s", info.sysname, info.release, info.machine); sprintf(osstring, "%s %s %s", info.sysname, info.release, info.machine);
#endif #endif
else else

View File

@ -23,52 +23,52 @@
// Msgbase area configuration. // Msgbase area configuration.
gedacfg cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gedacfg cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
// AREAFILE readers. // AREAFILE readers.
gxareas cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxareas cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxcrash cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxcrash cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxdb cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxdb cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxdutch cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxdutch cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxezy102 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxezy102 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxezy110 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxezy110 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxfd cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxfd cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxfecho4 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxfecho4 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxfecho5 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxfecho5 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxfecho6 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxfecho6 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxfidpcb cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxfidpcb cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxfm092 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxfm092 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxfm100 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxfm100 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxfm116 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxfm116 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxgecho cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxgecho cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxhpt cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxhpt cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gximail4 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gximail4 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gximail5 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gximail5 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gximail6 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gximail6 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxinter cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxinter cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxlora cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxlora cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxmax3 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxmax3 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxme2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxme2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxopus cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxopus cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxpcb cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxpcb cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxportal cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxportal cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxprobrd cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxprobrd cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxqfront cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxqfront cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxqecho cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxqecho cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxquick cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxquick cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxra cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxra cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxraecho cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxraecho cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxspace cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxspace cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxsquish cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxsquish cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxsuper cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxsuper cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxsync cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxsync cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxtimed cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxtimed cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxtmail cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxtmail cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxts cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxts cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxwmail cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxwmail cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxwtr cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxwtr cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxxbbs cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxxbbs cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gxxmail cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gxxmail cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
// Msgbase area configuration. // Msgbase area configuration.
gedacfg h all gedacfg h all

View File

@ -1,4 +1,4 @@
regex c all emx cyg regex c all emx cyg
fnmatch c all fnmatch c all
glob c all glob c all
dummy c all nov bcd bco bcx wcn wco wcx lnx djg rsx dummy c all nov bcd bco bcx wcn wco wcx lnx djg rsx be

View File

@ -22,45 +22,45 @@
## ------------------------------------------------------------------ ## ------------------------------------------------------------------
## Msgbase source for GoldED 3.xx ## Msgbase source for GoldED 3.xx
gmoarea cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmoarea cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmohuds cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmohuds cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmoezyc1 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmoezyc1 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmoezyc2 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmoezyc2 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmoezyc3 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmoezyc3 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmoezyc4 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmoezyc4 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmoezyc5 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmoezyc5 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmofido1 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmofido1 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmofido2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmofido2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmofido3 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmofido3 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmofido4 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmofido4 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmofido5 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmofido5 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmojamm1 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmojamm1 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmojamm2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmojamm2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmojamm3 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmojamm3 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmojamm4 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmojamm4 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmojamm5 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmojamm5 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmopcbd1 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmopcbd1 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmopcbd2 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmopcbd2 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmopcbd3 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmopcbd3 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmopcbd4 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmopcbd4 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmopcbd5 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmopcbd5 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmosmb1 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmosmb1 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmosmb2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmosmb2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmosqsh1 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmosqsh1 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmosqsh2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmosqsh2 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmosqsh3 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmosqsh3 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmosqsh4 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmosqsh4 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmosqsh5 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gmosqsh5 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmowcat1 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmowcat1 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmowcat2 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmowcat2 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmowcat3 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmowcat3 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmowcat4 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmowcat4 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmowcat5 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg gmowcat5 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg be
gmoxbbs1 cpp all nov bco wco lnx emx djg cyg gmoxbbs1 cpp all nov bco wco lnx emx djg cyg be
gmoxbbs2 cpp all nov bco wco lnx emx djg cyg gmoxbbs2 cpp all nov bco wco lnx emx djg cyg be
gmoxbbs3 cpp all nov bco wco lnx emx djg cyg gmoxbbs3 cpp all nov bco wco lnx emx djg cyg be
gmoxbbs4 cpp all nov bco wco lnx emx djg cyg gmoxbbs4 cpp all nov bco wco lnx emx djg cyg be
gmoxbbs5 cpp all nov bco wco lnx emx djg cyg gmoxbbs5 cpp all nov bco wco lnx emx djg cyg be
## ------------------------------------------------------------------ ## ------------------------------------------------------------------

View File

@ -3,6 +3,10 @@
#include <gtimall.h> #include <gtimall.h>
#ifndef __BEOS__
#define SLEEP(a) usleep(a) #define SLEEP(a) usleep(a)
#else
#include <OS.h>
#define SLEEP(a) snooze(a)
#endif
#endif // __genwrap_h #endif // __genwrap_h

View File

@ -1,2 +1,2 @@
lzh c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg lzh c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
smblib c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg smblib c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be

View File

@ -1,8 +1,8 @@
fptools c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg fptools c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
uucheck c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg uucheck c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
uuencode c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg uuencode c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
uulib c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg uulib c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
uunconc c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg uunconc c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
uuscan c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg uuscan c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
uustring c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg uustring c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
uuutil c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg uuutil c all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be

View File

@ -21,7 +21,7 @@
## Master build file. ## Master build file.
## ------------------------------------------------------------------ ## ------------------------------------------------------------------
goldnode cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg goldnode cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
## ------------------------------------------------------------------ ## ------------------------------------------------------------------

View File

@ -21,7 +21,7 @@
## Master build file. ## Master build file.
## ------------------------------------------------------------------ ## ------------------------------------------------------------------
rddt cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg rddt cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
## ------------------------------------------------------------------ ## ------------------------------------------------------------------