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