view oldXMenu/XCrAssoc.c @ 108301:68fc9037b502

Fix MSDOS build broken by autoconfiscation and changes in symbol handling. src/msdos.c (dos_set_window_size): src/w16select.c (Fx_selection_exists_p): Use `Fsymbol_value (foo)' instead of `XSYMBOL (foo)->value'. config.bat: Allow for 2 leading `#'s in comments in src/Makefile.in. src/Makefile.in: Don't use Make-style comments past the "start of cpp stuff" line. (MSDOS_OBJ): Remove xmenu.o (it is now defined by XMENU_OBJ). src/s/msdos.h (UNEXEC): Don't define (@unexec@ in Makefile.in is edited directly by msdos/sed1v2.inp). msdos/sed3v2.inp (C_SWITCH_MACHINE): Edit to empty. msdos/sed1v2.inp (@LIB_MATH@): Edit to -lm. (C_SWITCH_MACHINE, C_SWITCH_SYSTEM, LD_SWITCH_SYSTEM_TEMACS) (LD_SWITCH_X_SITE_AUX, LD_SWITCH_X_SITE_AUX_RPATH) (LD_SWITCH_SYSTEM, LD_SWITCH_SYSTEM_EXTRA, LIBTIFF, LIBJPEG) (LIBPNG, LIBGIF, LIBXPM, XFT_LIBS, DBUS_CFLAGS, DBUS_LIBS) (DBUS_OBJ, GCONF_CFLAGS, GCONF_LIBS, GTK_OBJ, LIBXMU, LIBXSM) (LIBXTR6, XOBJ, TOOLKIT_LIBW, WIDGET_OBJ, CYGWIN_OBJ, NS_OBJ) (NS_SUPPORT, LIBSELINUX_LIBS, START_FILES): Edit to empty. (XMENU_OBJ): Edit to xmenu.o. (FONT_OBJ): Edit to value used for X on Unix. (PRE_ALLOC_OBJ): Edit to lastfile.o. (POST_ALLOC_OBJ): Edit to $(vmlimitobj). (@unexec@): Edit to unexec.o. lisp/cus-start.el (all): Add native condition for tool-bar-* symbols.
author Eli Zaretskii <eliz@gnu.org>
date Fri, 07 May 2010 17:07:51 +0300
parents fec5e03aaf59
children ec58e5c426ef 5cc91198ffb2
line wrap: on
line source

/* Copyright    Massachusetts Institute of Technology    1985	*/
#include "copyright.h"


#include <config.h>
#include <X11/Xlib.h>
#include <errno.h>
#include "X10.h"

#ifndef NULL
#define NULL 0
#endif

extern int errno;

/*
 * 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. */

	/* Malloc the XAssocTable. */
	if ((table = (XAssocTable *)malloc(sizeof(XAssocTable))) == NULL) {
		/* malloc call failed! */
		errno = ENOMEM;
		return(NULL);
	}

	/* calloc the buckets (actually just their headers). */
	buckets = (XAssoc *)calloc((unsigned)size, (unsigned)sizeof(XAssoc));
	if (buckets == NULL) {
		/* calloc 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);
}

/* arch-tag: 5df3237d-ada0-4345-a3ab-282cafb397aa
   (do not change this comment) */