1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #include "copyright.h"
- #include <config.h>
- #include "XMenuInt.h"
- #include <X11/Xresource.h>
- #include <errno.h>
- #ifndef NULL
- #define NULL 0
- #endif
- void
- XMakeAssoc(register Display *dpy, register XAssocTable *table, register XID x_id, register void *data)
- {
- int hash;
- register XAssoc *bucket;
- register XAssoc *Entry;
- register XAssoc *new_entry;
-
- hash = x_id & (table->size - 1);
-
- bucket = &table->buckets[hash];
-
- Entry = bucket->next;
-
-
-
-
- if (Entry != bucket) {
-
-
-
-
-
- for (; Entry != bucket; Entry = Entry->next) {
- if (Entry->x_id == x_id) {
-
- if (Entry->display == dpy) {
-
-
-
-
- Entry->data = data;
- return;
- }
-
-
- continue;
- }
-
-
-
-
- if (Entry->x_id > x_id) break;
- }
- }
-
-
-
- new_entry = (XAssoc *) malloc(sizeof(XAssoc));
- new_entry->display = dpy;
- new_entry->x_id = x_id;
- new_entry->data = data;
-
- emacs_insque((struct qelem *)new_entry, (struct qelem *)Entry->prev);
- }
|