From f760aae1319f858223ad324425f72ad515542973 Mon Sep 17 00:00:00 2001 From: zharik <> Date: Sat, 29 Mar 2003 21:51:19 +0000 Subject: [PATCH] BeOS port related changes (initial commit) --- golded3/geutil2.cpp | 5 +- golded3/golded3.all | 114 +++++++++++----------- golded3/golded3.cpp | 5 + goldlib/gall/be_lock.c | 113 ++++++++++++++++++++++ goldlib/gall/be_lock.h | 143 +++++++++++++++++++++++++++ goldlib/gall/gall.all | 169 ++++++++++++++++---------------- goldlib/gall/gcmpall.h | 3 + goldlib/gall/gctype.h | 8 ++ goldlib/gall/gfilport.cpp | 14 ++- goldlib/gall/gfilutil.h | 2 + goldlib/gall/gkbdbase.cpp | 196 +++++++++++++++++++++++++++++++++++++- goldlib/gall/gkbdunix.cpp | 53 +++++++++++ goldlib/gall/gutlmtsk.cpp | 9 +- goldlib/gall/gutlunix.cpp | 38 +++++++- goldlib/gall/gutlunix.h | 3 + goldlib/gall/gutlvers.cpp | 15 ++- goldlib/gcfg/gcfg.all | 88 ++++++++--------- goldlib/glibc/glibc.all | 2 +- goldlib/gmb3/gmb3.all | 78 +++++++-------- goldlib/smblib/genwrap.h | 6 +- goldlib/smblib/smblib.all | 4 +- goldlib/uulib/uulib.all | 16 ++-- goldnode/goldnode.all | 2 +- rddt/rddt.all | 2 +- 24 files changed, 844 insertions(+), 244 deletions(-) create mode 100644 goldlib/gall/be_lock.c create mode 100644 goldlib/gall/be_lock.h diff --git a/golded3/geutil2.cpp b/golded3/geutil2.cpp index df1b304..1d34721 100644 --- a/golded3/geutil2.cpp +++ b/golded3/geutil2.cpp @@ -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; } diff --git a/golded3/golded3.all b/golded3/golded3.all index 33cb846..ef02399 100644 --- a/golded3/golded3.all +++ b/golded3/golded3.all @@ -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 diff --git a/golded3/golded3.cpp b/golded3/golded3.cpp index 2094150..8101ca4 100644 --- a/golded3/golded3.cpp +++ b/golded3/golded3.cpp @@ -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" diff --git a/goldlib/gall/be_lock.c b/goldlib/gall/be_lock.c new file mode 100644 index 0000000..9d07678 --- /dev/null +++ b/goldlib/gall/be_lock.c @@ -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 +#include + +#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) + diff --git a/goldlib/gall/be_lock.h b/goldlib/gall/be_lock.h new file mode 100644 index 0000000..13cd11a --- /dev/null +++ b/goldlib/gall/be_lock.h @@ -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 + +#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_ diff --git a/goldlib/gall/gall.all b/goldlib/gall/gall.all index 443a333..3ab3d1f 100644 --- a/goldlib/gall/gall.all +++ b/goldlib/gall/gall.all @@ -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 ## ------------------------------------------------------------------ diff --git a/goldlib/gall/gcmpall.h b/goldlib/gall/gcmpall.h index 17ae25e..4eb1bcc 100644 --- a/goldlib/gall/gcmpall.h +++ b/goldlib/gall/gcmpall.h @@ -73,6 +73,9 @@ #if defined(__OpenBSD__) #define __UNIX__ __OpenBSD__ #endif + #if defined(__BEOS__) + #define __UNIX__ __BEOS__ + #endif #endif #ifdef __GNUC__ diff --git a/goldlib/gall/gctype.h b/goldlib/gall/gctype.h index 8f2331f..908a7b2 100644 --- a/goldlib/gall/gctype.h +++ b/goldlib/gall/gctype.h @@ -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__ // ------------------------------------------------------------------ diff --git a/goldlib/gall/gfilport.cpp b/goldlib/gall/gfilport.cpp index 721c805..cf1aa31 100644 --- a/goldlib/gall/gfilport.cpp +++ b/goldlib/gall/gfilport.cpp @@ -45,6 +45,10 @@ #include #endif +#if defined(__BEOS__) +#include "be_lock.h" +#endif + // ------------------------------------------------------------------ @@ -133,10 +137,11 @@ int unlock(int handle, long ofs, long length) // ------------------------------------------------------------------ -#if defined(__UNIX__) || defined(__CYGWIN__) +#if defined(__UNIX__) || defined(__CYGWIN__) int lock(int handle, long offset, long length) { +#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 diff --git a/goldlib/gall/gfilutil.h b/goldlib/gall/gfilutil.h index 7a00fbf..0eaa267 100644 --- a/goldlib/gall/gfilutil.h +++ b/goldlib/gall/gfilutil.h @@ -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 diff --git a/goldlib/gall/gkbdbase.cpp b/goldlib/gall/gkbdbase.cpp index ea0f85c..82bf2b5 100644 --- a/goldlib/gall/gkbdbase.cpp +++ b/goldlib/gall/gkbdbase.cpp @@ -60,6 +60,9 @@ #include #endif +#if defined(__BEOS__) +#include +#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; diff --git a/goldlib/gall/gkbdunix.cpp b/goldlib/gall/gkbdunix.cpp index 1bba588..1cff9bc 100644 --- a/goldlib/gall/gkbdunix.cpp +++ b/goldlib/gall/gkbdunix.cpp @@ -41,6 +41,11 @@ #include #include +#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 } diff --git a/goldlib/gall/gutlmtsk.cpp b/goldlib/gall/gutlmtsk.cpp index e4b51df..76f6fcc 100644 --- a/goldlib/gall/gutlmtsk.cpp +++ b/goldlib/gall/gutlmtsk.cpp @@ -42,6 +42,9 @@ #include #endif +#ifdef __BEOS__ +#include // sz: snooze() declaration ... +#endif // ------------------------------------------------------------------ // Global multitasker data @@ -180,7 +183,11 @@ void GMTsk::timeslice() { switch(detected) { #if defined(__UNIX__) case GMTSK_LINUX: - usleep(5000); + #if defined(__BEOS__) + snooze(5000); + #else + usleep(5000); + #endif break; #endif #if defined(__WIN32__) diff --git a/goldlib/gall/gutlunix.cpp b/goldlib/gall/gutlunix.cpp index 6bac464..3cf40c3 100644 --- a/goldlib/gall/gutlunix.cpp +++ b/goldlib/gall/gutlunix.cpp @@ -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 } diff --git a/goldlib/gall/gutlunix.h b/goldlib/gall/gutlunix.h index 7d69a4e..50c8873 100644 --- a/goldlib/gall/gutlunix.h +++ b/goldlib/gall/gutlunix.h @@ -36,6 +36,9 @@ # define NULL_VALUE 255 #endif +#ifdef __BEOS__ +#include // defintions of FD_xx - to avoid problems with code below +#endif // ------------------------------------------------------------------ diff --git a/goldlib/gall/gutlvers.cpp b/goldlib/gall/gutlvers.cpp index ff5af0a..fc0e442 100644 --- a/goldlib/gall/gutlvers.cpp +++ b/goldlib/gall/gutlvers.cpp @@ -35,6 +35,10 @@ #include #endif +#if defined(__BEOS__) +#include +#include +#endif // ------------------------------------------------------------------ @@ -53,7 +57,16 @@ 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); - #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); #endif else diff --git a/goldlib/gcfg/gcfg.all b/goldlib/gcfg/gcfg.all index 99895a2..12eab7d 100644 --- a/goldlib/gcfg/gcfg.all +++ b/goldlib/gcfg/gcfg.all @@ -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 diff --git a/goldlib/glibc/glibc.all b/goldlib/glibc/glibc.all index 90069c1..18f4d3f 100644 --- a/goldlib/glibc/glibc.all +++ b/goldlib/glibc/glibc.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 diff --git a/goldlib/gmb3/gmb3.all b/goldlib/gmb3/gmb3.all index d2e32f5..fb35311 100644 --- a/goldlib/gmb3/gmb3.all +++ b/goldlib/gmb3/gmb3.all @@ -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 ## ------------------------------------------------------------------ diff --git a/goldlib/smblib/genwrap.h b/goldlib/smblib/genwrap.h index f4c358c..34d5487 100644 --- a/goldlib/smblib/genwrap.h +++ b/goldlib/smblib/genwrap.h @@ -3,6 +3,10 @@ #include +#ifndef __BEOS__ #define SLEEP(a) usleep(a) - +#else +#include +#define SLEEP(a) snooze(a) +#endif #endif // __genwrap_h diff --git a/goldlib/smblib/smblib.all b/goldlib/smblib/smblib.all index 23c9dc0..9051ba9 100644 --- a/goldlib/smblib/smblib.all +++ b/goldlib/smblib/smblib.all @@ -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 diff --git a/goldlib/uulib/uulib.all b/goldlib/uulib/uulib.all index 2d74acc..f3416c5 100644 --- a/goldlib/uulib/uulib.all +++ b/goldlib/uulib/uulib.all @@ -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 diff --git a/goldnode/goldnode.all b/goldnode/goldnode.all index 7f80c65..42f7e62 100644 --- a/goldnode/goldnode.all +++ b/goldnode/goldnode.all @@ -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 ## ------------------------------------------------------------------ diff --git a/rddt/rddt.all b/rddt/rddt.all index 5d4ee1f..a15af00 100644 --- a/rddt/rddt.all +++ b/rddt/rddt.all @@ -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 ## ------------------------------------------------------------------