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
d12f9524
Commit
d12f9524
authored
Nov 15, 2016
by
Mike Gabriel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
drop platform support: unifdef __UNIXOS2__.
Fixes ArcticaProject/nx-libs#271.
parent
86a6a340
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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
86a6a340
/*
* (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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
86a6a340
/**************************************************************************/
/* */
/* 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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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 @
d12f9524
...
...
@@ -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