annotate oldXMenu/XLookAssoc.c @ 63308:51d38cfbe542

Warn about using "cvs up -kb" if one intends to commit changes. Add a pointer to another site with detailed configure and build instructions. Suggest to look at config.log when configure fails. Add MinGW Make 3.80 to the list of successful combinations.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 11 Jun 2005 11:31:29 +0000
parents e8824c4f5f7e
children 3861ff8f4bf1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
1 /* Copyright Massachusetts Institute of Technology 1985 */
Dave Love <fx@gnu.org>
parents:
diff changeset
2
Dave Love <fx@gnu.org>
parents:
diff changeset
3 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
4 Permission to use, copy, modify, distribute, and sell this software and its
Dave Love <fx@gnu.org>
parents:
diff changeset
5 documentation for any purpose is hereby granted without fee, provided that
Dave Love <fx@gnu.org>
parents:
diff changeset
6 the above copyright notice appear in all copies and that both that
Dave Love <fx@gnu.org>
parents:
diff changeset
7 copyright notice and this permission notice appear in supporting
Dave Love <fx@gnu.org>
parents:
diff changeset
8 documentation, and that the name of M.I.T. not be used in advertising or
Dave Love <fx@gnu.org>
parents:
diff changeset
9 publicity pertaining to distribution of the software without specific,
Dave Love <fx@gnu.org>
parents:
diff changeset
10 written prior permission. M.I.T. makes no representations about the
Dave Love <fx@gnu.org>
parents:
diff changeset
11 suitability of this software for any purpose. It is provided "as is"
Dave Love <fx@gnu.org>
parents:
diff changeset
12 without express or implied warranty.
Dave Love <fx@gnu.org>
parents:
diff changeset
13 */
Dave Love <fx@gnu.org>
parents:
diff changeset
14
Dave Love <fx@gnu.org>
parents:
diff changeset
15 #include <X11/Xlib.h>
Dave Love <fx@gnu.org>
parents:
diff changeset
16 #include <X11/Xresource.h>
Dave Love <fx@gnu.org>
parents:
diff changeset
17 #include "X10.h"
Dave Love <fx@gnu.org>
parents:
diff changeset
18
Dave Love <fx@gnu.org>
parents:
diff changeset
19 #ifndef NULL
Dave Love <fx@gnu.org>
parents:
diff changeset
20 #define NULL 0
Dave Love <fx@gnu.org>
parents:
diff changeset
21 #endif
Dave Love <fx@gnu.org>
parents:
diff changeset
22
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
23 /*
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
24 * XLookUpAssoc - Retrieve the data stored in an XAssocTable by its XId.
Dave Love <fx@gnu.org>
parents:
diff changeset
25 * If an appropriately matching XId can be found in the table the routine will
Dave Love <fx@gnu.org>
parents:
diff changeset
26 * return apointer to the data associated with it. If the XId can not be found
Dave Love <fx@gnu.org>
parents:
diff changeset
27 * in the table the routine will return a NULL pointer. All XId's are relative
Dave Love <fx@gnu.org>
parents:
diff changeset
28 * to the currently active Display.
Dave Love <fx@gnu.org>
parents:
diff changeset
29 */
Dave Love <fx@gnu.org>
parents:
diff changeset
30 caddr_t XLookUpAssoc(dpy, table, x_id)
Dave Love <fx@gnu.org>
parents:
diff changeset
31 register Display *dpy;
Dave Love <fx@gnu.org>
parents:
diff changeset
32 register XAssocTable *table; /* XAssocTable to search in. */
Dave Love <fx@gnu.org>
parents:
diff changeset
33 register XID x_id; /* XId to search for. */
Dave Love <fx@gnu.org>
parents:
diff changeset
34 {
Dave Love <fx@gnu.org>
parents:
diff changeset
35 int hash;
Dave Love <fx@gnu.org>
parents:
diff changeset
36 register XAssoc *bucket;
Dave Love <fx@gnu.org>
parents:
diff changeset
37 register XAssoc *Entry;
Dave Love <fx@gnu.org>
parents:
diff changeset
38
Dave Love <fx@gnu.org>
parents:
diff changeset
39 /* Hash the XId to get the bucket number. */
Dave Love <fx@gnu.org>
parents:
diff changeset
40 hash = x_id & (table->size - 1);
Dave Love <fx@gnu.org>
parents:
diff changeset
41 /* Look up the bucket to get the entries in that bucket. */
Dave Love <fx@gnu.org>
parents:
diff changeset
42 bucket = &table->buckets[hash];
Dave Love <fx@gnu.org>
parents:
diff changeset
43 /* Get the first entry in the bucket. */
Dave Love <fx@gnu.org>
parents:
diff changeset
44 Entry = bucket->next;
Dave Love <fx@gnu.org>
parents:
diff changeset
45
Dave Love <fx@gnu.org>
parents:
diff changeset
46 /* Scan through the entries in the bucket for the right XId. */
Dave Love <fx@gnu.org>
parents:
diff changeset
47 for (; Entry != bucket; Entry = Entry->next) {
Dave Love <fx@gnu.org>
parents:
diff changeset
48 if (Entry->x_id == x_id) {
Dave Love <fx@gnu.org>
parents:
diff changeset
49 /* We have the right XId. */
Dave Love <fx@gnu.org>
parents:
diff changeset
50 if (Entry->display == dpy) {
Dave Love <fx@gnu.org>
parents:
diff changeset
51 /* We have the right display. */
Dave Love <fx@gnu.org>
parents:
diff changeset
52 /* We have the right entry! */
Dave Love <fx@gnu.org>
parents:
diff changeset
53 return(Entry->data);
Dave Love <fx@gnu.org>
parents:
diff changeset
54 }
Dave Love <fx@gnu.org>
parents:
diff changeset
55 /* Oops, identical XId's on different displays! */
Dave Love <fx@gnu.org>
parents:
diff changeset
56 continue;
Dave Love <fx@gnu.org>
parents:
diff changeset
57 }
Dave Love <fx@gnu.org>
parents:
diff changeset
58 if (Entry->x_id > x_id) {
Dave Love <fx@gnu.org>
parents:
diff changeset
59 /* We have gone past where it should be. */
Dave Love <fx@gnu.org>
parents:
diff changeset
60 /* It is apparently not in the table. */
Dave Love <fx@gnu.org>
parents:
diff changeset
61 return(NULL);
Dave Love <fx@gnu.org>
parents:
diff changeset
62 }
Dave Love <fx@gnu.org>
parents:
diff changeset
63 }
Dave Love <fx@gnu.org>
parents:
diff changeset
64 /* It is apparently not in the table. */
Dave Love <fx@gnu.org>
parents:
diff changeset
65 return(NULL);
Dave Love <fx@gnu.org>
parents:
diff changeset
66 }
Dave Love <fx@gnu.org>
parents:
diff changeset
67
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
68 /* arch-tag: d5075d0c-4b71-467d-b33c-3f5c4c4afcf2
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
69 (do not change this comment) */