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
|
// 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;
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
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.
|
## 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
|
||||||
|
|
||||||
## ------------------------------------------------------------------
|
## ------------------------------------------------------------------
|
||||||
|
@ -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__
|
||||||
|
@ -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__
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -45,6 +45,10 @@
|
|||||||
#include <sys/locking.h>
|
#include <sys/locking.h>
|
||||||
#endif
|
#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) {
|
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
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -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__)
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
## ------------------------------------------------------------------
|
## ------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
## ------------------------------------------------------------------
|
## ------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
## ------------------------------------------------------------------
|
## ------------------------------------------------------------------
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user