]> code.delx.au - gnu-emacs/blob - oldXMenu/FindPane.c
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-78
[gnu-emacs] / oldXMenu / FindPane.c
1 #include "copyright.h"
2
3 /* Copyright Massachusetts Institute of Technology 1985 */
4 /* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
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(menu, label)
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 }
65
66 /* arch-tag: b6c94285-0d1d-4569-a071-b34b63c67a54
67 (do not change this comment) */