aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2016-07-01 13:13:48 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2016-07-01 13:13:48 +0200
commit4b3081c4814891c22c6a881dde0c0b3e6ceced1d (patch)
tree0b6ee56508568472a72210d76631920aa194eeb7 /nx-X11/lib
parentb666a3776df04e6d2712b04ab4ca9b582aa3c6cc (diff)
parentf0bf303c8f97c05dc4c2e6479bbf97e2b17d8cab (diff)
downloadnx-libs-4b3081c4814891c22c6a881dde0c0b3e6ceced1d.tar.gz
nx-libs-4b3081c4814891c22c6a881dde0c0b3e6ceced1d.tar.bz2
nx-libs-4b3081c4814891c22c6a881dde0c0b3e6ceced1d.zip
Merge branch 'sunweaver-pr/drop-really-old-X10-API-code' into 3.6.x
Attributes GH PR #148: https://github.com/ArcticaProject/nx-libs/pull/148 Reviewed by Vadim Troshchinskiy <vadim@qindel.com> -- Fri, 01 Jul 2016 03:12:26 -0700
Diffstat (limited to 'nx-X11/lib')
-rw-r--r--nx-X11/lib/Imakefile5
-rw-r--r--nx-X11/lib/oldX/Imakefile45
-rw-r--r--nx-X11/lib/oldX/X10.h89
-rw-r--r--nx-X11/lib/oldX/XCrAssoc.c75
-rw-r--r--nx-X11/lib/oldX/XDelAssoc.c82
-rw-r--r--nx-X11/lib/oldX/XDestAssoc.c67
-rw-r--r--nx-X11/lib/oldX/XDraw.c710
-rw-r--r--nx-X11/lib/oldX/XLookAssoc.c78
-rw-r--r--nx-X11/lib/oldX/XMakeAssoc.c113
-rw-r--r--nx-X11/lib/oldX/oldX-def.cpp11
10 files changed, 0 insertions, 1275 deletions
diff --git a/nx-X11/lib/Imakefile b/nx-X11/lib/Imakefile
index 55ac70a9c..20a18dab1 100644
--- a/nx-X11/lib/Imakefile
+++ b/nx-X11/lib/Imakefile
@@ -27,15 +27,10 @@ X11LIBDIR = X11
XEXTLIBDIR = Xext
#endif
-#if BuildLibraries
-OLDXLIBDIR = oldX
-#endif
-
LINTSUBDIRS = \
$(XAULIBDIR) \
$(X11LIBDIR) \
- $(OLDXLIBDIR) \
$(XEXTLIBDIR) \
$(XKBLIBDIR) \
$(NULL)
diff --git a/nx-X11/lib/oldX/Imakefile b/nx-X11/lib/oldX/Imakefile
deleted file mode 100644
index e2ee75eb0..000000000
--- a/nx-X11/lib/oldX/Imakefile
+++ /dev/null
@@ -1,45 +0,0 @@
-XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:42 cpqbld Exp $
-
-
-
-
-XCOMM $XFree86: xc/lib/oldX/Imakefile,v 1.2 1998/12/20 11:57:19 dawes Exp $
-
-#define DoNormalLib NormalOldX
-#define DoSharedLib SharedOldX
-#define DoExtraLib SharedOldX
-#define DoDebugLib DebugOldX
-#define DoProfileLib ProfileOldX
-#define LibName NX_oldX
-#define SoRev SOOLDXREV
-#define IncSubdir nx-X11
-
-#ifdef SharedOldXReqs
-REQUIREDLIBS = SharedOldXReqs
-#endif
-
-#if Malloc0ReturnsNull
- DEFINES = -DMALLOC_0_RETURNS_NULL
-#endif
- INCLUDES = -I$(XINCLUDESRC) -I$(XLIBSRC)
- SRCS = \
- XDraw.c \
- XCrAssoc.c \
- XDelAssoc.c \
- XDestAssoc.c \
- XLookAssoc.c \
- XMakeAssoc.c
- HEADERS = X10.h
- LINTLIBS =
-
- OBJS = \
- XDraw.o \
- XCrAssoc.o \
- XDelAssoc.o \
- XDestAssoc.o \
- XLookAssoc.o \
- XMakeAssoc.o
-
-#include <Library.tmpl>
-
-DependTarget()
diff --git a/nx-X11/lib/oldX/X10.h b/nx-X11/lib/oldX/X10.h
deleted file mode 100644
index afdb80d6b..000000000
--- a/nx-X11/lib/oldX/X10.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* $Xorg: X10.h,v 1.4 2001/02/09 02:04:05 xorgcvs Exp $ */
-/*
- *
-Copyright 1985, 1986, 1987, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-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 THE
-OPEN GROUP 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 The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- *
- * The X Window System is a Trademark of The Open Group.
- *
- */
-
-
-/*
- * X10.h - Header definition and support file for the C subroutine
- * interface library for V10 support routines.
- */
-#ifndef _X10_H_
-#define _X10_H_
-
-/* Used in XDraw and XDrawFilled */
-
-typedef struct {
- short x, y;
- unsigned short flags;
-} Vertex;
-
-/* The meanings of the flag bits. If the bit is 1 the predicate is true */
-
-#define VertexRelative 0x0001 /* else absolute */
-#define VertexDontDraw 0x0002 /* else draw */
-#define VertexCurved 0x0004 /* else straight */
-#define VertexStartClosed 0x0008 /* else not */
-#define VertexEndClosed 0x0010 /* else not */
-/*#define VertexDrawLastPoint 0x0020 */ /* else don't */
-
-/*
-The VertexDrawLastPoint option has not been implemented in XDraw and
-XDrawFilled so it shouldn't be defined.
-*/
-
-/*
- * XAssoc - Associations used in the XAssocTable data structure. The
- * associations are used as circular queue entries in the association table
- * which is contains an array of circular queues (buckets).
- */
-typedef struct _XAssoc {
- struct _XAssoc *next; /* Next object in this bucket. */
- struct _XAssoc *prev; /* Previous obejct in this bucket. */
- Display *display; /* Display which ownes the id. */
- XID x_id; /* X Window System id. */
- char *data; /* Pointer to untyped memory. */
-} XAssoc;
-
-/*
- * XAssocTable - X Window System id to data structure pointer association
- * table. An XAssocTable is a hash table whose buckets are circular
- * queues of XAssoc's. The XAssocTable is constructed from an array of
- * XAssoc's which are the circular queue headers (bucket headers).
- * An XAssocTable consists an XAssoc pointer that points to the first
- * bucket in the bucket array and an integer that indicates the number
- * of buckets in the array.
- */
-typedef struct {
- XAssoc *buckets; /* Pointer to first bucket in bucket array.*/
- int size; /* Table size (number of buckets). */
-} XAssocTable;
-
-XAssocTable *XCreateAssocTable();
-char *XLookUpAssoc();
-
-#endif /* _X10_H_ */
diff --git a/nx-X11/lib/oldX/XCrAssoc.c b/nx-X11/lib/oldX/XCrAssoc.c
deleted file mode 100644
index d36e95293..000000000
--- a/nx-X11/lib/oldX/XCrAssoc.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* $Xorg: XCrAssoc.c,v 1.4 2001/02/09 02:04:05 xorgcvs Exp $ */
-/*
-
-Copyright 1985, 1998 The Open Group.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-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 THE
-OPEN GROUP 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 The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "X11/Xlibint.h"
-#include "X10.h"
-
-/*
- * XCreateAssocTable - Create an XAssocTable. The size argument should be
- * a power of two for efficiency reasons. Some size suggestions: use 32
- * buckets per 100 objects; a reasonable maximum number of object per
- * buckets is 8. If there is an error creating the XAssocTable, a NULL
- * pointer is returned.
- */
-XAssocTable *XCreateAssocTable(size)
- register int size; /* Desired size of the table. */
-{
- register XAssocTable *table; /* XAssocTable to be initialized. */
- register XAssoc *buckets; /* Pointer to the first bucket in */
- /* the bucket array. */
-
- /* XMalloc the XAssocTable. */
- if ((table = (XAssocTable *)Xmalloc(sizeof(XAssocTable))) == NULL) {
- /* XMalloc call failed! */
- errno = ENOMEM;
- return(NULL);
- }
-
- /* XMalloc the buckets (actually just their headers). */
- buckets = (XAssoc *)Xcalloc((unsigned)size, (unsigned)sizeof(XAssoc));
- if (buckets == NULL) {
- /* XCalloc call failed! */
- errno = ENOMEM;
- return(NULL);
- }
-
- /* Insert table data into the XAssocTable structure. */
- table->buckets = buckets;
- table->size = size;
-
- while (--size >= 0) {
- /* Initialize each bucket. */
- buckets->prev = buckets;
- buckets->next = buckets;
- buckets++;
- }
-
- return(table);
-}
diff --git a/nx-X11/lib/oldX/XDelAssoc.c b/nx-X11/lib/oldX/XDelAssoc.c
deleted file mode 100644
index e7c4b75a8..000000000
--- a/nx-X11/lib/oldX/XDelAssoc.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* $Xorg: XDelAssoc.c,v 1.4 2001/02/09 02:04:05 xorgcvs Exp $ */
-/*
-
-Copyright 1985, 1998 The Open Group.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-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 THE
-OPEN GROUP 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 The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-/* $XFree86: xc/lib/oldX/XDelAssoc.c,v 1.3 2001/01/17 19:43:37 dawes Exp $ */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "X11/Xlibint.h"
-#include "X10.h"
-
-/*
- * XDeleteAssoc - Delete an association in an XAssocTable keyed on
- * an XId. An association may be removed only once. Redundant
- * deletes are meaningless (but cause no problems).
- */
-int
-XDeleteAssoc(dpy, table, x_id)
- register Display *dpy;
- register XAssocTable *table;
- register XID x_id;
-{
- int hash;
- register XAssoc *bucket;
- register XAssoc *Entry;
-
- /* Hash the XId to get the bucket number. */
- hash = x_id & (table->size - 1);
- /* Look up the bucket to get the entries in that bucket. */
- bucket = &table->buckets[hash];
- /* Get the first entry in the bucket. */
- Entry = bucket->next;
-
- /* Scan through the entries in the bucket for the right XId. */
- for (; Entry != bucket; Entry = Entry->next) {
- if (Entry->x_id == x_id) {
- /* We have the right XId. */
- if (Entry->display == dpy) {
- /* We have the right display. */
- /* We have the right entry! */
- /* Remove it from the queue and */
- /* free the entry. */
- Entry->prev->next = Entry->next;
- Entry->next->prev = Entry->prev;
- Xfree((char *)Entry);
- return 0;
- }
- /* Oops, identical XId's on different displays! */
- continue;
- }
- if (Entry->x_id > x_id) {
- /* We have gone past where it should be. */
- /* It is apparently not in the table. */
- return 0;
- }
- }
- /* It is apparently not in the table. */
- return 0;
-}
diff --git a/nx-X11/lib/oldX/XDestAssoc.c b/nx-X11/lib/oldX/XDestAssoc.c
deleted file mode 100644
index 672ac2304..000000000
--- a/nx-X11/lib/oldX/XDestAssoc.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* $Xorg: XDestAssoc.c,v 1.4 2001/02/09 02:04:05 xorgcvs Exp $ */
-/*
-
-Copyright 1985, 1998 The Open Group.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-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 THE
-OPEN GROUP 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 The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-/* $XFree86: xc/lib/oldX/XDestAssoc.c,v 1.3 2001/01/17 19:43:38 dawes Exp $ */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "X11/Xlibint.h"
-#include "X10.h"
-
-/*
- * XDestroyAssocTable - Destroy (free the memory associated with)
- * an XAssocTable.
- */
-int
-XDestroyAssocTable(table)
- register XAssocTable *table;
-{
- register int i;
- register XAssoc *bucket;
- register XAssoc *Entry, *entry_next;
-
- /* Free the buckets. */
- for (i = 0; i < table->size; i++) {
- bucket = &table->buckets[i];
- for (
- Entry = bucket->next;
- Entry != bucket;
- Entry = entry_next
- ) {
- entry_next = Entry->next;
- Xfree((char *)Entry);
- }
- }
-
- /* Free the bucket array. */
- Xfree((char *)table->buckets);
-
- /* Free the table. */
- Xfree((char *)table);
- return 0;
-}
-
diff --git a/nx-X11/lib/oldX/XDraw.c b/nx-X11/lib/oldX/XDraw.c
deleted file mode 100644
index 3eeff3e00..000000000
--- a/nx-X11/lib/oldX/XDraw.c
+++ /dev/null
@@ -1,710 +0,0 @@
-/* $Xorg: XDraw.c,v 1.4 2001/02/09 02:04:05 xorgcvs Exp $ */
-
-/*
-
-Copyright 1987, 1998 The Open Group
-
-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 THE
-OPEN GROUP 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 The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-/* $XFree86: xc/lib/oldX/XDraw.c,v 1.4 2001/07/25 15:04:57 dawes Exp $ */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "X11/Xlibint.h"
-#include "X11/Xlib.h"
-#include "X10.h"
-
-#define OK_RETURN 1
-#define ERR_RETURN 0
-#include <stddef.h>
-
-/*
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-*/
-
-/*
- *
- * Vertices_converter: This internal routine takes a list of Vertices and
- * returns another list of Vertices such that the
- * following is true:
- *
- * (1) No Vertex has the VertexRelative flag on
- * (2) No Vertex has the VertexCurved flag on
- * (3) The first Vertex has the VertexDontDraw flag on
- * (4) The path that the return Vertex list specifies should
- * be drawn on the screen is very close to the path that the
- * Vertex list passed to vertices_converter specified should be
- * drawn. The difference is due solely to the approximation
- * of curved segments in the original Vertex list by many
- * small straight line segments that approximate the curve.
- *
- * Notes:
- *
- * (1) The first Vertex must have the VertexRelative flag
- * turned off. (This is not checked, just assumed)
- * (2) VertexDontDraw is automatically turned on for the first
- * Vertex because drawing to the first Vertex makes no sense.
- * (3) This routine is used only by XDraw & XDrawFilled.
- * (4) A 0 is returned iff no error occurs.
- * (5) The passed Vertex list not changed in any way.
- *
- * Implementation:
- *
- * A routine from the qvss device dependent code library from the
- * X version 10 sources written by DEC was used, abet slightly
- * modified as it provided 99% of the desired functionality.
- *
- */
-
-/*****************************************************************************/
-/* */
-/* WRITTEN BY DARYL F. HAZEL 8509.06 */
-/* */
-/* Modification history: */
-/* */
-/* Carver 8510.23 Fixed first time allocation of the coord buffer */
-/* to allocate max(200, pathcount) amount insted of just */
-/* 200. Potential Xserver crash problem. */
-/* */
-/* Carver 8510.21 Replaced old module by module worked on by Ram Rao and */
-/* Bob Scheifler to get better performace. */
-/* */
-/* Carver 8510.03 Changed the curve line converter to return the coord */
-/* path if a successor point does not exist for curve gen. */
-/* */
-/* Carver 8510.03 Fixed memory loss problem. A coord path is only */
-/* allocated if the current path will not fit in it and */
-/* before the new coord path is allocated the old one is */
-/* freed. */
-/* */
-/* Carver 8509.24 Fixed pointer/integer mismatch {*ppathaddr_new = ...} */
-/* */
-/* Corkum 8509.18 Modify code to intergrate into the draw curve command */
-/* */
-/* Modified by Mark Lillibridge 5/20/87 to make into */
-/* X11 Xlib XDraw() support. */
-/****************************************************************************/
-
-/*
- * Definitions:
- *
- */
-
-typedef short WORD;
-typedef short *WORD_POINTER;
-
-/*
- * Lookup tables, buffers used in the conversion:
- *
- */
-
-
-/*
- * modified path list storage information:
- */
-static Vertex *pathaddr_new = NULL; /*pointer to current modified path list*/
-static int pathlist_bytes = 0; /* size of modified path list in bytes */
-static int pathlist_segs = 0;/* size of modified path list in segments */
-static Vertex *pathaddr_coords = NULL; /*ptr to path list with coordinates */
-static int path_coord_list_bytes = 0; /* size of path list (w/coords) buff */
-static int path_coord_list_segs = 0; /* size of path list (w/coords) buff */
-
-/*
- * THE TABLE OF PSEUDO FLOATING-POINT NUMBERS WHICH MAKE UP THE
- * MULTIPLICATIVE COEFFICIENTS FOR THE CUBIC SPLINE ALGORITHM.
- */
-static unsigned short bntable[] = {
- 0xfc18, 0x7f97, 0x0476, 0xffde,
- 0xf8be, 0x7e5d, 0x0972, 0xff76,
- 0xf5f4, 0x7c56, 0x0eec, 0xfecc,
- 0xf3ba, 0x7988, 0x14da, 0xfde6,
- 0xf20b, 0x75fe, 0x1b2f, 0xfcca,
- 0xf0e2, 0x71c1, 0x21dd, 0xfb81,
- 0xf038, 0x6ce1, 0x28d3, 0xfa16,
- 0xf001, 0x676d, 0x3000, 0xf894,
- 0xf034, 0x6176, 0x3750, 0xf709,
- 0xf0c3, 0x5b0f, 0x3eae, 0xf583,
- 0xf1a1, 0x544b, 0x4605, 0xf410,
- 0xf2c0, 0x4d41, 0x4d41, 0xf2c0,
- 0xf410, 0x4605, 0x544b, 0xf1a1,
- 0xf583, 0x3eae, 0x5b0f, 0xf0c3,
- 0xf709, 0x3750, 0x6176, 0xf034,
- 0xf894, 0x3000, 0x676d, 0xf001,
- 0xfa16, 0x28d3, 0x6ce1, 0xf038,
- 0xfb81, 0x21dd, 0x71c1, 0xf0e2,
- 0xfcca, 0x1b2f, 0x75fe, 0xf20b,
- 0xfde6, 0x14da, 0x7988, 0xf3ba,
- 0xfecc, 0x0eec, 0x7c56, 0xf5f4,
- 0xff76, 0x0972, 0x7e5d, 0xf8be,
- 0xffde, 0x0476, 0x7f97, 0xfc18
- };
-
-/*
- * this is the table which determines how many straight-line segments to draw
- * for a given curved segment.
- */
-static short segtable[] = { 10, 3, 56, /* pl <= 10, 3 segments */
- 32, 4, 40, /* pl <= 32, 4 segments */
- 80, 6, 24, /* pl <= 80, 6 segments */
- 96, 8, 16, /* pl <= 96, 8 segments */
- 192, 12, 8, /* pl <= 192, 12 segments */
- 32767, 24, 00 /* pl <= 32767, 24 segments */
- };
-
-/*
- *
- * The Real routine:
- *
- */
-
-static int vertices_converter(pathaddr, pathcount, ppathaddr_new, newpathcnt)
- Vertex *pathaddr; /* address of original path list */
- int pathcount; /* number of points in original path list */
- Vertex **ppathaddr_new; /* ptr to addr of new path list */
- int *newpathcnt; /* ptr to new number of pts in path list */
-{
- int p0x, p0y; /* coordinates of curve's predecessor point */
- int p1x, p1y; /* coordinates of curve's starting point */
- int p2x, p2y; /* coordinates of curve's ending point */
- int p3x, p3y; /* coordinates of curve's successor point */
- int flag; /* flag word of current end-point in p.list */
- int successor_x = 0; /* X coordinate of curve's successor point */
- int successor_y = 0; /* Y coordinate of curve's successor point */
- int little_endian; /* stupid bntable is little-endian */
- WORD increment; /* bntable-ptr-increment value */
- WORD diffx, diffy; /* absolute values of x, y end-point diffs */
- WORD lmajoraxis; /* "length" of seg projected onto major axis */
- union /* accumulator variables for computing end-points... */
- { /* ...using the bntable. */
- struct
- {
- WORD low;
- WORD high;
- } sword;
- int lword;
- } xxe, yye;
- register Vertex *pnewpath;/* pointer for traversing modified path list */
- int newpathcount; /* number of end-points in modified path list*/
- register Vertex *pflag; /* pointer used for looking for fig's last pt*/
- int i; /* general-purpose loop variable */
- int ecf_flag_set; /* flag indicating existence of set ECF flag */
- int count;
- int curve_flag; /* 0 = no curves in path; 1 = curves in path */
-
- /*
- * The following is necessary because of the pseudo-floating point
- * calculations done down below.
- */
- i = 1;
- if (*(char *) &i)
- little_endian = 1;
- else
- little_endian = 0;
-
- {
- register Vertex *poldpath;/* pointer for traversing original path list */
- register Vertex *p_coord_path; /* ptr to path list with coordinates */
-
- /* Init the return path count to 0 in case of error */
- *newpathcnt = 0;
- newpathcount = 0;
-
- /* Use path buffers from last time */
- pnewpath = pathaddr_new;
- p_coord_path = pathaddr_coords;
-
- /*
- * if size of coordinate path list buffer is not at least large enough to
- * accommodate the specified path list, allocate enough memory to do so
- */
- if (path_coord_list_segs == 0) /* first time through*/
- {
- path_coord_list_segs = max (200, pathcount);
- path_coord_list_bytes = path_coord_list_segs * sizeof(Vertex);
- if ((pathaddr_coords = (Vertex *)Xmalloc(path_coord_list_bytes)) != 0)
- p_coord_path = pathaddr_coords;
- else
- return(ERR_RETURN);
- }
- else /* all but first time through */
- {
- /* If coord buffer is large enough for this path then reuse it, other
- wise free the old one and get a new one (Carver) 8510.03 */
- if (path_coord_list_segs < pathcount)
- {
- Xfree( pathaddr_coords);
- path_coord_list_segs = pathcount;
- path_coord_list_bytes = path_coord_list_segs * sizeof(Vertex);
- if ((pathaddr_coords =(Vertex *)Xmalloc(path_coord_list_bytes)) !=0)
- p_coord_path = pathaddr_coords;
- else
- return(ERR_RETURN);
- };
- }
-
- /*
- * Copy given Vertex list (pathaddr) to coordinate buffer converting
- * relative coordinates to absolute coordinates.
- *
- * Sets curve_flag iff at least one Vertex has the VertexCurved flag set.
- *
- */
-
- poldpath = pathaddr;
- curve_flag = 0;
-
- *p_coord_path = *poldpath++; /* First Vertex is a special case */
- p_coord_path->flags = (p_coord_path->flags | VertexDontDraw)
- & ~VertexRelative;
- if ((p_coord_path++)->flags & VertexCurved)
- curve_flag = 1;
- for (i = pathcount - 1; i > 0; i--)
- {
- if (poldpath->flags & VertexRelative)
- { /* compute coordinates using last pt */
- p_coord_path->x = poldpath->x + p_coord_path[-1].x;
- p_coord_path->y = poldpath->y + p_coord_path[-1].y;
- p_coord_path->flags = poldpath->flags & ~VertexRelative;
- }
- else *p_coord_path = *poldpath;
- p_coord_path++;
- if ((poldpath++)->flags & VertexCurved)
- curve_flag = 1;
- }
- } /* End of scope for poldaddr, p_coord_path */
-
- /*
- * if it has been determined that there are no curved segment end points in
- * the specified path list, return the path list containing the coordinates
- * to the calling routine.
- */
- if (!curve_flag)
- {
- *newpathcnt = pathcount;
- *ppathaddr_new = pathaddr_coords;
- return(OK_RETURN);
- }
-
- /*
- * if size of modified path list buffer is not at least large enough to
- * accommodate the specified path list allocate enough memory to do so
- */
- pathaddr = pathaddr_coords;
- if (pathlist_segs < pathcount)
- {
- if (pathlist_segs == 0) /* Fix storage leak -- MDL 5/20/87 */
- Xfree( pathaddr_new );
- pathlist_segs = pathcount;
- pathlist_bytes = pathcount * sizeof(Vertex);
- if ((pathaddr_new = (Vertex *)Xmalloc(pathlist_bytes)) != 0)
- pnewpath = pathaddr_new;
- else
- return(ERR_RETURN);
- }
-
- /*
- * initialize the beginning and ending coordinates of the first segment
- */
- p1x = 0;
- p1y = 0;
- p2x = 0;
- p2y = 0;
-
- {
- register WORD *pbntable; /* table of multiplicative coeffics.*/
- register WORD *psegtable; /* table used to detrmn num.sub-segs*/
- register WORD m; /* num segments into which curve is divided */
-
- /*
- * MAIN LOOP OF THE PATH_LIST_CONVERTER ROUTINE
- */
- for ( count=pathcount ; count > 0; count--)
- {
- p0x = p1x; /* save previous values of path-list coordinate pairs*/
- p0y = p1y;
- p1x = p2x;
- p1y = p2y;
-
- /*
- * read next end-point's coordinates from the path list
- */
- p2x = pathaddr->x;
- p2y = pathaddr->y;
- flag = (pathaddr++)->flags;
-
- /*
- * CURVED-segment considerations
- */
- if (flag & VertexCurved)
- {
- /*
- * determine which point to use as the successor point: the next
- * point in the list (if there is one), or a previously-saved point
- * (when drawing closed figures)
- */
- if (flag & VertexEndClosed) /* last segment of closed fig*/
- {
- p3x = successor_x;
- p3y = successor_y;
- }
- else /* stand-alone curved segment*/
- {
- if (count <= 1) /* no points to use as successor pt */
- {
-
- /* in this case draw the coord path */
- *newpathcnt = pathcount;
- *ppathaddr_new = pathaddr_coords;
- return(OK_RETURN);
- }
- else
- {
- /*
- * read next end-point's coordinates from the path list...
- */
- p3x = pathaddr->x;
- p3y = pathaddr->y;
-
- if (flag & VertexStartClosed)
- { /* first segment of closed figure */
- /*
- * save P3 as successor pt for closed-fig-ending curve
- */
- successor_x = p3x;
- successor_y = p3y;
-
- /*
- * Traverse the original path list looking for ECF flag
- * After finding it, back pointer up to previous point
- * and save the information for use as curve's pred. pt
- */
- ecf_flag_set = 0;
- pflag = pathaddr;
- for (i = count; i > 0; i--)
- {
- if (pflag->flags & VertexEndClosed)
- {
- pflag--;
- p1x = pflag->x;
- p1y = pflag->y;
- ecf_flag_set = 1;
- break;
- }
- pflag++;
- }
- if (!ecf_flag_set)
- return(ERR_RETURN);
- } /* end code pertaining to starting figure*/
- } /* end code pertaining to successor points */
- } /* end code pertaining to stand-alone curved segs*/
-
- if ((flag & VertexDontDraw) == 0)
- {
- /*
- * determine the "length" of the segment along the major axis
- */
- if ((diffx = p2x - p1x) < 0)
- diffx = ~diffx + 1;
- if ((diffy = p2y - p1y) < 0)
- diffy = ~diffy + 1;
- lmajoraxis = (diffx >= diffy) ? diffx : diffy;
- if (lmajoraxis == 0) /* for vector to have length of... */
- lmajoraxis = 1; /* ...at least one */
-
- /*
- * compute M, the number of sub-segments into which a curved
- * segment is divided
- */
- psegtable = segtable;
- while (lmajoraxis > *psegtable++)/* search for appropriate..*/
- psegtable += 2; /* ...table entry */
- m = *psegtable++; /* read number of segments */
- increment = *psegtable >> 1;
-
- /*
- * determine if there is enough room remaining in the modified
- * path-list buffer to hold ALL of the curve's sub-segment in-
- * formation; if not, double the buffer size (if possible).
- */
- while ((newpathcount + m) > pathlist_segs)
- {
- pathlist_segs *= 2;
- pathlist_bytes *= 2;
- if ((pathaddr_new = (Vertex *)Xrealloc(pathaddr_new,
- pathlist_bytes)) != 0)
- pnewpath = pathaddr_new + newpathcount;
- else
- return(ERR_RETURN);
- }
-
- /*
- * generate end-points of sub-segs into which curve is divided
- */
- pbntable = (WORD *) bntable; /* initialize the pointer to the Bn table*/
- for ( ; m > 1; m--)
- {
- pbntable += increment;
- xxe.lword = *pbntable * p0x;
- yye.lword = *pbntable++ * p0y;
- xxe.lword += *pbntable * p1x;
- yye.lword += *pbntable++ * p1y;
- xxe.lword += *pbntable * p2x;
- yye.lword += *pbntable++ * p2y;
- xxe.lword += *pbntable * p3x;
- yye.lword += *pbntable++ * p3y;
- xxe.lword = xxe.lword << 1; /* double values... */
- yye.lword = yye.lword << 1; /* ...bn accts for it*/
- xxe.lword += 0x8000; /* round off the accum value */
- yye.lword += 0x8000;
- if (little_endian) {
- pnewpath->x = xxe.sword.high;/* the X coordinate */
- pnewpath->y = yye.sword.high;/* the Y coordinate */
- } else {
- pnewpath->x = xxe.sword.low;/* the X coordinate */
- pnewpath->y = yye.sword.low;/* the Y coordinate */
- }
- (pnewpath++)->flags = 0; /* the flag word */
- newpathcount++;/* increment segment end-point countr*/
- } /* end sub-segment end-point compute loop*/
- } /* end DRAW-segment considerations code */
- } /* end CURVED-segment considerations code */
-
- /*
- * put end-point from original path list into modified list
- */
- pnewpath->x = p2x;
- pnewpath->y = p2y;
- (pnewpath++)->flags = flag & ~VertexCurved;
- newpathcount++;
-
- /*
- * determine whether or not the modified path list is full, and if so,
- * double its size
- */
- if (newpathcount == pathlist_segs)
- {
- pathlist_bytes *= 2;
- pathlist_segs *= 2;
- if ((pathaddr_new = (Vertex *)Xrealloc(pathaddr_new,
- pathlist_bytes)) != 0)
- pnewpath = pathaddr_new + newpathcount;
- else
- return(ERR_RETURN);
- }
- } /* END of PATH_LIST_CONVERTER's main loop */
-
- /*
- * return the address of the modified path list and the number of segment
- * end-points it contains
- */
- *newpathcnt = newpathcount;
- *ppathaddr_new = pathaddr_new;
- }
-
- return(OK_RETURN);
-}
-
-/* Written by Mark Lillibridge */
-
-static XPoint *XDraw_points = NULL; /* Buffer to hold list of points for */
-static int point_count = 0; /* use in calling XDrawLines */
-
-Status XDraw (dpy, d, gc, vlist, vcount)
- register Display *dpy;
- Drawable d;
- GC gc;
- Vertex *vlist;
- int vcount;
-{
- Vertex *newvlist;
- int newvcount;
- XPoint *p;
- int pcount;
-
- /* If less than 2 vertices, we don't have to do anything (no lines) */
- if (vcount<2)
- return(OK_RETURN);
-
- /* Convert curved lines to straight lines & change relative references to */
- /* absolute references. */
- if (!vertices_converter( vlist, vcount, &newvlist, &newvcount))
- return(ERR_RETURN);
-
- /* Insure we have enough buffer space */
- if (point_count < newvcount) {
- if (point_count != 0)
- Xfree( XDraw_points );
- if (!(XDraw_points = (XPoint *) Xmalloc( newvcount * sizeof(XPoint) )))
- return(ERR_RETURN);
- point_count = newvcount;
- }
-
- /*
- * Draw the lines defined by newvlist using seperate XDrawLines calls
- * to insure that all the lines that should be joined are and that closed
- * figures are joined correctly.
- */
- while (newvcount>0) {
- p = XDraw_points; /* Put points in buffer */
- pcount = 0;
- p->x = newvlist->x; /* Copy first point */
- (p++)->y = (newvlist++)->y;
- newvcount--; pcount++;
-
- /*
- * Copy more points until out of points or need to stop XDrawLine
- * because either we don't want to join to the next point
- * (VertexDontDraw) or we want to stop after the next point so that
- * a closed figure will be joined correctly. (We have to stop before
- * a VertexStartClosed because the vertex marked VertexStartClosed
- * must be the first vertex in its XDrawLines call to get joining
- * to work correctly.
- */
- while (newvcount > 0 && !(newvlist->flags & (VertexDontDraw |
- VertexStartClosed |
- VertexEndClosed))) {
- p->x = newvlist->x;
- (p++)->y = (newvlist++)->y;
- newvcount--; pcount++;
- }
-
- /*
- * If stopped only because of need to start a new XDrawLines, copy
- * next point but don't advance pointer so two XdrawLines act like one.
- */
- if ( newvcount > 0 && !(newvlist->flags & VertexDontDraw) ) {
- p->x = newvlist->x;
- (p++)->y = newvlist->y;
- pcount++;
- }
-
- /* Do the XDrawLines if there are any lines to draw */
- if (pcount>1)
- XDrawLines(dpy, d, gc, XDraw_points, pcount, CoordModeOrigin);
- }
-
- return(OK_RETURN);
-}
-
-Status XDrawFilled (dpy, d, gc, vlist, vcount)
- register Display *dpy;
- Drawable d;
- GC gc;
- Vertex *vlist;
- int vcount;
-{
- Vertex *newvlist;
- int newvcount;
- XPoint *p;
- int pcount;
-
- /* If less than 2 vertices, we don't have to do anything (no lines) */
- if (vcount<2)
- return(OK_RETURN);
-
- /* Convert curved lines to straight lines & change relative references to */
- /* absolute references. */
- if (!vertices_converter( vlist, vcount, &newvlist, &newvcount))
- return(ERR_RETURN);
-
- /* Insure we have enough buffer space */
- if (point_count < newvcount) {
- if (point_count != 0)
- Xfree( XDraw_points );
- if (!(XDraw_points = (XPoint *) Xmalloc( newvcount * sizeof(XPoint) )))
- return(ERR_RETURN);
- point_count = newvcount;
- }
-
- /*
- * Draw the lines defined by newvlist using seperate XDrawLines calls
- * to insure that all the lines that should be joined are and that closed
- * figures are joined correctly.
- */
- while (newvcount>0) {
- p = XDraw_points; /* Put points in buffer */
- pcount = 0;
- p->x = newvlist->x; /* Copy first point */
- (p++)->y = (newvlist++)->y;
- newvcount--; pcount++;
-
- /*
- * Copy more points until out of points or need to stop XDrawLine
- * because either we don't want to join to the next point
- * (VertexDontDraw) or we want to stop after the next point so that
- * a closed figure will be joined correctly. (We have to stop before
- * a VertexStartClosed because the vertex marked VertexStartClosed
- * must be the first vertex in its XDrawLines call to get joining
- * to work correctly.
- */
- while (newvcount > 0 && !(newvlist->flags & (VertexStartClosed |
- VertexEndClosed))) {
- p->x = newvlist->x;
- (p++)->y = (newvlist++)->y;
- newvcount--; pcount++;
- }
-
- /*
- * If stopped only because of need to start a new XDrawLines, copy
- * next point but don't advance pointer so two XdrawLines act like one.
- */
- if ( newvcount > 0 ) {
- p->x = newvlist->x;
- (p++)->y = newvlist->y;
- pcount++;
- }
-
- /* Do the XDrawLines if there are any lines to draw */
- if (pcount>1) {
- XFillPolygon(dpy, d, gc, XDraw_points, pcount, Complex,
- CoordModeOrigin);
- }
- }
-
- return(OK_RETURN);
-}
diff --git a/nx-X11/lib/oldX/XLookAssoc.c b/nx-X11/lib/oldX/XLookAssoc.c
deleted file mode 100644
index fe150c919..000000000
--- a/nx-X11/lib/oldX/XLookAssoc.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* $Xorg: XLookAssoc.c,v 1.4 2001/02/09 02:04:05 xorgcvs Exp $ */
-/*
-
-Copyright 1985, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-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 THE
-OPEN GROUP 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 The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "X11/Xlibint.h"
-#include "X10.h"
-
-/*
- * XLookUpAssoc - Retrieve the data stored in an XAssocTable by its XId.
- * If an appropriately matching XId can be found in the table the routine will
- * return apointer to the data associated with it. If the XId can not be found
- * in the table the routine will return a NULL pointer. All XId's are relative
- * to the currently active Display.
- */
-XPointer XLookUpAssoc(dpy, table, x_id)
- register Display *dpy;
- register XAssocTable *table; /* XAssocTable to search in. */
- register XID x_id; /* XId to search for. */
-{
- int hash;
- register XAssoc *bucket;
- register XAssoc *Entry;
-
- /* Hash the XId to get the bucket number. */
- hash = x_id & (table->size - 1);
- /* Look up the bucket to get the entries in that bucket. */
- bucket = &table->buckets[hash];
- /* Get the first entry in the bucket. */
- Entry = bucket->next;
-
- /* Scan through the entries in the bucket for the right XId. */
- for (; Entry != bucket; Entry = Entry->next) {
- if (Entry->x_id == x_id) {
- /* We have the right XId. */
- if (Entry->display == dpy) {
- /* We have the right display. */
- /* We have the right entry! */
- return(Entry->data);
- }
- /* Oops, identical XId's on different displays! */
- continue;
- }
- if (Entry->x_id > x_id) {
- /* We have gone past where it should be. */
- /* It is apparently not in the table. */
- return(NULL);
- }
- }
- /* It is apparently not in the table. */
- return(NULL);
-}
-
diff --git a/nx-X11/lib/oldX/XMakeAssoc.c b/nx-X11/lib/oldX/XMakeAssoc.c
deleted file mode 100644
index 40b3562f6..000000000
--- a/nx-X11/lib/oldX/XMakeAssoc.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* $Xorg: XMakeAssoc.c,v 1.4 2001/02/09 02:04:05 xorgcvs Exp $ */
-/*
-
-Copyright 1985, 1998 The Open Group.
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-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 THE
-OPEN GROUP 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 The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-/* $XFree86: xc/lib/oldX/XMakeAssoc.c,v 1.3 2001/01/17 19:43:38 dawes Exp $ */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include "X11/Xlibint.h"
-#include "X10.h"
-
-/*
- * XMakeAssoc - Insert data into an XAssocTable keyed on an XId.
- * Data is inserted into the table only once. Redundant inserts are
- * meaningless (but cause no problems). The queue in each association
- * bucket is sorted (lowest XId to highest XId).
- */
-int
-XMakeAssoc(dpy, table, x_id, data)
- register Display *dpy;
- register XAssocTable *table;
- register XID x_id;
- register XPointer data;
-{
- int hash;
- register XAssoc *bucket;
- register XAssoc *Entry;
- register XAssoc *new_entry;
-
- /* Hash the XId to get the bucket number. */
- hash = x_id & (table->size - 1);
- /* Look up the bucket to get the entries in that bucket. */
- bucket = &table->buckets[hash];
- /* Get the first entry in the bucket. */
- Entry = bucket->next;
-
- /* If (Entry != bucket), the bucket is empty so make */
- /* the new entry the first entry in the bucket. */
- /* if (Entry == bucket), the we have to search the */
- /* bucket. */
- if (Entry != bucket) {
- /* The bucket isn't empty, begin searching. */
- /* If we leave the for loop then we have either passed */
- /* where the entry should be or hit the end of the bucket. */
- /* In either case we should then insert the new entry */
- /* before the current value of "Entry". */
- for (; Entry != bucket; Entry = Entry->next) {
- if (Entry->x_id == x_id) {
- /* Entry has the same XId... */
- if (Entry->display == dpy) {
- /* Entry has the same Display... */
- /* Therefore there is already an */
- /* entry with this XId and Display, */
- /* reset its data value and return. */
- Entry->data = data;
- return 0;
- }
- /* We found an association with the right */
- /* id but the wrong display! */
- continue;
- }
- /* If the current entry's XId is greater than the */
- /* XId of the entry to be inserted then we have */
- /* passed the location where the new XId should */
- /* be inserted. */
- if (Entry->x_id > x_id) break;
- }
- }
-
- /* If we are here then the new entry should be inserted just */
- /* before the current value of "Entry". */
- /* Create a new XAssoc and load it with new provided data. */
- new_entry = (XAssoc *)Xmalloc(sizeof(XAssoc));
- if (new_entry == NULL) {
- /* Malloc failed! */
- errno = ENOMEM;
- _XIOError(dpy);
- }
- new_entry->display = dpy;
- new_entry->x_id = x_id;
- new_entry->data = data;
-
- /* Insert the new entry. */
- new_entry->prev = Entry->prev;
- new_entry->next = Entry;
- Entry->prev->next = new_entry;
- Entry->prev = new_entry;
- return 0;
-}
-
diff --git a/nx-X11/lib/oldX/oldX-def.cpp b/nx-X11/lib/oldX/oldX-def.cpp
deleted file mode 100644
index a975984e4..000000000
--- a/nx-X11/lib/oldX/oldX-def.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-LIBRARY OLDX
-VERSION LIBRARY_VERSION
-EXPORTS
- XDraw
- XDrawFilled
- XCreateAssocTable
- XDeleteAssoc
- XDestroyAssocTable
- XLookUpAssoc
- XMakeAssoc
-/* $Xorg: oldX-def.cpp,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */