annotate oldXMenu/XCrAssoc.c @ 99492:ee792794d888

(isearch-search-fun): Compare the length of the current search string with the length of the string from the previous search state to detect the situation when the user adds or removes characters in the search string. Use word-search-forward-lax and word-search-backward-lax in this case, and otherwise word-search-forward and word-search-backward.
author Juri Linkov <juri@jurta.org>
date Tue, 11 Nov 2008 19:43:09 +0000
parents fec5e03aaf59
children ec58e5c426ef 5cc91198ffb2
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 */
76133
995b45abe69d Remove license text in favour of including copyright.h, as was done in
Glenn Morris <rgm@gnu.org>
parents: 75348
diff changeset
2 #include "copyright.h"
995b45abe69d Remove license text in favour of including copyright.h, as was done in
Glenn Morris <rgm@gnu.org>
parents: 75348
diff changeset
3
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
4
Dave Love <fx@gnu.org>
parents:
diff changeset
5 #include <config.h>
Dave Love <fx@gnu.org>
parents:
diff changeset
6 #include <X11/Xlib.h>
Dave Love <fx@gnu.org>
parents:
diff changeset
7 #include <errno.h>
Dave Love <fx@gnu.org>
parents:
diff changeset
8 #include "X10.h"
Dave Love <fx@gnu.org>
parents:
diff changeset
9
Dave Love <fx@gnu.org>
parents:
diff changeset
10 #ifndef NULL
Dave Love <fx@gnu.org>
parents:
diff changeset
11 #define NULL 0
Dave Love <fx@gnu.org>
parents:
diff changeset
12 #endif
Dave Love <fx@gnu.org>
parents:
diff changeset
13
Dave Love <fx@gnu.org>
parents:
diff changeset
14 extern int errno;
Dave Love <fx@gnu.org>
parents:
diff changeset
15
Dave Love <fx@gnu.org>
parents:
diff changeset
16 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
17 * XCreateAssocTable - Create an XAssocTable. The size argument should be
Dave Love <fx@gnu.org>
parents:
diff changeset
18 * a power of two for efficiency reasons. Some size suggestions: use 32
Dave Love <fx@gnu.org>
parents:
diff changeset
19 * buckets per 100 objects; a reasonable maximum number of object per
Dave Love <fx@gnu.org>
parents:
diff changeset
20 * buckets is 8. If there is an error creating the XAssocTable, a NULL
Dave Love <fx@gnu.org>
parents:
diff changeset
21 * pointer is returned.
Dave Love <fx@gnu.org>
parents:
diff changeset
22 */
Dave Love <fx@gnu.org>
parents:
diff changeset
23 XAssocTable *XCreateAssocTable(size)
Dave Love <fx@gnu.org>
parents:
diff changeset
24 register int size; /* Desired size of the table. */
Dave Love <fx@gnu.org>
parents:
diff changeset
25 {
Dave Love <fx@gnu.org>
parents:
diff changeset
26 register XAssocTable *table; /* XAssocTable to be initialized. */
Dave Love <fx@gnu.org>
parents:
diff changeset
27 register XAssoc *buckets; /* Pointer to the first bucket in */
Dave Love <fx@gnu.org>
parents:
diff changeset
28 /* the bucket array. */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
29
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
30 /* Malloc the XAssocTable. */
Dave Love <fx@gnu.org>
parents:
diff changeset
31 if ((table = (XAssocTable *)malloc(sizeof(XAssocTable))) == NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
32 /* malloc call failed! */
Dave Love <fx@gnu.org>
parents:
diff changeset
33 errno = ENOMEM;
Dave Love <fx@gnu.org>
parents:
diff changeset
34 return(NULL);
Dave Love <fx@gnu.org>
parents:
diff changeset
35 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25858
diff changeset
36
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
37 /* calloc the buckets (actually just their headers). */
Dave Love <fx@gnu.org>
parents:
diff changeset
38 buckets = (XAssoc *)calloc((unsigned)size, (unsigned)sizeof(XAssoc));
Dave Love <fx@gnu.org>
parents:
diff changeset
39 if (buckets == NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
40 /* calloc call failed! */
Dave Love <fx@gnu.org>
parents:
diff changeset
41 errno = ENOMEM;
Dave Love <fx@gnu.org>
parents:
diff changeset
42 return(NULL);
Dave Love <fx@gnu.org>
parents:
diff changeset
43 }
Dave Love <fx@gnu.org>
parents:
diff changeset
44
Dave Love <fx@gnu.org>
parents:
diff changeset
45 /* Insert table data into the XAssocTable structure. */
Dave Love <fx@gnu.org>
parents:
diff changeset
46 table->buckets = buckets;
Dave Love <fx@gnu.org>
parents:
diff changeset
47 table->size = size;
Dave Love <fx@gnu.org>
parents:
diff changeset
48
Dave Love <fx@gnu.org>
parents:
diff changeset
49 while (--size >= 0) {
Dave Love <fx@gnu.org>
parents:
diff changeset
50 /* Initialize each bucket. */
Dave Love <fx@gnu.org>
parents:
diff changeset
51 buckets->prev = buckets;
Dave Love <fx@gnu.org>
parents:
diff changeset
52 buckets->next = buckets;
Dave Love <fx@gnu.org>
parents:
diff changeset
53 buckets++;
Dave Love <fx@gnu.org>
parents:
diff changeset
54 }
Dave Love <fx@gnu.org>
parents:
diff changeset
55
Dave Love <fx@gnu.org>
parents:
diff changeset
56 return(table);
Dave Love <fx@gnu.org>
parents:
diff changeset
57 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
58
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
59 /* arch-tag: 5df3237d-ada0-4345-a3ab-282cafb397aa
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
60 (do not change this comment) */