SCO port update for SCO OpenServer 5 and UnixWare 7. A few general cleanups and bugs not specifically related to the port fixed along the way.

This commit is contained in:
Kean Johnson 2005-06-10 06:54:02 +00:00
parent 1a0de49da1
commit 0b920c0450
3 changed files with 50 additions and 18 deletions

View file

@ -1,4 +1,4 @@
/* $XdotOrg: lib/X11/include/X11/Xlib.h,v 1.4 2005-05-17 08:10:10 eich Exp $ */
/* $XdotOrg: lib/X11/include/X11/Xlib.h,v 1.3.4.1 2005-06-10 06:54:02 jkj Exp $ */
/* $Xorg: Xlib.h,v 1.6 2001/02/09 02:03:38 xorgcvs Exp $ */
/*
@ -53,7 +53,7 @@ in this Software without prior written authorization from The Open Group.
#endif
#endif /* USG */
#if defined(SCO325) || defined(__USLC__)
#if defined(__SCO__) || defined(__UNIXWARE__)
#include <stdint.h>
#endif
@ -65,13 +65,11 @@ in this Software without prior written authorization from The Open Group.
#ifndef X_WCHAR
#ifdef X_NOT_STDC_ENV
#ifndef SCO324
#ifndef ISC
#define X_WCHAR
#endif
#endif
#endif
#endif
#ifndef X_WCHAR
#include <stddef.h>
@ -3572,12 +3570,12 @@ extern Status XCloseOM(
extern char *XSetOMValues(
XOM /* om */,
...
) _X_SENTINEL(0);
);
extern char *XGetOMValues(
XOM /* om */,
...
) _X_SENTINEL(0);
);
extern Display *XDisplayOfOM(
XOM /* om */
@ -3590,7 +3588,7 @@ extern char *XLocaleOfOM(
extern XOC XCreateOC(
XOM /* om */,
...
) _X_SENTINEL(0);
);
extern void XDestroyOC(
XOC /* oc */
@ -3603,12 +3601,12 @@ extern XOM XOMOfOC(
extern char *XSetOCValues(
XOC /* oc */,
...
) _X_SENTINEL(0);
);
extern char *XGetOCValues(
XOC /* oc */,
...
) _X_SENTINEL(0);
);
extern XFontSet XCreateFontSet(
Display* /* display */,
@ -3840,11 +3838,11 @@ extern Status XCloseIM(
extern char *XGetIMValues(
XIM /* im */, ...
) _X_SENTINEL(0);
);
extern char *XSetIMValues(
XIM /* im */, ...
) _X_SENTINEL(0);
);
extern Display *XDisplayOfIM(
XIM /* im */
@ -3856,7 +3854,7 @@ extern char *XLocaleOfIM(
extern XIC XCreateIC(
XIM /* im */, ...
) _X_SENTINEL(0);
);
extern void XDestroyIC(
XIC /* ic */
@ -3884,11 +3882,11 @@ extern char *Xutf8ResetIC(
extern char *XSetICValues(
XIC /* ic */, ...
) _X_SENTINEL(0);
);
extern char *XGetICValues(
XIC /* ic */, ...
) _X_SENTINEL(0);
);
extern XIM XIMOfIC(
XIC /* ic */
@ -3928,7 +3926,7 @@ extern int Xutf8LookupString(
extern XVaNestedList XVaCreateNestedList(
int /*unused*/, ...
) _X_SENTINEL(0);
);
/* internal connections for IMs */

View file

@ -352,3 +352,20 @@ usldead_asciicircum :100000AA
usldead_asciitilde :100000AC
usldead_cedilla :1000FE2C
usldead_ring :1000FEB0
scodead_grave :FE50
scodead_acute :FE51
scodead_circumflex :FE52
scodead_tilde :FE53
scodead_macron :FE54
scodead_breve :FE55
scodead_abovedot :FE56
scodead_diaeresis :FE57
scodead_abovering :FE58
scodead_doubleacute :FE59
scodead_caron :FE5A
scodead_cedilla :FE5B
scodead_ogonek :FE5C
scodead_iota :FE5D
scodead_voiced_sound :FE5E
scodead_semivoiced_sound :FE5F

View file

@ -32,9 +32,6 @@ in this Software without prior written authorization from The Open Group.
* locking.c - multi-thread locking routines implemented in C Threads
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "Xlibint.h"
#undef _XLockMutex
#undef _XUnlockMutex
@ -43,6 +40,10 @@ in this Software without prior written authorization from The Open Group.
#ifdef XTHREADS
#ifdef __UNIXWARE__
#include <dlfcn.h>
#endif
#include "locking.h"
#ifdef XTHREADS_WARN
#include <stdio.h> /* for warn/debug stuff */
@ -587,11 +588,27 @@ static int _XInitDisplayLock(
return 0;
}
#ifdef __UNIXWARE__
xthread_t __x11_thr_self() { return 0; }
xthread_t (*_x11_thr_self)() = __x11_thr_self;
#endif
Status XInitThreads()
{
if (_Xglobal_lock)
return 1;
#ifdef __UNIXWARE__
else {
void *dl_handle = dlopen(NULL, RTLD_LAZY);
if (!dl_handle ||
((_x11_thr_self = (xthread_t(*)())dlsym(dl_handle,"thr_self")) == 0)) {
_x11_thr_self = __x11_thr_self;
(void) fprintf (stderr,
"XInitThreads called, but no libthread in the calling program!\n" );
}
}
#endif /* __UNIXWARE__ */
#ifdef xthread_init
xthread_init(); /* return value? */
#endif