Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nx-libs
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dimbor
nx-libs
Commits
0f9a11a9
Commit
0f9a11a9
authored
Nov 15, 2016
by
Mike Gabriel
Committed by
Mihai Moldovan
Mar 01, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
drop platform support: unifdef __UNIXOS2__.
Fixes ArcticaProject/nx-libs#271.
parent
f22e873e
Hide whitespace changes
Inline
Side-by-side
Showing
43 changed files
with
24 additions
and
1194 deletions
+24
-1194
Imake.cf
nx-X11/config/cf/Imake.cf
+0
-7
Imake.tmpl
nx-X11/config/cf/Imake.tmpl
+1
-1
xorg.cf
nx-X11/config/cf/xorg.cf
+1
-1
glxext.h
nx-X11/extras/Mesa/include/GL/glxext.h
+1
-1
m_debug_clip.c
nx-X11/extras/Mesa/src/mesa/math/m_debug_clip.c
+0
-5
m_debug_norm.c
nx-X11/extras/Mesa/src/mesa/math/m_debug_norm.c
+0
-5
m_debug_xform.c
nx-X11/extras/Mesa/src/mesa/math/m_debug_xform.c
+0
-5
Xos.h
nx-X11/include/Xos.h
+1
-7
Xosdefs.h
nx-X11/include/Xosdefs.h
+0
-5
CrGlCur.c
nx-X11/lib/X11/CrGlCur.c
+0
-4
GetDflt.c
nx-X11/lib/X11/GetDflt.c
+0
-11
Imakefile
nx-X11/lib/X11/Imakefile
+2
-10
RdBitF.c
nx-X11/lib/X11/RdBitF.c
+0
-3
SetLocale.c
nx-X11/lib/X11/SetLocale.c
+2
-2
WMProps.c
nx-X11/lib/X11/WMProps.c
+0
-8
WrBitF.c
nx-X11/lib/X11/WrBitF.c
+0
-3
XKBCvt.c
nx-X11/lib/X11/XKBCvt.c
+0
-4
Xlib.h
nx-X11/lib/X11/Xlib.h
+0
-4
XlibInt.c
nx-X11/lib/X11/XlibInt.c
+0
-19
Xlibint.h
nx-X11/lib/X11/Xlibint.h
+0
-6
Xrm.c
nx-X11/lib/X11/Xrm.c
+1
-16
cmsColNm.c
nx-X11/lib/X11/cmsColNm.c
+0
-3
lcDB.c
nx-X11/lib/X11/lcDB.c
+0
-13
lcFile.c
nx-X11/lib/X11/lcFile.c
+3
-62
os2Stubs.c
nx-X11/lib/X11/os2Stubs.c
+0
-428
Imakefile
nx-X11/programs/Xserver/Imakefile
+1
-1
security.c
nx-X11/programs/Xserver/Xext/security.c
+0
-20
Imakefile
nx-X11/programs/Xserver/hw/nxagent/Imakefile
+0
-7
os2Stub.c
nx-X11/programs/Xserver/hw/nxagent/os2Stub.c
+0
-410
os.h
nx-X11/programs/Xserver/include/os.h
+1
-1
servermd.h
nx-X11/programs/Xserver/include/servermd.h
+0
-2
WaitFor.c
nx-X11/programs/Xserver/os/WaitFor.c
+0
-3
access.c
nx-X11/programs/Xserver/os/access.c
+0
-7
connection.c
nx-X11/programs/Xserver/os/connection.c
+1
-28
io.c
nx-X11/programs/Xserver/os/io.c
+1
-5
log.c
nx-X11/programs/Xserver/os/log.c
+0
-3
oscolor.c
nx-X11/programs/Xserver/os/oscolor.c
+0
-11
osdep.h
nx-X11/programs/Xserver/os/osdep.h
+1
-1
osinit.c
nx-X11/programs/Xserver/os/osinit.c
+1
-1
utils.c
nx-X11/programs/Xserver/os/utils.c
+4
-22
ddxConfig.c
nx-X11/programs/Xserver/xkb/ddxConfig.c
+0
-3
ddxLoad.c
nx-X11/programs/Xserver/xkb/ddxLoad.c
+1
-35
xkbInit.c
nx-X11/programs/Xserver/xkb/xkbInit.c
+1
-1
No files found.
nx-X11/config/cf/Imake.cf
View file @
0f9a11a9
...
...
@@ -1117,13 +1117,6 @@ XCOMM Keep cpp from replacing path elements containing i486/i586/i686
#endif
#endif
#ifdef emxos2
#define MacroIncludeFile <os2.cf>
#define MacroFile os2.cf
#define OS2Architecture
#define i386Architecture
#endif /* emxos2 */
#if defined(__QNX__) && !defined(__QNXNTO__)
#define MacroIncludeFile <QNX4.cf>
#define MacroFile QNX4.cf
...
...
nx-X11/config/cf/Imake.tmpl
View file @
0f9a11a9
...
...
@@ -466,7 +466,7 @@ XCOMM the platform-specific parameters - edit site.def to change
#define HasBasename YES
#endif
#ifndef HasGetopt
# if !defined(Win32Architecture)
&& !defined(OS2Architecture)
# if !defined(Win32Architecture)
# define HasGetopt YES
# else
# define HasGetopt NO
...
...
nx-X11/config/cf/xorg.cf
View file @
0f9a11a9
...
...
@@ -513,7 +513,7 @@ IPLAN2P8_DEFS = -DUSE_IPLAN2P8
# if SystemV || SystemV4 || \
(defined(LinuxArchitecture) && !defined(Mc68020Architecture)) || \
defined(i386BsdArchitecture) || defined(LynxOSArchitecture) || \
defined(
OS2Architecture) || defined(
GNUMachArchitecture) || \
defined(GNUMachArchitecture) || \
(defined(KFreeBSDArchitecture) && defined(i386Architecture))
# define BuildScanpci YES
# else
...
...
nx-X11/extras/Mesa/include/GL/glxext.h
View file @
0f9a11a9
...
...
@@ -340,7 +340,7 @@ typedef long int int64_t;
typedef
long
long
int
int64_t
;
#endif
/* __arch64__ */
#endif
/* __STDC__ */
#elif defined(__
UNIXOS2__) || defined(__
SOL64__)
#elif defined(__SOL64__)
typedef
long
int
int32_t
;
typedef
long
long
int
int64_t
;
#elif defined( __VMS )
...
...
nx-X11/extras/Mesa/src/mesa/math/m_debug_clip.c
View file @
0f9a11a9
...
...
@@ -36,11 +36,6 @@
#include "m_debug.h"
#include "m_debug_util.h"
#ifdef __UNIXOS2__
/* The linker doesn't like empty files */
static
char
dummy
;
#endif
#ifdef DEBUG
/* This code only used for debugging */
static
clip_func
*
clip_tab
[
2
]
=
{
...
...
nx-X11/extras/Mesa/src/mesa/math/m_debug_norm.c
View file @
0f9a11a9
...
...
@@ -38,11 +38,6 @@
#include "m_debug_util.h"
#ifdef __UNIXOS2__
/* The linker doesn't like empty files */
static
char
dummy
;
#endif
#ifdef DEBUG
/* This code only used for debugging */
...
...
nx-X11/extras/Mesa/src/mesa/math/m_debug_xform.c
View file @
0f9a11a9
...
...
@@ -37,11 +37,6 @@
#include "m_debug.h"
#include "m_debug_util.h"
#ifdef __UNIXOS2__
/* The linker doesn't like empty files */
static
char
dummy
;
#endif
#ifdef DEBUG
/* This code only used for debugging */
...
...
nx-X11/include/Xos.h
View file @
0f9a11a9
...
...
@@ -246,12 +246,6 @@ typedef unsigned long fd_mask;
#endif
#endif
/* XPG4 else */
#ifdef __UNIXOS2__
typedef
unsigned
long
fd_mask
;
#include <limits.h>
#define MAX_PATH _POSIX_PATH_MAX
#endif
#ifdef __GNU__
#define PATH_MAX 4096
#define MAXPATHLEN 4096
...
...
@@ -269,7 +263,7 @@ typedef unsigned long fd_mask;
#define NGROUPS 16
#endif
#if defined(ISC) ||
defined(__UNIXOS2__) ||
\
#if defined(ISC) || \
(defined(__linux__) && !defined(__GLIBC__)) || \
(defined(__QNX__) && !defined(UNIXCONN))
/*
...
...
nx-X11/include/Xosdefs.h
View file @
0f9a11a9
...
...
@@ -127,11 +127,6 @@ in this Software without prior written authorization from The Open Group.
#define X_NOT_STDC_ENV
#endif
#ifdef __UNIXOS2__
#define USGISH
#define NULL_NOT_ZERO
#endif
#ifdef __DARWIN__
#define NULL_NOT_ZERO
#endif
...
...
nx-X11/lib/X11/CrGlCur.c
View file @
0f9a11a9
...
...
@@ -31,10 +31,6 @@ in this Software without prior written authorization from The Open Group.
#ifdef USE_DYNAMIC_XCURSOR
#ifdef __UNIXOS2__
#define RTLD_LAZY 1
#define LIBXCURSOR "Xcursor.dll"
#endif
#include <stdio.h>
#include <string.h>
#if defined(hpux)
...
...
nx-X11/lib/X11/GetDflt.c
View file @
0f9a11a9
...
...
@@ -184,10 +184,6 @@ XGetDefault(
#ifdef WIN32
char
*
progname2
;
#endif
#ifdef __UNIXOS2__
char
*
progname2
;
char
*
dotpos
;
#endif
/*
* strip path off of program name (XXX - this is OS specific)
...
...
@@ -198,13 +194,6 @@ XGetDefault(
if
(
progname2
&&
(
!
progname
||
progname
<
progname2
))
progname
=
progname2
;
#endif
#ifdef __UNIXOS2__
/* Very similar to WIN32 */
progname2
=
strrchr
(
prog
,
'\\'
);
if
(
progname2
&&
(
!
progname
||
progname
<
progname2
))
progname
=
progname2
;
dotpos
=
strrchr
(
prog
,
'.'
);
if
(
dotpos
&&
(
dotpos
>
progname2
))
*
dotpos
=
'\0'
;
#endif
/* We take out the .exe suffix */
if
(
progname
)
progname
++
;
...
...
nx-X11/lib/X11/Imakefile
View file @
0f9a11a9
...
...
@@ -806,7 +806,7 @@ SRCS3 = \
LockDis.c \
x11_trans.c \
xim_trans.c \
$(XKBSRCS) $(LCSRCS)
$(MISCSRCS)
$(XKBSRCS) $(LCSRCS)
OBJS3 = \
Lab.o \
...
...
@@ -889,7 +889,7 @@ OBJS3 = \
LockDis.o \
x11_trans.o \
xim_trans.o \
$(XKBOBJS) $(LCOBJS)
$(MISCOBJS)
$(XKBOBJS) $(LCOBJS)
SHAREDLCDEPSYMSRCS = XlcDL.c XlcSL.c
...
...
@@ -1036,14 +1036,6 @@ SHAREDLCOBJS = \
$(SHAREDLCDEPOBJS) \
$(SHAREDI18NSTATICOBJS)
#ifdef OS2Architecture
MISCSRCS = os2Stubs.c
#endif
#ifdef OS2Architecture
MISCOBJS = os2Stubs.o
#endif
OBJS = $(OBJS1) $(OBJS2) $(OBJS3)
EXTRAUNSHAREDOBJS = $(STATICLCOBJS)
...
...
nx-X11/lib/X11/RdBitF.c
View file @
0f9a11a9
...
...
@@ -129,9 +129,6 @@ XReadBitmapFileData (
int
hx
=
-
1
;
/* x hotspot */
int
hy
=
-
1
;
/* y hotspot */
#ifdef __UNIXOS2__
filename
=
__XOS2RedirRoot
(
filename
);
#endif
if
(
!
(
fstream
=
fopen
(
filename
,
"r"
)))
return
BitmapOpenFailed
;
...
...
nx-X11/lib/X11/SetLocale.c
View file @
0f9a11a9
...
...
@@ -99,7 +99,7 @@ _XlcMapOSLocaleName(
char
*
osname
,
char
*
siname
)
{
#if defined(hpux) || defined(CSRG_BASED) || defined(sun) || defined(SVR4) || defined(sgi) || defined(__osf__) || defined(AIXV3) || defined(ultrix) || defined(WIN32) || defined(
__UNIXOS2__) || defined(
linux)
#if defined(hpux) || defined(CSRG_BASED) || defined(sun) || defined(SVR4) || defined(sgi) || defined(__osf__) || defined(AIXV3) || defined(ultrix) || defined(WIN32) || defined(linux)
# ifdef hpux
# ifndef _LastCategory
/* HPUX 9 and earlier */
...
...
@@ -116,7 +116,7 @@ _XlcMapOSLocaleName(
# define STARTCHAR '\001'
# define ENDCHAR '\001'
# else
# if defined(WIN32)
|| defined(__UNIXOS2__)
# if defined(WIN32)
# define SKIPCOUNT 1
# define STARTCHAR '='
# define ENDCHAR ';'
...
...
nx-X11/lib/X11/WMProps.c
View file @
0f9a11a9
...
...
@@ -122,14 +122,6 @@ void XSetWMProperties (
* systems will have to change this.
*/
char
*
cp
=
strrchr
(
argv
[
0
],
'/'
);
#ifdef __UNIXOS2__
char
*
os2_cp
=
strrchr
(
argv
[
0
],
'\\'
);
char
*
dot_cp
=
strrchr
(
argv
[
0
],
'.'
);
if
(
os2_cp
&&
(
os2_cp
>
cp
))
{
if
(
dot_cp
&&
(
dot_cp
>
os2_cp
))
*
dot_cp
=
'\0'
;
cp
=
os2_cp
;
}
#endif
tmp
.
res_name
=
(
cp
?
cp
+
1
:
argv
[
0
]);
}
tmp
.
res_class
=
classHints
->
res_class
;
...
...
nx-X11/lib/X11/WrBitF.c
View file @
0f9a11a9
...
...
@@ -105,9 +105,6 @@ XWriteBitmapFile(
else
name
++
;
#ifdef __UNIXOS2__
filename
=
(
char
*
)
__XOS2RedirRoot
(
filename
);
#endif
if
(
!
(
stream
=
fopen
(
filename
,
"w"
)))
return
(
BitmapOpenFailed
);
...
...
nx-X11/lib/X11/XKBCvt.c
View file @
0f9a11a9
...
...
@@ -279,11 +279,7 @@ _XkbGetCharset(void)
else
{
struct
stat
sbuf
;
FILE
*
file
;
#ifndef __UNIXOS2__
char
*
cf
=
CHARSET_FILE
;
#else
char
*
cf
=
__XOS2RedirRoot
(
CHARSET_FILE
);
#endif
#ifndef S_ISREG
# define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
...
...
nx-X11/lib/X11/Xlib.h
View file @
0f9a11a9
...
...
@@ -51,13 +51,9 @@ in this Software without prior written authorization from The Open Group.
#ifndef X_WCHAR
#include <stddef.h>
#else
#ifdef __UNIXOS2__
#include <stdlib.h>
#else
/* replace this with #include or typedef appropriate for your system */
typedef
unsigned
long
wchar_t
;
#endif
#endif
extern
int
...
...
nx-X11/lib/X11/XlibInt.c
View file @
0f9a11a9
...
...
@@ -169,14 +169,9 @@ extern int _X11TransSocketCongestionChange(XtransConnInfo, int *);
#define ECHECK(err) (WSAGetLastError() == err)
#define ESET(val) WSASetLastError(val)
#else
#ifdef __UNIXOS2__
#define ECHECK(err) (errno == err)
#define ESET(val)
#else
#define ECHECK(err) (errno == err)
#define ESET(val) errno = val
#endif
#endif
#if defined(LOCALCONN) || defined(LACHMAN)
#ifdef EMSGSIZE
...
...
@@ -190,14 +185,6 @@ extern int _X11TransSocketCongestionChange(XtransConnInfo, int *);
#endif
#endif
#ifdef __UNIXOS2__
#if !USE_XCB
#define select(n,r,w,x,t) os2ClientSelect(n,r,w,x,t)
#endif
/* !USE_XCB */
#include <limits.h>
#define MAX_PATH _POSIX_PATH_MAX
#endif
#if !USE_XCB
#define STARTITERATE(tpvar,type,start,endcond) \
...
...
@@ -4054,10 +4041,6 @@ static int AccessFile (path, pathbuf, len_pathbuf, pathret)
/* try the places set in the environment */
drive
=
getenv
(
"_XBASEDRIVE"
);
#ifdef __UNIXOS2__
if
(
!
drive
)
drive
=
getenv
(
"X11ROOT"
);
#endif
if
(
!
drive
)
drive
=
"C:"
;
len
=
strlen
(
drive
)
+
strlen
(
path
);
...
...
@@ -4070,7 +4053,6 @@ static int AccessFile (path, pathbuf, len_pathbuf, pathret)
return
1
;
}
#ifndef __UNIXOS2__
/* one last place to look */
drive
=
getenv
(
"HOMEDRIVE"
);
if
(
drive
)
{
...
...
@@ -4105,7 +4087,6 @@ static int AccessFile (path, pathbuf, len_pathbuf, pathret)
}
}
}
#endif
return
0
;
}
...
...
nx-X11/lib/X11/Xlibint.h
View file @
0f9a11a9
...
...
@@ -1249,12 +1249,6 @@ struct _XConnWatchInfo { /* info from XAddConnectionWatch */
struct
_XConnWatchInfo
*
next
;
};
#ifdef __UNIXOS2__
extern
char
*
__XOS2RedirRoot
(
char
*
);
#endif
extern
int
_XTextHeight
(
XFontStruct
*
/* font_struct */
,
_Xconst
char
*
/* string */
,
...
...
nx-X11/lib/X11/Xrm.c
View file @
0f9a11a9
...
...
@@ -305,7 +305,7 @@ typedef unsigned char XrmBits;
static
XrmBits
const
xrmtypes
[
256
]
=
{
EOS
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
SPACE
,
EOL
,
0
,
0
,
#if defined(WIN32)
|| defined(__UNIXOS2__)
#if defined(WIN32)
EOL
,
/* treat CR the same as LF, just in case */
#else
0
,
...
...
@@ -1575,10 +1575,6 @@ ReadInFile(_Xconst char *filename)
register
int
fd
,
size
;
char
*
filebuf
;
#ifdef __UNIXOS2__
filename
=
__XOS2RedirRoot
(
filename
);
#endif
/*
* MS-Windows and OS/2 note: Default open mode includes O_TEXT
*/
...
...
@@ -1610,17 +1606,6 @@ ReadInFile(_Xconst char *filename)
}
size
=
read
(
fd
,
filebuf
,
size
);
#ifdef __UNIXOS2__
{
/* kill CRLF */
int
i
,
k
;
for
(
i
=
k
=
0
;
i
<
size
;
i
++
)
if
(
filebuf
[
i
]
!=
0x0d
)
{
filebuf
[
k
++
]
=
filebuf
[
i
];
}
filebuf
[
k
]
=
0
;
}
#endif
if
(
size
<
0
)
{
close
(
fd
);
Xfree
(
filebuf
);
...
...
nx-X11/lib/X11/cmsColNm.c
View file @
0f9a11a9
...
...
@@ -730,9 +730,6 @@ LoadColornameDB(void)
if
((
pathname
=
getenv
(
"XCMSDB"
))
==
NULL
)
{
pathname
=
XCMSDB
;
}
#ifdef __UNIXOS2__
pathname
=
__XOS2RedirRoot
(
pathname
);
#endif
length
=
strlen
(
pathname
);
if
((
length
==
0
)
||
(
length
>=
(
BUFSIZ
-
5
))){
...
...
nx-X11/lib/X11/lcDB.c
View file @
0f9a11a9
...
...
@@ -344,15 +344,6 @@ read_line(
cur
+=
len
;
str
[
cur
]
=
'\0'
;
#ifdef __UNIXOS2__
/* Take out carriage returns under OS/2 */
if
(
cur
>
1
)
{
if
(
str
[
cur
-
2
]
==
'\r'
&&
str
[
cur
-
1
]
==
'\n'
)
{
str
[
cur
-
2
]
=
'\n'
;
str
[
cur
-
1
]
=
'\0'
;
cur
--
;
}
}
#endif
if
(
!
quoted
&&
cur
>
1
&&
str
[
cur
-
2
]
==
SYM_BACKSLASH
&&
(
str
[
cur
-
1
]
==
SYM_NEWLINE
||
str
[
cur
-
1
]
==
SYM_CR
))
{
/* the line is ended backslash followed by newline.
...
...
@@ -1286,11 +1277,7 @@ _XlcCreateLocaleDataBase(
if
(
name
==
NULL
)
return
(
XPointer
)
NULL
;
#ifndef __UNIXOS2__
name_q
=
XrmStringToQuark
(
name
);
#else
name_q
=
XrmStringToQuark
((
char
*
)
__XOS2RedirRoot
(
name
));
#endif
for
(
list
=
_db_list
;
list
;
list
=
list
->
next
)
{
if
(
name_q
==
list
->
name_q
)
{
list
->
ref_count
++
;
...
...
nx-X11/lib/X11/lcFile.c
View file @
0f9a11a9
...
...
@@ -36,9 +36,6 @@
/************************************************************************/
#ifdef __UNIXOS2__
# define seteuid setuid
#endif
#define iscomment(ch) ((ch) == '#' || (ch) == '\0')
#if defined(WIN32)
#define isreadable(f) (_XAccessFile(f))
...
...
@@ -46,11 +43,7 @@
#define isreadable(f) ((access((f), R_OK) != -1) ? 1 : 0)
#endif
#ifndef __UNIXOS2__
#define LC_PATHDELIM ':'
#else
#define LC_PATHDELIM ';'
#endif
#define XLC_BUFSIZE 256
...
...
@@ -92,40 +85,7 @@ parse_line(
return
argc
;
}
#ifdef __UNIXOS2__
/* fg021216: entries in locale files are separated by colons while under
OS/2, path entries are separated by semicolon, so we need two functions */
static
int
parse_line1
(
char
*
line
,
char
**
argv
,
int
argsize
)
{
int
argc
=
0
;
char
*
p
=
line
;
while
(
argc
<
argsize
)
{
while
(
isspace
(
*
p
))
{
++
p
;
}
if
(
*
p
==
'\0'
)
{
break
;
}
argv
[
argc
++
]
=
p
;
while
(
*
p
!=
';'
&&
*
p
!=
'\n'
&&
*
p
!=
'\0'
)
{
++
p
;
}
if
(
*
p
==
'\0'
)
{
break
;
}
*
p
++
=
'\0'
;
}
return
argc
;
}
#elif defined(WIN32)
#if defined(WIN32)
/* this is parse_line but skips drive letters at the beginning of the entry */
static
int
...
...
@@ -160,7 +120,7 @@ parse_line1(
return
argc
;
}
#endif
/*
__UNIXOS2__
*/
#endif
/*
WIN32
*/
/* Splits a colon separated list of directories, and returns the constituent
paths (without trailing slash). At most argsize constituents are stored
...
...
@@ -174,7 +134,7 @@ _XlcParsePath(
char
*
p
=
path
;
int
n
,
i
;
#if !defined(
__UNIXOS2__) && !defined(
WIN32)
#if !defined(WIN32)
n
=
parse_line
(
path
,
argv
,
argsize
);
#else
n
=
parse_line1
(
path
,
argv
,
argsize
);
...
...
@@ -265,11 +225,7 @@ xlocaledir(
#endif
/* NO_XLOCALEDIR */
if
(
len
<
buf_len
)
#ifndef __UNIXOS2__
strncpy
(
p
,
XLOCALEDIR
,
buf_len
-
len
);
#else
strncpy
(
p
,
__XOS2RedirRoot
(
XLOCALEDIR
),
buf_len
-
len
);
#endif
buf
[
buf_len
-
1
]
=
'\0'
;
}
...
...
@@ -343,11 +299,7 @@ xlocalelibdir(
#endif
/* NO_XLOCALEDIR */
if
(
len
<
buf_len
)
#ifndef __UNIXOS2__
strncpy
(
p
,
XLOCALELIBDIR
,
buf_len
-
len
);
#else
strncpy
(
p
,
__XOS2RedirRoot
(
XLOCALELIBDIR
),
buf_len
-
len
);
#endif
buf
[
buf_len
-
1
]
=
'\0'
;
}
...
...
@@ -374,17 +326,6 @@ resolve_name(
char
*
p
=
buf
;
int
n
;
char
*
args
[
2
],
*
from
,
*
to
;
#ifdef __UNIXOS2__
/* Take out CR under OS/2 */
int
len
;
len
=
strlen
(
p
);
if
(
len
>
1
)
{
if
(
*
(
p
+
len
-
2
)
==
'\r'
&&
*
(
p
+
len
-
1
)
==
'\n'
)
{
*
(
p
+
len
-
2
)
=
'\n'
;
*
(
p
+
len
-
1
)
=
'\0'
;
}
}
#endif
while
(
isspace
(
*
p
))
{
++
p
;
}
...
...
nx-X11/lib/X11/os2Stubs.c
deleted
100644 → 0
View file @
f22e873e
/*
* (c) Copyright 1996 by Sebastien Marineau and Holger Veit
* <marineau@genie.uottawa.ca>
* <Holger.Veit@gmd.de>
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* HOLGER VEIT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Except as contained in this notice, the name of Sebastien Marineau or Holger Veit
* shall not be used in advertising or otherwise to promote the sale, use or other
* dealings in this Software without prior written authorization from Holger Veit or
* Sebastien Marineau.
*
*/
/* A few OS/2 functions needed in the X11 lib. Mainly, the file path redirection
* functions and the "optimized" select() for the clients */
#define I_NEED_OS2_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <nx-X11/Xpoll.h>
#include <stdio.h>
#include <sys/errno.h>
#define INCL_DOSSEMAPHORES
#define INCL_DOSNPIPES
#define INCL_DOSMISC
#define INCL_DOSMODULEMGR
#undef BOOL
#undef BYTE
#include <os2.h>
#include <sys/select.h>
#include <sys/time.h>
char
*
__XOS2RedirRoot
(
char
*
fname
)
{
/* This adds a further redirection by allowing the ProjectRoot
* to be prepended by the content of the envvar X11ROOT.
* This is for the purpose to move the whole X11 stuff to a different
* disk drive.
* The feature was added despite various environment variables
* because not all file opens respect them.
*/
static
char
redirname
[
300
];
/* enough for long filenames */
char
*
root
;
/* if name does not start with /, assume it is not root-based */
if
(
fname
==
0
||
!
(
fname
[
0
]
==
'/'
||
fname
[
0
]
==
'\\'
))
return
fname
;
root
=
(
char
*
)
getenv
(
"X11ROOT"
);
if
(
root
==
0
||
(
fname
[
1
]
==
':'
&&
isalpha
(
fname
[
0
]))
||
(
strlen
(
fname
)
+
strlen
(
root
)
+
2
)
>
300
)
return
fname
;
sprintf
(
redirname
,
"%s%s"
,
root
,
fname
);
return
redirname
;
}
char
*
__XOS2RedirRoot1
(
char
*
format
,
char
*
arg1
,
char
*
arg2
,
char
*
arg3
)
{
/* this first constructs a name from a format and up to three
* components, then adds a path
*/
char
buf
[
300
];
sprintf
(
buf
,
format
,
arg1
,
arg2
,
arg3
);
return
__XOS2RedirRoot
(
buf
);
}
/* This below implements select() for the calls in this file. It has been */
/* somewhat optimized for improved performance, but assumes a few */
/* things so it cannot be used as a general select. If both pipes and */
/* sockets are present, this may call the emx select */
HEV
hPipeSem
;
HMODULE
hmod_so32dll
;
static
int
(
*
os2_tcp_select
)(
int
*
,
int
,
int
,
int
,
long
);
ULONG
os2_get_sys_millis
();
extern
int
_files
[];
#define MAX_TCP 256
/* These lifted from sys/emx.h. Change if that changes there! */
#define F_SOCKET 0x10000000
#define F_PIPE 0x20000000
struct
select_data
{
fd_set
read_copy
;
fd_set
write_copy
;
BOOL
have_read
;
BOOL
have_write
;
int
tcp_select_mask
[
MAX_TCP
];
int
tcp_emx_handles
[
MAX_TCP
];
int
tcp_select_copy
[
MAX_TCP
];
int
socket_nread
;
int
socket_nwrite
;
int
socket_ntotal
;
int
pipe_ntotal
;
int
pipe_have_write
;
int
max_fds
;
};
int
os2ClientSelect
(
int
nfds
,
fd_set
*
readfds
,
fd_set
*
writefds
,
fd_set
*
exceptfds
,
struct
timeval
*
timeout
)
{
static
BOOL
FirstTime
=
TRUE
;
static
haveTCPIP
=
TRUE
;
ULONG
timeout_ms
;
ULONG
postCount
,
start_millis
,
now_millis
;
char
faildata
[
16
];
struct
select_data
sd
;
BOOL
any_ready
;
int
np
,
ns
,
i
,
ready_handles
,
n
;
APIRET
rc
;
sd
.
have_read
=
FALSE
;
sd
.
have_write
=
FALSE
;
sd
.
socket_nread
=
0
;
sd
.
socket_nwrite
=
0
;
sd
.
socket_ntotal
=
0
;
sd
.
max_fds
=
31
;
ready_handles
=
0
;
any_ready
=
FALSE
;
sd
.
pipe_ntotal
=
0
;
sd
.
pipe_have_write
=
FALSE
;
if
(
FirstTime
){
/* First load the so32dll.dll module and get a pointer to the SELECT fn */
if
((
rc
=
DosLoadModule
(
faildata
,
sizeof
(
faildata
),
"SO32DLL"
,
&
hmod_so32dll
))
!=
0
){
fprintf
(
stderr
,
"Could not load module so32dll.dll, rc = %d. Error note %s
\n
"
,
rc
,
faildata
);
haveTCPIP
=
FALSE
;
}
if
((
rc
=
DosQueryProcAddr
(
hmod_so32dll
,
0
,
"SELECT"
,
(
PPFN
)
&
os2_tcp_select
))
!=
0
){
fprintf
(
stderr
,
"Could not query address of SELECT, rc = %d.
\n
"
,
rc
);
haveTCPIP
=
FALSE
;
}
/* Call these a first time to set the semaphore */
rc
=
DosCreateEventSem
(
NULL
,
&
hPipeSem
,
DC_SEM_SHARED
,
FALSE
);
if
(
rc
)
{
fprintf
(
stderr
,
"Could not create event semaphore, rc=%d
\n
"
,
rc
);
return
(
-
1
);
}
rc
=
DosResetEventSem
(
hPipeSem
,
&
postCount
);
FirstTime
=
FALSE
;
}
/* Set up the time delay structs */
if
(
timeout
!=
NULL
)
{
timeout_ms
=
timeout
->
tv_sec
*
1000
+
timeout
->
tv_usec
/
1000
;
}
else
{
timeout_ms
=
1000000
;
}
/* This should be large enough... */
if
(
timeout_ms
>
0
)
start_millis
=
os2_get_sys_millis
();
/* Copy the masks */
{
FD_ZERO
(
&
sd
.
read_copy
);}
{
FD_ZERO
(
&
sd
.
write_copy
);}
if
(
readfds
!=
NULL
){
XFD_COPYSET
(
readfds
,
&
sd
.
read_copy
);
sd
.
have_read
=
TRUE
;}
if
(
writefds
!=
NULL
)
{
XFD_COPYSET
(
writefds
,
&
sd
.
write_copy
);
sd
.
have_write
=
TRUE
;}
/* And zero the original masks */
if
(
sd
.
have_read
){
FD_ZERO
(
readfds
);}
if
(
sd
.
have_write
)
{
FD_ZERO
(
writefds
);}
if
(
exceptfds
!=
NULL
)
{
FD_ZERO
(
exceptfds
);}
/* Now we parse the fd_sets passed to select and separate pipe/sockets */
n
=
os2_parse_select
(
&
sd
,
nfds
);
if
(
n
==
-
1
)
{
errno
=
EBADF
;
return
(
-
1
);
}
/* Now we have three cases: either we have sockets, pipes, or both */
/* We handle all three cases differently to optimize things */
/* Case 1: only pipes! */
if
((
sd
.
pipe_ntotal
>
0
)
&&
(
!
sd
.
socket_ntotal
)){
np
=
os2_check_pipes
(
&
sd
,
readfds
,
writefds
);
if
(
np
>
0
){
return
(
np
);
}
else
if
(
np
==
-
1
)
{
return
(
-
1
);
}
while
(
!
any_ready
){
rc
=
DosWaitEventSem
(
hPipeSem
,
timeout_ms
);
if
(
rc
==
640
)
{
return
(
0
);
}
if
((
rc
!=
0
)
&&
(
rc
!=
95
))
{
errno
=
EBADF
;
return
(
-
1
);}
np
=
os2_check_pipes
(
&
sd
,
readfds
,
writefds
);
if
(
np
>
0
){
return
(
np
);
}
else
if
(
np
<
0
){
return
(
-
1
);
}
}
}
/* Case 2: only sockets. Just let the os/2 tcp select do the work */
if
((
sd
.
socket_ntotal
>
0
)
&&
(
!
sd
.
pipe_ntotal
)){
ns
=
os2_check_sockets
(
&
sd
,
readfds
,
writefds
,
timeout_ms
);
return
(
ns
);
}
/* Case 3: combination of both */
if
((
sd
.
socket_ntotal
>
0
)
&&
(
sd
.
pipe_ntotal
)){
np
=
os2_check_pipes
(
&
sd
,
readfds
,
writefds
);
if
(
np
>
0
){
any_ready
=
TRUE
;
ready_handles
+=
np
;
}
else
if
(
np
==
-
1
)
{
return
(
-
1
);
}
ns
=
os2_check_sockets
(
&
sd
,
readfds
,
writefds
,
0
);
if
(
ns
>
0
){
ready_handles
+=
ns
;
any_ready
=
TRUE
;
}
else
if
(
ns
==
-
1
)
{
return
(
-
1
);}
while
(
!
any_ready
&&
timeout_ms
){
rc
=
DosWaitEventSem
(
hPipeSem
,
10L
);
if
(
rc
==
0
){
np
=
os2_check_pipes
(
&
sd
,
readfds
,
writefds
);
if
(
np
>
0
){
ready_handles
+=
np
;
any_ready
=
TRUE
;
}
else
if
(
np
==
-
1
)
{
return
(
-
1
);
}
}
ns
=
os2_check_sockets
(
&
sd
,
readfds
,
writefds
,
exceptfds
,
0
);
if
(
ns
>
0
){
ready_handles
+=
ns
;
any_ready
=
TRUE
;
}
else
if
(
ns
==
-
1
)
{
return
(
-
1
);}
if
(
i
%
8
==
0
)
{
now_millis
=
os2_get_sys_millis
();
if
((
now_millis
-
start_millis
)
>
timeout_ms
)
timeout_ms
=
0
;
}
i
++
;
}
}
return
(
ready_handles
);
}
ULONG
os2_get_sys_millis
()
{
APIRET
rc
;
ULONG
milli
;
rc
=
DosQuerySysInfo
(
14
,
14
,
&
milli
,
sizeof
(
milli
));
if
(
rc
)
{
fprintf
(
stderr
,
"Bad return code querying the millisecond counter! rc=%d
\n
"
,
rc
);
return
(
0
);
}
return
(
milli
);
}
int
os2_parse_select
(
sd
,
nfds
)
struct
select_data
*
sd
;
int
nfds
;
{
int
i
;
APIRET
rc
;
/* First we determine up to which descriptor we need to check. */
/* No need to check up to 256 if we don't have to (and usually we dont...)*/
/* Note: stuff here is hardcoded for fd_sets which are int[8] as in EMX!!! */
if
(
nfds
>
sd
->
max_fds
){
for
(
i
=
0
;
i
<
((
FD_SETSIZE
+
31
)
/
32
);
i
++
){
if
(
sd
->
read_copy
.
fds_bits
[
i
]
||
sd
->
write_copy
.
fds_bits
[
i
])
sd
->
max_fds
=
(
i
*
32
)
+
32
;
}
}
else
{
sd
->
max_fds
=
nfds
;
}
/* Check if result is greater than specified in select() call */
if
(
sd
->
max_fds
>
nfds
)
sd
->
max_fds
=
nfds
;
if
(
sd
->
have_read
)
{
for
(
i
=
0
;
i
<
sd
->
max_fds
;
++
i
)
{
if
(
FD_ISSET
(
i
,
&
sd
->
read_copy
)){
if
(
_files
[
i
]
&
F_SOCKET
)
{
sd
->
tcp_select_mask
[
sd
->
socket_ntotal
]
=
_getsockhandle
(
i
);
sd
->
tcp_emx_handles
[
sd
->
socket_ntotal
]
=
i
;
sd
->
socket_ntotal
++
;
sd
->
socket_nread
++
;
}
else
if
(
_files
[
i
]
&
F_PIPE
)
{
sd
->
pipe_ntotal
++
;
rc
=
DosSetNPipeSem
((
HPIPE
)
i
,
(
HSEM
)
hPipeSem
,
i
);
if
(
rc
)
{
fprintf
(
stderr
,
"Error SETNPIPE rc = %d
\n
"
,
rc
);
return
-
1
;}
}
}
}
}
if
(
sd
->
have_write
)
{
for
(
i
=
0
;
i
<
sd
->
max_fds
;
++
i
)
{
if
(
FD_ISSET
(
i
,
&
sd
->
write_copy
)){
if
(
_files
[
i
]
&
F_SOCKET
)
{
sd
->
tcp_select_mask
[
sd
->
socket_ntotal
]
=
_getsockhandle
(
i
);
sd
->
tcp_emx_handles
[
sd
->
socket_ntotal
]
=
i
;
sd
->
socket_ntotal
++
;
sd
->
socket_nwrite
++
;
}
else
if
(
_files
[
i
]
&
F_PIPE
)
{
sd
->
pipe_ntotal
++
;
rc
=
DosSetNPipeSem
((
HPIPE
)
i
,
(
HSEM
)
hPipeSem
,
i
);
if
(
rc
)
{
fprintf
(
stderr
,
"Error SETNPIPE rc = %d
\n
"
,
rc
);
return
-
1
;}
sd
->
pipe_have_write
=
TRUE
;
}
}
}
}
return
(
sd
->
socket_ntotal
);
}
int
os2_check_sockets
(
sd
,
readfds
,
writefds
)
struct
select_data
*
sd
;
fd_set
*
readfds
,
*
writefds
;
{
int
e
,
i
;
int
j
,
n
;
memcpy
(
sd
->
tcp_select_copy
,
sd
->
tcp_select_mask
,
sd
->
socket_ntotal
*
sizeof
(
int
));
e
=
os2_tcp_select
(
sd
->
tcp_select_copy
,
sd
->
socket_nread
,
sd
->
socket_nwrite
,
0
,
0
);
if
(
e
==
0
)
return
(
e
);
/* We have something ready? */
if
(
e
>
0
){
j
=
0
;
n
=
0
;
for
(
i
=
0
;
i
<
sd
->
socket_nread
;
++
i
,
++
j
)
if
(
sd
->
tcp_select_copy
[
j
]
!=
-
1
)
{
FD_SET
(
sd
->
tcp_emx_handles
[
j
],
readfds
);
n
++
;
}
for
(
i
=
0
;
i
<
sd
->
socket_nwrite
;
++
i
,
++
j
)
if
(
sd
->
tcp_select_copy
[
j
]
!=
-
1
)
{
FD_SET
(
sd
->
tcp_emx_handles
[
j
],
writefds
);
n
++
;
}
errno
=
0
;
return
n
;
}
if
(
e
<
0
){
/*Error -- TODO */
fprintf
(
stderr
,
"Error in server select! e=%d
\n
"
,
e
);
errno
=
EBADF
;
return
(
-
1
);
}
}
/* Check to see if anything is ready on pipes */
int
os2_check_pipes
(
sd
,
readfds
,
writefds
)
struct
select_data
*
sd
;
fd_set
*
readfds
,
*
writefds
;
{
int
i
,
e
;
ULONG
ulPostCount
;
PIPESEMSTATE
pipeSemState
[
128
];
APIRET
rc
;
e
=
0
;
rc
=
DosResetEventSem
(
hPipeSem
,
&
ulPostCount
);
rc
=
DosQueryNPipeSemState
((
HSEM
)
hPipeSem
,
(
PPIPESEMSTATE
)
&
pipeSemState
,
sizeof
(
pipeSemState
));
if
(
rc
)
fprintf
(
stderr
,
"SELECT: rc from QueryNPipeSem: %d
\n
"
,
rc
);
i
=
0
;
while
(
pipeSemState
[
i
].
fStatus
!=
0
)
{
/*fprintf(stderr,"SELECT: sem entry, stat=%d, flag=%d, key=%d,avail=%d\n",
pipeSemState[i].fStatus,pipeSemState[i].fFlag,pipeSemState[i].usKey,
pipeSemState[i].usAvail); */
if
((
pipeSemState
[
i
].
fStatus
==
1
)
&&
(
FD_ISSET
(
pipeSemState
[
i
].
usKey
,
&
sd
->
read_copy
))){
FD_SET
(
pipeSemState
[
i
].
usKey
,
readfds
);
e
++
;
}
else
if
((
pipeSemState
[
i
].
fStatus
==
2
)
&&
(
FD_ISSET
(
pipeSemState
[
i
].
usKey
,
&
sd
->
write_copy
))){
FD_SET
(
pipeSemState
[
i
].
usKey
,
writefds
);
e
++
;
}
else
if
(
(
pipeSemState
[
i
].
fStatus
==
3
)
&&
(
(
FD_ISSET
(
pipeSemState
[
i
].
usKey
,
&
sd
->
read_copy
))
||
(
FD_ISSET
(
pipeSemState
[
i
].
usKey
,
&
sd
->
write_copy
))
)){
errno
=
EBADF
;
return
(
-
1
);
}
i
++
;
}
/* endwhile */
/*fprintf(stderr,"Done listing pipe sem entries, total %d entries, total ready entries %d\n",i,e);*/
errno
=
0
;
return
(
e
);
}
nx-X11/programs/Xserver/Imakefile
View file @
0f9a11a9
...
...
@@ -523,7 +523,7 @@ SUBDIRS = $(STDDIRS) \
$(IPLANDIRS) $(ILBMDIR) \
$(DDXDIRS) $(FBSUBDIR) $(KDRIVEDIRS) $(MIEXTDIRS)
#if defined(ServerToInstall)
&& !defined(OS2Architecture)
#if defined(ServerToInstall)
install::
-(cd $(DESTDIR)$(BINDIR); $(RM) X; $(LN) ServerToInstall X)
#endif
...
...
nx-X11/programs/Xserver/Xext/security.c
View file @
0f9a11a9
...
...
@@ -1481,11 +1481,7 @@ SecurityFreePropertyAccessList(void)
}
}
/* SecurityFreePropertyAccessList */
#ifndef __UNIXOS2__
#define SecurityIsWhitespace(c) ( (c == ' ') || (c == '\t') || (c == '\n') )
#else
#define SecurityIsWhitespace(c) ( (c == ' ') || (c == '\t') || (c == '\n') || (c == '\r') )
#endif
static
char
*
SecuritySkipWhitespace
(
...
...
@@ -1774,8 +1770,6 @@ SecurityLoadPropertyAccessList(void)
#endif
#ifndef __UNIXOS2__
#ifdef NXAGENT_SERVER
f
=
Fopen
(
_NXGetPolicyFilePath
(
SecurityPolicyFile
),
"r"
);
...
...
@@ -1786,20 +1780,6 @@ SecurityLoadPropertyAccessList(void)
#endif
#else
#ifdef NXAGENT_SERVER
f
=
Fopen
((
char
*
)
__XOS2RedirRoot
(
_NXGetPolicyFilePath
(
SecurityPolicyFile
)),
"r"
);
#else
f
=
Fopen
((
char
*
)
__XOS2RedirRoot
(
SecurityPolicyFile
),
"r"
);
#endif
#endif
if
(
!
f
)
{
#ifdef NXAGENT_SERVER
...
...
nx-X11/programs/Xserver/hw/nxagent/Imakefile
View file @
0f9a11a9
...
...
@@ -6,11 +6,6 @@ NULL =
SUBDIRS = compext \
$(NULL)
#ifdef OS2Architecture
SRCS1 = os2Stub.c
OBJS1 = os2Stub.o
#endif
SRCS = \
NXwindow.c \
NXevents.c \
...
...
@@ -71,7 +66,6 @@ SRCS = \
stubs.c \
xpstubs.c \
miinitext.c \
$(SRCS1) \
$(NULL)
OBJS = \
...
...
@@ -134,7 +128,6 @@ OBJS = \
stubs.o \
xpstubs.o \
miinitext.o \
$(OBJS1) \
$(NULL)
VFBINCLUDES = \
...
...
nx-X11/programs/Xserver/hw/nxagent/os2Stub.c
deleted
100644 → 0
View file @
f22e873e
/**************************************************************************/
/* */
/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */
/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */
/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
/* */
/* NXAGENT, NX protocol compression and NX extensions to this software */
/* are copyright of the aforementioned persons and companies. */
/* */
/* Redistribution and use of the present software is allowed according */
/* to terms specified in the file LICENSE which comes in the source */
/* distribution. */
/* */
/* All rights reserved. */
/* */
/* NOTE: This software has received contributions from various other */
/* contributors, only the core maintainers and supporters are listed as */
/* copyright holders. Please contact us, if you feel you should be listed */
/* as copyright holder, as well. */
/* */
/**************************************************************************/
/*
* (c) Copyright 1996 by Sebastien Marineau
* <marineau@genie.uottawa.ca>
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* HOLGER VEIT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Except as contained in this notice, the name of Sebastien Marineau shall not be
* used in advertising or otherwise to promote the sale, use or other dealings
* in this Software without prior written authorization from Sebastien Marineau.
*
*/
/* This below implements select() for calls in nxagent. It has been */
/* somewhat optimized for improved performance, but assumes a few */
/* things so it cannot be used as a general select. */
#define I_NEED_OS2_H
#include "Xpoll.h"
#include <stdio.h>
#include <sys/select.h>
#include <sys/errno.h>
#include <sys/time.h>
#define INCL_DOSSEMAPHORES
#define INCL_DOSNPIPES
#define INCL_DOSMISC
#define INCL_DOSMODULEMGR
#undef BOOL
#undef BYTE
#include <os2.h>
HEV
hPipeSem
;
HMODULE
hmod_so32dll
;
static
int
(
*
os2_tcp_select
)(
int
*
,
int
,
int
,
int
,
long
);
ULONG
os2_get_sys_millis
();
extern
int
_files
[];
#define MAX_TCP 256
/* These lifted from sys/emx.h. Change if that changes there! */
#define F_SOCKET 0x10000000
#define F_PIPE 0x20000000
struct
select_data
{
fd_set
read_copy
;
fd_set
write_copy
;
BOOL
have_read
;
BOOL
have_write
;
int
tcp_select_mask
[
MAX_TCP
];
int
tcp_emx_handles
[
MAX_TCP
];
int
tcp_select_copy
[
MAX_TCP
];
int
socket_nread
;
int
socket_nwrite
;
int
socket_ntotal
;
int
pipe_ntotal
;
int
pipe_have_write
;
int
max_fds
;
};
int
os2PseudoSelect
(
int
nfds
,
fd_set
*
readfds
,
fd_set
*
writefds
,
fd_set
*
exceptfds
,
struct
timeval
*
timeout
)
{
static
BOOL
FirstTime
=
TRUE
;
static
haveTCPIP
=
TRUE
;
ULONG
timeout_ms
;
ULONG
postCount
,
start_millis
,
now_millis
;
char
faildata
[
16
];
struct
select_data
sd
;
BOOL
any_ready
;
int
np
,
ns
,
i
,
ready_handles
,
n
;
APIRET
rc
;
sd
.
have_read
=
FALSE
;
sd
.
have_write
=
FALSE
;
sd
.
socket_nread
=
0
;
sd
.
socket_nwrite
=
0
;
sd
.
socket_ntotal
=
0
;
sd
.
max_fds
=
31
;
ready_handles
=
0
;
any_ready
=
FALSE
;
sd
.
pipe_ntotal
=
0
;
sd
.
pipe_have_write
=
FALSE
;
if
(
FirstTime
){
/* First load the so32dll.dll module and get a pointer to the SELECT function */
if
((
rc
=
DosLoadModule
(
faildata
,
sizeof
(
faildata
),
"SO32DLL"
,
&
hmod_so32dll
))
!=
0
){
fprintf
(
stderr
,
"Could not load module so32dll.dll, rc = %d. Error note %s
\n
"
,
rc
,
faildata
);
haveTCPIP
=
FALSE
;
}
if
((
rc
=
DosQueryProcAddr
(
hmod_so32dll
,
0
,
"SELECT"
,
(
PPFN
)
&
os2_tcp_select
))
!=
0
){
fprintf
(
stderr
,
"Could not query address of SELECT, rc = %d.
\n
"
,
rc
);
haveTCPIP
=
FALSE
;
}
/* Call these a first time to set the semaphore */
/* rc = DosCreateEventSem(NULL, &hPipeSem, DC_SEM_SHARED, FALSE);
if(rc) {
fprintf(stderr, "Could not create event semaphore, rc=%d\n",rc);
return(-1);
}
rc = DosResetEventSem(hPipeSem, &postCount); */
/* Done in xtrans code for servers*/
fprintf
(
stderr
,
"Client select() done first-time stuff, sem handle %d.
\n
"
,
hPipeSem
);
FirstTime
=
FALSE
;
}
/* Set up the time delay structs */
if
(
timeout
!=
NULL
)
{
timeout_ms
=
timeout
->
tv_sec
*
1000
+
timeout
->
tv_usec
/
1000
;
}
else
{
timeout_ms
=
1000000
;
}
/* This should be large enough... */
if
(
timeout_ms
>
0
)
start_millis
=
os2_get_sys_millis
();
/* Copy the masks */
{
FD_ZERO
(
&
sd
.
read_copy
);}
{
FD_ZERO
(
&
sd
.
write_copy
);}
if
(
readfds
!=
NULL
){
XFD_COPYSET
(
readfds
,
&
sd
.
read_copy
);
sd
.
have_read
=
TRUE
;}
if
(
writefds
!=
NULL
)
{
XFD_COPYSET
(
writefds
,
&
sd
.
write_copy
);
sd
.
have_write
=
TRUE
;}
/* And zero the original masks */
if
(
sd
.
have_read
){
FD_ZERO
(
readfds
);}
if
(
sd
.
have_write
)
{
FD_ZERO
(
writefds
);}
if
(
exceptfds
!=
NULL
)
{
FD_ZERO
(
exceptfds
);}
/* Now we parse the fd_sets passed to select and separate pipe/sockets */
n
=
os2_parse_select
(
&
sd
,
nfds
);
if
(
n
==
-
1
)
{
errno
=
EBADF
;
return
(
-
1
);
}
/* Now we have three cases: either we have sockets, pipes, or both */
/* We handle all three cases differently to optimize things */
/* Case 1: only pipes! */
if
((
sd
.
pipe_ntotal
>
0
)
&&
(
!
sd
.
socket_ntotal
)){
np
=
os2_check_pipes
(
&
sd
,
readfds
,
writefds
);
if
(
np
>
0
){
return
(
np
);
}
else
if
(
np
==
-
1
)
{
return
(
-
1
);
}
while
(
!
any_ready
){
rc
=
DosWaitEventSem
(
hPipeSem
,
timeout_ms
);
/* if(rc) fprintf(stderr,"Sem-wait timeout, rc = %d\n",rc); */
if
(
rc
==
640
)
{
return
(
0
);
}
if
((
rc
!=
0
)
&&
(
rc
!=
95
))
{
errno
=
EBADF
;
return
(
-
1
);}
np
=
os2_check_pipes
(
&
sd
,
readfds
,
writefds
);
if
(
np
>
0
){
return
(
np
);
}
else
if
(
np
<
0
){
return
(
-
1
);
}
}
}
/* Case 2: only sockets. Just let the os/2 tcp select do the work */
if
((
sd
.
socket_ntotal
>
0
)
&&
(
!
sd
.
pipe_ntotal
)){
ns
=
os2_check_sockets
(
&
sd
,
readfds
,
writefds
,
timeout_ms
);
return
(
ns
);
}
/* Case 3: combination of both */
if
((
sd
.
socket_ntotal
>
0
)
&&
(
sd
.
pipe_ntotal
)){
np
=
os2_check_pipes
(
&
sd
,
readfds
,
writefds
);
if
(
np
>
0
){
any_ready
=
TRUE
;
ready_handles
+=
np
;
}
else
if
(
np
==
-
1
)
{
return
(
-
1
);
}
ns
=
os2_check_sockets
(
&
sd
,
readfds
,
writefds
,
0
);
if
(
ns
>
0
){
ready_handles
+=
ns
;
any_ready
=
TRUE
;
}
else
if
(
ns
==
-
1
)
{
return
(
-
1
);}
while
(
!
any_ready
&&
timeout_ms
){
rc
=
DosWaitEventSem
(
hPipeSem
,
10L
);
if
(
rc
==
0
){
np
=
os2_check_pipes
(
&
sd
,
readfds
,
writefds
);
if
(
np
>
0
){
ready_handles
+=
np
;
any_ready
=
TRUE
;
}
else
if
(
np
==
-
1
)
{
return
(
-
1
);
}
}
ns
=
os2_check_sockets
(
&
sd
,
readfds
,
writefds
,
exceptfds
,
0
);
if
(
ns
>
0
){
ready_handles
+=
ns
;
any_ready
=
TRUE
;
}
else
if
(
ns
==
-
1
)
{
return
(
-
1
);}
if
(
i
%
8
==
0
)
{
now_millis
=
os2_get_sys_millis
();
if
((
now_millis
-
start_millis
)
>
timeout_ms
)
timeout_ms
=
0
;
}
i
++
;
}
}
return
(
ready_handles
);
}
ULONG
os2_get_sys_millis
()
{
APIRET
rc
;
ULONG
milli
;
rc
=
DosQuerySysInfo
(
14
,
14
,
&
milli
,
sizeof
(
milli
));
if
(
rc
)
{
fprintf
(
stderr
,
"Bad return code querying the millisecond counter! rc=%d
\n
"
,
rc
);
return
(
0
);
}
return
(
milli
);
}
int
os2_parse_select
(
sd
,
nfds
)
struct
select_data
*
sd
;
int
nfds
;
{
int
i
;
APIRET
rc
;
/* First we determine up to which descriptor we need to check. */
/* No need to check up to 256 if we don't have to (and usually we dont...)*/
/* Note: stuff here is hardcoded for fd_sets which are int[8] as in EMX! */
if
(
nfds
>
sd
->
max_fds
){
for
(
i
=
0
;
i
<
((
FD_SETSIZE
+
31
)
/
32
);
i
++
){
if
(
sd
->
read_copy
.
fds_bits
[
i
]
||
sd
->
write_copy
.
fds_bits
[
i
])
sd
->
max_fds
=
(
i
*
32
)
+
32
;
}
}
else
{
sd
->
max_fds
=
nfds
;
}
/* Check if result is greater than specified in select() call */
if
(
sd
->
max_fds
>
nfds
)
sd
->
max_fds
=
nfds
;
if
(
sd
->
have_read
)
{
for
(
i
=
0
;
i
<
sd
->
max_fds
;
++
i
)
{
if
(
FD_ISSET
(
i
,
&
sd
->
read_copy
)){
if
(
_files
[
i
]
&
F_SOCKET
)
{
sd
->
tcp_select_mask
[
sd
->
socket_ntotal
]
=
_getsockhandle
(
i
);
sd
->
tcp_emx_handles
[
sd
->
socket_ntotal
]
=
i
;
sd
->
socket_ntotal
++
;
sd
->
socket_nread
++
;
}
else
if
(
_files
[
i
]
&
F_PIPE
)
{
sd
->
pipe_ntotal
++
;
/* rc = DosSetNPipeSem((HPIPE)i, (HSEM) hPipeSem, i);
if(rc) { fprintf(stderr,"Error SETNPIPE rc = %d\n",rc); return -1;} */
}
}
}
}
if
(
sd
->
have_write
)
{
for
(
i
=
0
;
i
<
sd
->
max_fds
;
++
i
)
{
if
(
FD_ISSET
(
i
,
&
sd
->
write_copy
)){
if
(
_files
[
i
]
&
F_SOCKET
)
{
sd
->
tcp_select_mask
[
sd
->
socket_ntotal
]
=
_getsockhandle
(
i
);
sd
->
tcp_emx_handles
[
sd
->
socket_ntotal
]
=
i
;
sd
->
socket_ntotal
++
;
sd
->
socket_nwrite
++
;
}
else
if
(
_files
[
i
]
&
F_PIPE
)
{
sd
->
pipe_ntotal
++
;
/* rc = DosSetNPipeSem((HPIPE)i, (HSEM) hPipeSem, i);
if(rc) { fprintf(stderr,"Error SETNPIPE rc = %d\n",rc); return -1;} */
sd
->
pipe_have_write
=
TRUE
;
}
}
}
}
return
(
sd
->
socket_ntotal
);
}
int
os2_check_sockets
(
sd
,
readfds
,
writefds
)
struct
select_data
*
sd
;
fd_set
*
readfds
,
*
writefds
;
{
int
e
,
i
;
int
j
,
n
;
memcpy
(
sd
->
tcp_select_copy
,
sd
->
tcp_select_mask
,
sd
->
socket_ntotal
*
sizeof
(
int
));
e
=
os2_tcp_select
(
sd
->
tcp_select_copy
,
sd
->
socket_nread
,
sd
->
socket_nwrite
,
0
,
0
);
if
(
e
==
0
)
return
(
e
);
/* We have something ready? */
if
(
e
>
0
){
j
=
0
;
n
=
0
;
for
(
i
=
0
;
i
<
sd
->
socket_nread
;
++
i
,
++
j
)
if
(
sd
->
tcp_select_copy
[
j
]
!=
-
1
)
{
FD_SET
(
sd
->
tcp_emx_handles
[
j
],
readfds
);
n
++
;
}
for
(
i
=
0
;
i
<
sd
->
socket_nwrite
;
++
i
,
++
j
)
if
(
sd
->
tcp_select_copy
[
j
]
!=
-
1
)
{
FD_SET
(
sd
->
tcp_emx_handles
[
j
],
writefds
);
n
++
;
}
errno
=
0
;
return
n
;
}
if
(
e
<
0
){
/*Error -- TODO. EBADF is a good choice for now. */
fprintf
(
stderr
,
"Error in server select! e=%d
\n
"
,
e
);
errno
=
EBADF
;
return
(
-
1
);
}
}
/* Check to see if anything is ready on pipes */
int
os2_check_pipes
(
sd
,
readfds
,
writefds
)
struct
select_data
*
sd
;
fd_set
*
readfds
,
*
writefds
;
{
int
i
,
e
;
ULONG
ulPostCount
;
PIPESEMSTATE
pipeSemState
[
128
];
APIRET
rc
;
e
=
0
;
rc
=
DosResetEventSem
(
hPipeSem
,
&
ulPostCount
);
rc
=
DosQueryNPipeSemState
((
HSEM
)
hPipeSem
,
(
PPIPESEMSTATE
)
&
pipeSemState
,
sizeof
(
pipeSemState
));
if
(
rc
)
fprintf
(
stderr
,
"SELECT: rc from QueryNPipeSem: %d
\n
"
,
rc
);
i
=
0
;
while
(
pipeSemState
[
i
].
fStatus
!=
0
)
{
/*fprintf(stderr,"SELECT: sem entry, stat=%d, flag=%d, key=%d,avail=%d\n",
pipeSemState[i].fStatus,pipeSemState[i].fFlag,pipeSemState[i].usKey,
pipeSemState[i].usAvail); */
if
((
pipeSemState
[
i
].
fStatus
==
1
)
&&
(
FD_ISSET
(
pipeSemState
[
i
].
usKey
,
&
sd
->
read_copy
))){
FD_SET
(
pipeSemState
[
i
].
usKey
,
readfds
);
e
++
;
}
else
if
((
pipeSemState
[
i
].
fStatus
==
2
)
&&
(
FD_ISSET
(
pipeSemState
[
i
].
usKey
,
&
sd
->
write_copy
))){
FD_SET
(
pipeSemState
[
i
].
usKey
,
writefds
);
e
++
;
}
else
if
(
(
pipeSemState
[
i
].
fStatus
==
3
)
&&
(
(
FD_ISSET
(
pipeSemState
[
i
].
usKey
,
&
sd
->
read_copy
))
||
(
FD_ISSET
(
pipeSemState
[
i
].
usKey
,
&
sd
->
write_copy
))
)){
errno
=
EBADF
;
/* fprintf(stderr,"Pipe has closed down, fd=%d\n",pipeSemState[i].usKey); */
return
(
-
1
);
}
i
++
;
}
/* endwhile */
/*fprintf(stderr,"Done listing pipe sem entries, total %d entries, total ready entries %d\n"i,e);*/
errno
=
0
;
return
(
e
);
}
nx-X11/programs/Xserver/include/os.h
View file @
0f9a11a9
...
...
@@ -263,7 +263,7 @@ void OsBlockSignals (void);
void
OsReleaseSignals
(
void
);
#if !defined(WIN32)
&& !defined(__UNIXOS2__)
#if !defined(WIN32)
extern
int
System
(
char
*
);
extern
void
*
Popen
(
char
*
,
char
*
);
extern
int
Pclose
(
void
*
);
...
...
nx-X11/programs/Xserver/include/servermd.h
View file @
0f9a11a9
...
...
@@ -327,8 +327,6 @@ SOFTWARE.
#if (defined(SVR4) && defined(i386)) || \
defined(__alpha__) || defined(__alpha) || \
defined(__i386__) || defined(__i386) || \
defined(__UNIXOS2__) || \
defined(__OS2ELF__) || \
defined(__QNX__) || \
defined(__s390x__) || defined(__s390__)
...
...
nx-X11/programs/Xserver/os/WaitFor.c
View file @
0f9a11a9
...
...
@@ -91,9 +91,6 @@ SOFTWARE.
#include <nx-X11/X.h>
#include "misc.h"
#ifdef __UNIXOS2__
#define select(n,r,w,x,t) os2PseudoSelect(n,r,w,x,t)
#endif
#include "osdep.h"
#include <nx-X11/Xpoll.h>
#include "dixstruct.h"
...
...
nx-X11/programs/Xserver/os/access.c
View file @
0f9a11a9
...
...
@@ -1139,9 +1139,6 @@ ResetHosts (char *display)
if
(
fnamelen
>
sizeof
(
fname
))
FatalError
(
"Display name `%s' is too long
\n
"
,
display
);
sprintf
(
fname
,
ETC_HOST_PREFIX
"%s"
ETC_HOST_SUFFIX
,
display
);
#ifdef __UNIXOS2__
strcpy
(
fname
,
(
char
*
)
__XOS2RedirRoot
(
fname
));
#endif
/* __UNIXOS2__ */
if
((
fd
=
fopen
(
fname
,
"r"
))
!=
0
)
{
...
...
@@ -1152,10 +1149,6 @@ ResetHosts (char *display)
continue
;
if
((
ptr
=
strchr
(
ohostname
,
'\n'
))
!=
0
)
*
ptr
=
0
;
#ifdef __UNIXOS2__
if
((
ptr
=
strchr
(
ohostname
,
'\r'
))
!=
0
)
*
ptr
=
0
;
#endif
hostlen
=
strlen
(
ohostname
)
+
1
;
for
(
i
=
0
;
i
<
hostlen
;
i
++
)
lhostname
[
i
]
=
tolower
(
ohostname
[
i
]);
...
...
nx-X11/programs/Xserver/os/connection.c
View file @
0f9a11a9
...
...
@@ -107,11 +107,6 @@ SOFTWARE.
#include <sys/ioctl.h>
#endif
#ifdef __UNIXOS2__
#define select(n,r,w,x,t) os2PseudoSelect(n,r,w,x,t)
extern
__const__
int
_nfiles
;
#endif
#if defined(TCPCONN)
# include <netinet/in.h>
# include <arpa/inet.h>
...
...
@@ -124,21 +119,17 @@ extern __const__ int _nfiles;
# ifdef CSRG_BASED
# include <sys/param.h>
# endif
# ifndef __UNIXOS2__
# include <netinet/tcp.h>
# endif
# include <netinet/tcp.h>
# endif
# endif
# include <arpa/inet.h>
#endif
#if !defined(__UNIXOS2__)
#ifndef Lynx
#include <sys/uio.h>
#else
#include <uio.h>
#endif
#endif
#endif
/* WIN32 */
#include "misc.h"
#include "osdep.h"
...
...
@@ -173,9 +164,6 @@ Bool AnyClientsWriteBlocked; /* true if some client blocked on write */
Bool
RunFromSmartParent
;
/* send SIGUSR1 to parent process */
Bool
PartialNetwork
;
/* continue even if unable to bind all addrs */
static
Pid_t
ParentProcess
;
#ifdef __UNIXOS2__
Pid_t
GetPPID
(
Pid_t
pid
);
#endif
static
Bool
debug_conns
=
FALSE
;
...
...
@@ -314,8 +302,6 @@ InitConnectionLimits(void)
#ifndef __CYGWIN__
#ifndef __UNIXOS2__
#if !defined(XNO_SYSCONF) && defined(_SC_OPEN_MAX)
lastfdesc
=
sysconf
(
_SC_OPEN_MAX
)
-
1
;
#endif
...
...
@@ -330,10 +316,6 @@ InitConnectionLimits(void)
lastfdesc
=
_NFILE
-
1
;
#endif
#else
/* __UNIXOS2__ */
lastfdesc
=
_nfiles
-
1
;
#endif
#endif
/* __CYGWIN__ */
/* This is the fallback */
...
...
@@ -449,15 +431,6 @@ CreateWellKnownSockets(void)
RunFromSmartParent
=
TRUE
;
OsSignal
(
SIGUSR1
,
handler
);
ParentProcess
=
getppid
();
#ifdef __UNIXOS2__
/*
* fg030505: under OS/2, xinit is not the parent process but
* the "grant parent" process of the server because execvpe()
* presents us an additional process number;
* GetPPID(pid) is part of libemxfix
*/
ParentProcess
=
GetPPID
(
ParentProcess
);
#endif
/* __UNIXOS2__ */
if
(
RunFromSmartParent
)
{
if
(
ParentProcess
>
1
)
{
kill
(
ParentProcess
,
SIGUSR1
);
...
...
nx-X11/programs/Xserver/os/io.c
View file @
0f9a11a9
...
...
@@ -70,7 +70,7 @@ SOFTWARE.
#include <nx-X11/Xtrans/Xtrans.h>
#include <nx-X11/Xmd.h>
#include <errno.h>
#if !defined(
__UNIXOS2__) && !defined(
WIN32)
#if !defined(WIN32)
#ifndef Lynx
#include <sys/uio.h>
#else
...
...
@@ -92,7 +92,6 @@ CallbackListPtr FlushCallback;
/* check for both EAGAIN and EWOULDBLOCK, because some supposedly POSIX
* systems are broken and return EWOULDBLOCK when they should return EAGAIN
*/
#ifndef __UNIXOS2__
#ifndef WIN32
#if defined(EAGAIN) && defined(EWOULDBLOCK)
#define ETEST(err) (err == EAGAIN || err == EWOULDBLOCK)
...
...
@@ -106,9 +105,6 @@ CallbackListPtr FlushCallback;
#else
/* WIN32 The socket errorcodes differ from the normal errors*/
#define ETEST(err) (err == EAGAIN || err == WSAEWOULDBLOCK)
#endif
#else
/* __UNIXOS2__ Writing to full pipes may return ENOSPC */
#define ETEST(err) (err == EAGAIN || err == EWOULDBLOCK || err == ENOSPC)
#endif
Bool
CriticalOutputPending
;
int
timesThisConnection
=
0
;
...
...
nx-X11/programs/Xserver/os/log.c
View file @
0f9a11a9
...
...
@@ -214,9 +214,6 @@ LogInit(const char *fname, const char *backup)
sprintf
(
suffix
,
backup
,
display
);
sprintf
(
oldLog
,
"%s%s"
,
logFileName
,
suffix
);
free
(
suffix
);
#ifdef __UNIXOS2__
remove
(
oldLog
);
#endif
if
(
rename
(
logFileName
,
oldLog
)
==
-
1
)
{
FatalError
(
"Cannot move old log file (
\"
%s
\"
to
\"
%s
\"\n
"
,
logFileName
,
oldLog
);
...
...
nx-X11/programs/Xserver/os/oscolor.c
View file @
0f9a11a9
...
...
@@ -397,7 +397,6 @@ OsInitColors(void)
if
(
!
was_here
)
{
#ifndef __UNIXOS2__
#ifdef NX_TRANS_SOCKET
/*
* Add the trailing '.txt' if a
...
...
@@ -418,12 +417,6 @@ OsInitColors(void)
strcpy
(
path
,
rgbPath
);
strcat
(
path
,
".txt"
);
#endif
#else
char
*
tmp
=
(
char
*
)
__XOS2RedirRoot
(
rgbPath
);
path
=
(
char
*
)
ALLOCATE_LOCAL
(
strlen
(
tmp
)
+
5
);
strcpy
(
path
,
tmp
);
strcat
(
path
,
".txt"
);
#endif
if
(
!
(
rgb
=
fopen
(
path
,
"r"
)))
{
#ifdef NX_TRANS_SOCKET
...
...
@@ -438,11 +431,7 @@ OsInitColors(void)
while
(
fgets
(
line
,
sizeof
(
line
),
rgb
))
{
lineno
++
;
#ifndef __UNIXOS2__
if
(
sscanf
(
line
,
"%d %d %d %[^
\n
]
\n
"
,
&
red
,
&
green
,
&
blue
,
name
)
==
4
)
#else
if
(
sscanf
(
line
,
"%d %d %d %[^
\n\r
]
\n
"
,
&
red
,
&
green
,
&
blue
,
name
)
==
4
)
#endif
{
if
(
red
>=
0
&&
red
<=
0xff
&&
green
>=
0
&&
green
<=
0xff
&&
...
...
nx-X11/programs/Xserver/os/osdep.h
View file @
0f9a11a9
...
...
@@ -91,7 +91,7 @@ SOFTWARE.
#if defined(NOFILE) && !defined(NOFILES_MAX)
#define OPEN_MAX NOFILE
#else
#if !defined(
__UNIXOS2__) && !defined(
WIN32)
#if !defined(WIN32)
#define OPEN_MAX NOFILES_MAX
#else
#define OPEN_MAX 256
...
...
nx-X11/programs/Xserver/os/osinit.c
View file @
0f9a11a9
...
...
@@ -133,7 +133,7 @@ OsInit(void)
dup2
(
fileno
(
err
),
2
);
fclose
(
err
);
}
#if defined(SYSV) || defined(SVR4) || defined(
__UNIXOS2__) || defined(
WIN32) || defined(__CYGWIN__)
#if defined(SYSV) || defined(SVR4) || defined(WIN32) || defined(__CYGWIN__)
{
static
char
buf
[
BUFSIZ
];
setvbuf
(
stderr
,
buf
,
_IOLBF
,
BUFSIZ
);
...
...
nx-X11/programs/Xserver/os/utils.c
View file @
0f9a11a9
...
...
@@ -318,9 +318,7 @@ OsSignal(sig, handler)
* server at a time. This keeps the servers from stomping on each other
* if the user forgets to give them different display numbers.
*/
#ifndef __UNIXOS2__
#define LOCK_DIR "/tmp"
#endif
#define LOCK_TMP_PREFIX "/.tX"
#define LOCK_PREFIX "/.X"
#define LOCK_SUFFIX "-lock"
...
...
@@ -330,10 +328,6 @@ OsSignal(sig, handler)
#include <sys/param.h>
#endif
#ifdef __UNIXOS2__
#define link rename
#endif
#ifndef PATH_MAX
#ifndef Lynx
#include <sys/param.h>
...
...
@@ -372,14 +366,7 @@ LockServer(void)
/*
* Path names
*/
#ifndef __UNIXOS2__
tmppath
=
LOCK_DIR
;
#else
/* OS/2 uses TMP directory, must also prepare for 8.3 names */
tmppath
=
getenv
(
"TMP"
);
if
(
!
tmppath
)
FatalError
(
"No TMP dir found
\n
"
);
#endif
sprintf
(
port
,
"%d"
,
atoi
(
display
));
len
=
strlen
(
LOCK_PREFIX
)
>
strlen
(
LOCK_TMP_PREFIX
)
?
strlen
(
LOCK_PREFIX
)
:
...
...
@@ -422,13 +409,11 @@ LockServer(void)
if
(
write
(
lfd
,
pid_str
,
11
)
!=
11
)
FatalError
(
"Could not write pid to lock file in %s
\n
"
,
tmp
);
#ifndef __UNIXOS2__
#ifndef USE_CHMOD
(
void
)
fchmod
(
lfd
,
0444
);
#else
(
void
)
chmod
(
tmp
,
0444
);
#endif
#endif
(
void
)
close
(
lfd
);
/*
...
...
@@ -507,9 +492,6 @@ UnlockServer(void)
if
(
!
StillLocking
){
#ifdef __UNIXOS2__
(
void
)
chmod
(
LockFile
,
S_IREAD
|
S_IWRITE
);
#endif
/* __UNIXOS2__ */
(
void
)
unlink
(
LockFile
);
}
}
...
...
@@ -928,7 +910,7 @@ ProcessCommandLine(int argc, char *argv[])
#ifdef SERVER_LOCK
else
if
(
strcmp
(
argv
[
i
],
"-nolock"
)
==
0
)
{
#if !defined(WIN32) && !defined(__
UNIXOS2__) && !defined(__
CYGWIN__)
#if !defined(WIN32) && !defined(__CYGWIN__)
if
(
getuid
()
!=
0
)
ErrorF
(
"Warning: the -nolock option can only be used by root
\n
"
);
else
...
...
@@ -1260,7 +1242,7 @@ ExpandCommandLine(int *pargc, char ***pargv)
{
int
i
;
#if !defined(WIN32) && !defined(__
UNIXOS2__) && !defined(__
CYGWIN__)
#if !defined(WIN32) && !defined(__CYGWIN__)
if
(
getuid
()
!=
geteuid
())
return
;
#endif
...
...
@@ -1609,7 +1591,7 @@ OsReleaseSignals (void)
#endif
}
#if !defined(WIN32)
&& !defined(__UNIXOS2__)
#if !defined(WIN32)
/*
* "safer" versions of system(3), popen(3) and pclose(3) which give up
* all privs before running a command.
...
...
@@ -1964,7 +1946,7 @@ Fclose(void * iop)
#endif
}
#endif
/* !WIN32
&& !__UNIXOS2__
*/
#endif
/* !WIN32 */
/*
...
...
nx-X11/programs/Xserver/xkb/ddxConfig.c
View file @
0f9a11a9
...
...
@@ -128,9 +128,6 @@ XkbConfigRtrnPtr rtrn;
sprintf
(
buf
,
"X%s-config%s%s"
,
display
,(
dName
[
0
]
?
"."
:
""
),
dName
);
}
#endif
#ifdef __UNIXOS2__
strcpy
(
buf
,(
char
*
)
__XOS2RedirRoot
(
buf
));
#endif
#ifdef DEBUG
ErrorF
(
"Looking for keyboard configuration in %s..."
,
buf
);
#endif
...
...
nx-X11/programs/Xserver/xkb/ddxLoad.c
View file @
0f9a11a9
...
...
@@ -82,7 +82,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define POST_ERROR_MSG1 "\"Errors from xkbcomp are not fatal to the X server\""
#define POST_ERROR_MSG2 "\"End of messages from xkbcomp\""
#if defined(
__UNIXOS2__) || defined(
WIN32)
#if defined(WIN32)
#define PATHSEPARATOR "\\"
#else
#define PATHSEPARATOR "/"
...
...
@@ -558,8 +558,6 @@ char *cmd = NULL,file[PATH_MAX],xkm_output_dir[PATH_MAX],*map,*outFile;
#endif
#ifndef __UNIXOS2__
#ifdef NXAGENT_SERVER
char
*
xkbbasedir
=
_NXGetXkbBasePath
(
XkbBaseDirectory
);
char
*
xkbbindir
=
_NXGetXkbCompPath
(
XkbBinDirectory
);
...
...
@@ -568,23 +566,6 @@ char *cmd = NULL,file[PATH_MAX],xkm_output_dir[PATH_MAX],*map,*outFile;
char
*
xkbbindir
=
XkbBinDirectory
;
#endif
#else
/* relocate the basedir and replace the slashes with backslashes */
#ifdef NXAGENT_SERVER
char
*
xkbbasedir
=
(
char
*
)
__XOS2RedirRoot
(
_NXGetXkbBasePath
(
XkbBaseDirectory
));
char
*
xkbbindir
=
(
char
*
)
__XOS2RedirRoot
(
_NXGetXkbCompPath
(
XkbBinDirectory
));
#else
char
*
xkbbasedir
=
(
char
*
)
__XOS2RedirRoot
(
XkbBaseDirectory
);
char
*
xkbbindir
=
(
char
*
)
__XOS2RedirRoot
(
XkbBinDirectory
);
#endif
int
i
;
for
(
i
=
0
;
i
<
strlen
(
xkbbasedir
);
i
++
)
if
(
xkbbasedir
[
i
]
==
'/'
)
xkbbasedir
[
i
]
=
'\\'
;
for
(
i
=
0
;
i
<
strlen
(
xkbbindir
);
i
++
)
if
(
xkbbindir
[
i
]
==
'/'
)
xkbbindir
[
i
]
=
'\\'
;
#endif
cmd
=
Xprintf
(
"
\"
%s"
PATHSEPARATOR
"xkbcomp
\"
-w %d
\"
-R%s
\"
-xkm %s%s -em1 %s -emp %s -eml %s keymap/%s
\"
%s%s.xkm
\"
"
,
xkbbindir
,
((
xkbDebugFlags
<
2
)
?
1
:
((
xkbDebugFlags
>
10
)
?
10
:
(
int
)
xkbDebugFlags
)),
...
...
@@ -675,7 +656,6 @@ char tmpname[PATH_MAX];
for xkbcomp. xkbcomp does not read from stdin. */
char
*
xkmfile
=
tmpname
;
#endif
#ifndef __UNIXOS2__
#ifdef NXAGENT_SERVER
char
*
xkbbasedir
=
_NXGetXkbBasePath
(
XkbBaseDirectory
);
char
*
xkbbindir
=
_NXGetXkbCompPath
(
XkbBinDirectory
);
...
...
@@ -683,20 +663,6 @@ char tmpname[PATH_MAX];
char
*
xkbbasedir
=
XkbBaseDirectory
;
char
*
xkbbindir
=
XkbBinDirectory
;
#endif
#else
int
i
;
#ifdef NXAGENT_SERVER
char
*
xkbbasedir
=
(
char
*
)
__XOS2RedirRoot
(
_NXGetXkbBasePath
(
XkbBaseDirectory
));
char
*
xkbbindir
=
(
char
*
)
__XOS2RedirRoot
(
_NXGetXkbCompPath
(
XkbBinDirectory
));
#else
char
*
xkbbasedir
=
(
char
*
)
__XOS2RedirRoot
(
XkbBaseDirectory
);
char
*
xkbbindir
=
(
char
*
)
__XOS2RedirRoot
(
XkbBinDirectory
);
#endif
for
(
i
=
0
;
i
<
strlen
(
xkbbasedir
);
i
++
)
if
(
xkbbasedir
[
i
]
==
'/'
)
xkbbasedir
[
i
]
=
'\\'
;
for
(
i
=
0
;
i
<
strlen
(
xkbbindir
);
i
++
)
if
(
xkbbindir
[
i
]
==
'/'
)
xkbbindir
[
i
]
=
'\\'
;
#endif
buf
=
Xprintf
(
"
\"
%s"
PATHSEPARATOR
"xkbcomp
\"
-w %d
\"
-R%s
\"
-xkm
\"
%s
\"
-em1 %s -emp %s -eml %s
\"
%s%s.xkm
\"
"
,
...
...
nx-X11/programs/Xserver/xkb/xkbInit.c
View file @
0f9a11a9
...
...
@@ -914,7 +914,7 @@ XkbProcessArguments(int argc,char *argv[],int i)
}
else
if
(
strncmp
(
argv
[
i
],
"-xkbdir"
,
7
)
==
0
)
{
if
(
++
i
<
argc
)
{
#if !defined(WIN32) && !defined(__
UNIXOS2__) && !defined(__
CYGWIN__)
#if !defined(WIN32) && !defined(__CYGWIN__)
if
(
getuid
()
!=
geteuid
())
{
LogMessage
(
X_WARNING
,
"-xkbdir is not available for setuid X servers
\n
"
);
return
-
1
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment