BeOS port related changes (initial commit)
This commit is contained in:
parent
ff3bd0a039
commit
f760aae131
@ -115,8 +115,11 @@ bool PopupLocked(long tries, int isopen, const char* file) {
|
||||
}
|
||||
|
||||
// Pause approx 1 second before trying again
|
||||
#ifndef __BEOS__
|
||||
usleep(1000);
|
||||
|
||||
#else
|
||||
sleep(1);
|
||||
#endif
|
||||
// Try again
|
||||
return true;
|
||||
}
|
||||
|
@ -24,63 +24,63 @@
|
||||
## Master build file.
|
||||
## ------------------------------------------------------------------
|
||||
|
||||
gcalst 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
|
||||
gccfgg 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
|
||||
gccfgg1 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
|
||||
gccfgg3 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
|
||||
gccfgg5 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
|
||||
gccfgg7 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
|
||||
gckeys 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
|
||||
gcmisc 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
|
||||
gearea 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
|
||||
gecmfd 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
|
||||
gectrl 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
|
||||
gedoss 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
|
||||
geedit2 cpp all ovl 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
|
||||
gefile 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
|
||||
geglob 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
|
||||
gehdrs 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
|
||||
geline 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
|
||||
gemain cpp all nov 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
|
||||
gemlst 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
|
||||
gemrks 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
|
||||
genode 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
|
||||
gepost 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
|
||||
gerand 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
|
||||
geread2 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
|
||||
gesrch 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
|
||||
getpls 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
|
||||
geutil cpp all nov 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
|
||||
geview 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
|
||||
golded3 cpp all nov 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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
golded3 cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
|
||||
gedcyg rc cyg
|
||||
gedemx rc emx
|
||||
|
||||
|
@ -111,6 +111,11 @@ const char* __gver_shortver__ = __GVER_SVER__(__GVER_MAJOR__,__GVER_MINOR__,__GV
|
||||
#define __GVER_SHORTPLATFORM__ "BSD"
|
||||
#define __GVER_SHORTLOGNAME__ "B"
|
||||
#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__)
|
||||
#define __GVER_PLATFORM__ "/UNX"
|
||||
#define __GVER_SHORTPLATFORM__ "UNX"
|
||||
|
113
goldlib/gall/be_lock.c
Normal file
113
goldlib/gall/be_lock.c
Normal 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
143
goldlib/gall/be_lock.h
Normal 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_
|
@ -22,117 +22,117 @@
|
||||
## ------------------------------------------------------------------
|
||||
|
||||
## CRC and hash calculation.
|
||||
gcrc16tb 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
|
||||
gcrchash 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
|
||||
gcrcm16 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
|
||||
gcrcs16 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
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
|
||||
## Debugging.
|
||||
gdbgerr cpp all ovl 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
|
||||
gdbgtrk cpp all nov 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 be
|
||||
gdbgtrk cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
|
||||
|
||||
## 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.
|
||||
geval 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
|
||||
gevalrpn 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 be
|
||||
gevalrpn cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
|
||||
|
||||
## File handling.
|
||||
gfile cpp all nov 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
|
||||
gfilutl1 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
|
||||
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 be
|
||||
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 be
|
||||
|
||||
## 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.
|
||||
gftnnl 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
|
||||
gftnnlfu 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
|
||||
gftnnlv7 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 be
|
||||
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 be
|
||||
gftnnlv7 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
|
||||
|
||||
## Keyboard.
|
||||
gkbdbase 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
|
||||
gkbdunix cpp all nov lnx
|
||||
gkbdwait 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 be
|
||||
gkbdunix cpp all nov lnx be
|
||||
gkbdwait cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
|
||||
|
||||
## 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.
|
||||
gmemdbg 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
|
||||
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 be
|
||||
|
||||
## 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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
gsigunix cpp all nov lnx
|
||||
gsigunix cpp all nov lnx be
|
||||
|
||||
## Sound.
|
||||
gsnd 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
|
||||
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 be
|
||||
|
||||
## Strings.
|
||||
gstrbags cpp all nov 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
|
||||
gstrmail 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
|
||||
gstrutil 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 be
|
||||
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 be
|
||||
gstrutil cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
|
||||
|
||||
## Time related.
|
||||
gtimjuld cpp all ovl 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
|
||||
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 be
|
||||
|
||||
## Text searching.
|
||||
gbmh cpp all nov 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
|
||||
gregex cpp all ovl 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
|
||||
gsearch 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
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
|
||||
## 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.
|
||||
gusrbase 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
|
||||
gusrgold 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
|
||||
gusrmax 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
|
||||
gusrra2 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
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
|
||||
## Miscellaneous utility.
|
||||
gutlclip cpp all ovl 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
|
||||
gutlgrp cpp all ovl 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
|
||||
gutlmtsk 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
|
||||
gutlvers 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
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
|
||||
## OS specific utilities
|
||||
gutldos cpp all djg
|
||||
@ -140,24 +140,25 @@ gutlos2 cpp all bco wco emx
|
||||
gutlos2m cpp all bco wco emx
|
||||
gutlwin 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
|
||||
gvidbase cpp all nov 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
|
||||
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 be
|
||||
|
||||
## Text windowing.
|
||||
gwinbase 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
|
||||
gwinhlp1 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
|
||||
gwininit 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
|
||||
gwinmenu 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
|
||||
gwinpckf 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
|
||||
gwinpick 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
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
|
||||
## ------------------------------------------------------------------
|
||||
|
@ -73,6 +73,9 @@
|
||||
#if defined(__OpenBSD__)
|
||||
#define __UNIX__ __OpenBSD__
|
||||
#endif
|
||||
#if defined(__BEOS__)
|
||||
#define __UNIX__ __BEOS__
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
@ -72,6 +72,14 @@ extern __inline__ int isxalnum(char c) { return isascii(c) ? isalnum(c) : (c !=
|
||||
}
|
||||
#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__
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
|
@ -45,6 +45,10 @@
|
||||
#include <sys/locking.h>
|
||||
#endif
|
||||
|
||||
#if defined(__BEOS__)
|
||||
#include "be_lock.h"
|
||||
#endif
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
@ -137,6 +141,7 @@ int unlock(int handle, long ofs, long length)
|
||||
|
||||
int lock(int handle, long offset, long length) {
|
||||
|
||||
#ifndef __BEOS__
|
||||
struct flock fl;
|
||||
fl.l_type = F_WRLCK;
|
||||
fl.l_whence = SEEK_SET;
|
||||
@ -144,6 +149,9 @@ int lock(int handle, long offset, long length) {
|
||||
fl.l_len = length;
|
||||
|
||||
return fcntl(handle, F_SETLK, &fl);
|
||||
#else //__BEOS__
|
||||
return be_lock(handle);
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
@ -155,6 +163,7 @@ int lock(int handle, long offset, long length) {
|
||||
|
||||
int unlock(int handle, long offset, long length) {
|
||||
|
||||
#ifndef __BEOS__
|
||||
struct flock fl;
|
||||
fl.l_type = F_UNLCK;
|
||||
fl.l_whence = SEEK_SET;
|
||||
@ -162,6 +171,9 @@ int unlock(int handle, long offset, long length) {
|
||||
fl.l_len = length;
|
||||
|
||||
return fcntl(handle, F_SETLK, &fl);
|
||||
#else //__BEOS__
|
||||
return be_unlock(handle);
|
||||
#endif //__BEOS__
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -52,9 +52,11 @@
|
||||
// ------------------------------------------------------------------M
|
||||
|
||||
#if defined(__UNIX__)
|
||||
#if not defined(__BEOS__)
|
||||
#define O_TEXT 0
|
||||
#define O_BINARY 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef S_IWUSR
|
||||
#define S_IWUSR S_IWRITE
|
||||
|
@ -60,6 +60,9 @@
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
|
||||
#if defined(__BEOS__)
|
||||
#include <InterfaceDefs.h>
|
||||
#endif
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
@ -177,7 +180,7 @@ GKbd::GKbd() {
|
||||
|
||||
Init();
|
||||
|
||||
#if defined(__UNIX__) && !defined(__USE_NCURSES__)
|
||||
#if defined(__UNIX__) && !defined(__USE_NCURSES__) && !defined(__BEOS__)
|
||||
|
||||
gkbd_keymap_init();
|
||||
|
||||
@ -283,6 +286,58 @@ GKbd::GKbd() {
|
||||
gkbd_define_keysym("\033\x0D", Key_A_Ent);
|
||||
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
|
||||
}
|
||||
|
||||
@ -968,6 +1023,19 @@ bool linux_cui_key(gkey k) {
|
||||
}
|
||||
#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
|
||||
|
||||
@ -1305,6 +1373,9 @@ gkey kbxget_raw(int mode) {
|
||||
if(ioctl(fileno(stdin), TIOCLINUX, &key) == -1)
|
||||
#endif
|
||||
key = 0;
|
||||
#ifdef __BEOS__
|
||||
key = BeOSShiftState();
|
||||
#endif
|
||||
return key;
|
||||
}
|
||||
else if(mode & 0x01) {
|
||||
@ -1373,6 +1444,129 @@ gkey kbxget_raw(int mode) {
|
||||
else if(shifts & GCTRL)
|
||||
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
|
||||
|
||||
return k;
|
||||
|
@ -41,6 +41,11 @@
|
||||
#include <gsigunix.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) {
|
||||
|
||||
#ifndef __BEOS__
|
||||
static fd_set read_fd_set;
|
||||
struct timeval wait;
|
||||
long usecs, secs;
|
||||
@ -179,6 +185,53 @@ int gkbd_sys_input_pending(int tsecs) {
|
||||
FD_SET(gkbd_stdin, &read_fd_set);
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
|
@ -42,6 +42,9 @@
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#ifdef __BEOS__
|
||||
#include <OS.h> // sz: snooze() declaration ...
|
||||
#endif
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// Global multitasker data
|
||||
@ -180,7 +183,11 @@ void GMTsk::timeslice() {
|
||||
switch(detected) {
|
||||
#if defined(__UNIX__)
|
||||
case GMTSK_LINUX:
|
||||
#if defined(__BEOS__)
|
||||
snooze(5000);
|
||||
#else
|
||||
usleep(5000);
|
||||
#endif
|
||||
break;
|
||||
#endif
|
||||
#if defined(__WIN32__)
|
||||
|
@ -38,6 +38,10 @@
|
||||
#define CLIPDIR "~/.cedit"
|
||||
#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) {
|
||||
|
||||
#ifndef __BEOS__
|
||||
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) {
|
||||
|
||||
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) {
|
||||
|
||||
#ifndef __BEOS__
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
|
@ -36,6 +36,9 @@
|
||||
# define NULL_VALUE 255
|
||||
#endif
|
||||
|
||||
#ifdef __BEOS__
|
||||
#include <net/socket.h> // defintions of FD_xx - to avoid problems with code below
|
||||
#endif
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
|
@ -35,6 +35,10 @@
|
||||
#include <sys/utsname.h>
|
||||
#endif
|
||||
|
||||
#if defined(__BEOS__)
|
||||
#include <File.h>
|
||||
#include <AppFileInfo.h>
|
||||
#endif
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
@ -53,6 +57,15 @@ char* ggetosstring(void) {
|
||||
sprintf(osstring, "%s %s.%s %s", info.sysname, info.version, info.release, info.machine);
|
||||
#elif defined(__DJGPP__)
|
||||
sprintf(osstring, "%s %s.%s %s", info.sysname, info.release, info.version, info.machine);
|
||||
#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);
|
||||
#endif
|
||||
|
@ -23,52 +23,52 @@
|
||||
|
||||
|
||||
// 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.
|
||||
gxareas 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
|
||||
gxdb 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
|
||||
gxezy102 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
|
||||
gxfd 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
|
||||
gxfecho5 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
|
||||
gxfidpcb 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
|
||||
gxfm100 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
|
||||
gxgecho 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
|
||||
gximail4 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
|
||||
gximail6 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
|
||||
gxlora 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
|
||||
gxme2 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
|
||||
gxpcb 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
|
||||
gxprobrd 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
|
||||
gxqecho 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
|
||||
gxra 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
|
||||
gxspace 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
|
||||
gxsuper 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
|
||||
gxtimed 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
|
||||
gxts 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
|
||||
gxwtr 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
|
||||
gxxmail 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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
gxxmail cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg be
|
||||
|
||||
// Msgbase area configuration.
|
||||
gedacfg h all
|
||||
|
@ -1,4 +1,4 @@
|
||||
regex c all emx cyg
|
||||
fnmatch 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
|
||||
|
@ -22,45 +22,45 @@
|
||||
## ------------------------------------------------------------------
|
||||
|
||||
## Msgbase source for GoldED 3.xx
|
||||
gmoarea 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
|
||||
gmoezyc1 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
|
||||
gmoezyc3 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
|
||||
gmoezyc5 cpp all nov 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
|
||||
gmofido2 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
|
||||
gmofido4 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
|
||||
gmojamm1 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
|
||||
gmojamm3 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
|
||||
gmojamm5 cpp all ovl bcd bco bcx wcn wco wcx lnx emx djg rsx cyg
|
||||
gmopcbd1 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
|
||||
gmopcbd3 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
|
||||
gmopcbd5 cpp all nov 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
|
||||
gmosmb2 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
|
||||
gmosqsh2 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
|
||||
gmosqsh4 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
|
||||
gmowcat1 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
|
||||
gmowcat3 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
|
||||
gmowcat5 cpp all nov bco bcx wcn wco wcx lnx emx djg rsx cyg
|
||||
gmoxbbs1 cpp all nov bco wco lnx emx djg cyg
|
||||
gmoxbbs2 cpp all nov bco wco lnx emx djg cyg
|
||||
gmoxbbs3 cpp all nov bco wco lnx emx djg cyg
|
||||
gmoxbbs4 cpp all nov bco wco lnx emx djg cyg
|
||||
gmoxbbs5 cpp all nov bco wco lnx emx djg 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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
gmoxbbs1 cpp all nov bco wco lnx emx djg cyg be
|
||||
gmoxbbs2 cpp all nov bco wco lnx emx djg cyg be
|
||||
gmoxbbs3 cpp all nov bco wco lnx emx djg cyg be
|
||||
gmoxbbs4 cpp all nov bco wco lnx emx djg cyg be
|
||||
gmoxbbs5 cpp all nov bco wco lnx emx djg cyg be
|
||||
|
||||
## ------------------------------------------------------------------
|
||||
|
||||
|
@ -3,6 +3,10 @@
|
||||
|
||||
#include <gtimall.h>
|
||||
|
||||
#ifndef __BEOS__
|
||||
#define SLEEP(a) usleep(a)
|
||||
|
||||
#else
|
||||
#include <OS.h>
|
||||
#define SLEEP(a) snooze(a)
|
||||
#endif
|
||||
#endif // __genwrap_h
|
||||
|
@ -1,2 +1,2 @@
|
||||
lzh 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
|
||||
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 be
|
||||
|
@ -1,8 +1,8 @@
|
||||
fptools 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
|
||||
uuencode 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
|
||||
uunconc 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
|
||||
uustring 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
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
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 be
|
||||
|
@ -21,7 +21,7 @@
|
||||
## 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
|
||||
|
||||
## ------------------------------------------------------------------
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
## 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
|
||||
|
||||
## ------------------------------------------------------------------
|
||||
|
||||
|
Reference in New Issue
Block a user