Mercurial > emacs
annotate oldXMenu/FindPane.c @ 110524:bf806d096e9a
Update to CEDET 1.0's version of EIEIO.
* emacs-lisp/eieio.el (eieio-specialized-key-to-generic-key): New
function.
(eieio-defmethod, eieio-generic-form, eieio-generic-call): Use it.
(eieio-default-eval-maybe): Eval val instead of unquoting only.
(class-precedence-list): If class is nil, return nil.
(eieio-generic-call): If class of first input arg is nil, don't
look up static methods, and do check for primary methods.
(initialize-instance): See if the default needs to be evaluated
during the constructor.
(eieio-perform-slot-validation-for-default): Don't do the check
for values that will eventually be evaluated.
(eieio-eval-default-p): New function.
(eieio-default-eval-maybe): Use it.
* emacs-lisp/eieio.el (eieio-defclass): Allow :c3
method-invocation-order.
(eieio-c3-candidate, eieio-c3-merge-lists): New functions.
(eieio-class-precedence-dfs): Compute class precedence list using
dfs algorithm.
(eieio-class-precedence-bfs): Compute class precedence list using
bfs algorithm.
(eieio-class-precedence-c3): compute class precedence list using
c3 algorithm.
(class-precedence-list): New function.
(eieiomt-method-list, eieiomt-sym-optimize): Use it.
(inconsistent-class-hierarchy): New error symbol.
(call-next-method): Stow the replacement argument list for future
call-next-method invocations.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sun, 19 Sep 2010 00:23:57 -0400 |
parents | fec5e03aaf59 |
children | edf631bdbb7a ec58e5c426ef 5cc91198ffb2 |
rev | line source |
---|---|
76174
fec5e03aaf59
Remove FSF copyright since file does not differ significantly from X11
Glenn Morris <rgm@gnu.org>
parents:
75348
diff
changeset
|
1 /* Copyright Massachusetts Institute of Technology 1985 */ |
fec5e03aaf59
Remove FSF copyright since file does not differ significantly from X11
Glenn Morris <rgm@gnu.org>
parents:
75348
diff
changeset
|
2 |
25858 | 3 #include "copyright.h" |
4 | |
5 | |
6 /* | |
7 * XMenu: MIT Project Athena, X Window system menu package | |
8 * | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
25858
diff
changeset
|
9 * XMenuFindPane - Find the first menu pane who's label matches a |
25858 | 10 * particular string. |
11 * | |
12 * Author: Tony Della Fera, DEC | |
13 * January 22, 1986 | |
14 * | |
15 */ | |
16 | |
17 #include "XMenuInt.h" | |
18 | |
19 int | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
25858
diff
changeset
|
20 XMenuFindPane(menu, label) |
25858 | 21 register XMenu *menu; |
22 register char *label; | |
23 { | |
24 register XMPane *p_ptr; | |
25 register int i = 0; | |
26 | |
27 /* | |
28 * Check for NULL pointers! | |
29 */ | |
30 if (label == NULL) { | |
31 _XMErrorCode = XME_ARG_BOUNDS; | |
32 return(XM_FAILURE); | |
33 } | |
34 | |
35 /* | |
36 * Find the pane who's label matches the given label. | |
37 */ | |
38 for ( | |
39 p_ptr = menu->p_list->next; | |
40 p_ptr != menu->p_list; | |
41 p_ptr = p_ptr->next | |
42 ){ | |
43 if (p_ptr->label_length == 0) { | |
44 if (*label == '\0') { | |
45 _XMErrorCode = XME_NO_ERROR; | |
46 return (i); | |
47 } | |
48 } | |
49 else { | |
50 if (strncmp (label, p_ptr->label, p_ptr->label_length) == 0) { | |
51 _XMErrorCode = XME_NO_ERROR; | |
52 return (i); | |
53 } | |
54 } | |
55 i++; | |
56 } | |
57 | |
58 /* | |
59 * If we get here then we have not found | |
60 * a match. | |
61 */ | |
62 _XMErrorCode = XME_P_NOT_FOUND; | |
63 return (XM_FAILURE); | |
64 } | |
52401 | 65 |
66 /* arch-tag: b6c94285-0d1d-4569-a071-b34b63c67a54 | |
67 (do not change this comment) */ |