view oldXMenu/XCrAssoc.c @ 106022:b92e7ae35c75

2009-11-15 Carsten Dominik <carsten.dominik@gmail.com> * org-latex.el (org-export-as-latex): Add the :drawers property. 2009-11-15 Carsten Dominik <carsten.dominik@gmail.com> * org.el (org-speed-commands-user): Allow documentation headlines. (org-speed-commands-default): Organize the value of this constant with descriptive headlines. (org-print-speed-command): Output the headlines. 2009-11-15 Carsten Dominik <carsten.dominik@gmail.com> * org-agenda.el (org-agenda-show-outline-path): New option. (org-agenda-do-context-action): New function. (org-agenda-next-line, org-agenda-previous-line): Use `org-agenda-do-context-action'. * org.el (org-use-speed-commands): Allow function value. (org-speed-commands-default): Make headline motion safe, so that these commands always end on a headline. (org-speed-commands-default): New key `v' for `org-agenda'. (org-speed-move-safe): New function. (org-self-insert-command): Use the function value of `org-use-speed-commands'. (org-get-outline-path): Improve docstring. (org-format-outline-path): New function. (org-display-outline-path): New function. 2009-11-15 John Wiegley <jwiegley@gmail.com> * org-clock.el (org-clock-resolve): If `org-clock-into-string' is a string, use that to find the LOGBOOK drawer.
author Carsten Dominik <dominik@science.uva.nl>
date Sun, 15 Nov 2009 07:11:04 +0000
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) */