]> code.delx.au - gnu-emacs/blob - oldXMenu/FindPane.c
Merge from emacs-23.
[gnu-emacs] / oldXMenu / FindPane.c
1 /* Copyright Massachusetts Institute of Technology 1985 */
2
3 #include "copyright.h"
4
5
6 /*
7 * XMenu: MIT Project Athena, X Window system menu package
8 *
9 * XMenuFindPane - Find the first menu pane who's label matches a
10 * particular string.
11 *
12 * Author: Tony Della Fera, DEC
13 * January 22, 1986
14 *
15 */
16
17 #include "XMenuInt.h"
18
19 int
20 XMenuFindPane(register XMenu *menu, register char *label)
21 {
22 register XMPane *p_ptr;
23 register int i = 0;
24
25 /*
26 * Check for NULL pointers!
27 */
28 if (label == NULL) {
29 _XMErrorCode = XME_ARG_BOUNDS;
30 return(XM_FAILURE);
31 }
32
33 /*
34 * Find the pane who's label matches the given label.
35 */
36 for (
37 p_ptr = menu->p_list->next;
38 p_ptr != menu->p_list;
39 p_ptr = p_ptr->next
40 ){
41 if (p_ptr->label_length == 0) {
42 if (*label == '\0') {
43 _XMErrorCode = XME_NO_ERROR;
44 return (i);
45 }
46 }
47 else {
48 if (strncmp (label, p_ptr->label, p_ptr->label_length) == 0) {
49 _XMErrorCode = XME_NO_ERROR;
50 return (i);
51 }
52 }
53 i++;
54 }
55
56 /*
57 * If we get here then we have not found
58 * a match.
59 */
60 _XMErrorCode = XME_P_NOT_FOUND;
61 return (XM_FAILURE);
62 }
63