1#include "copyright.h"
2
3/* Copyright    Massachusetts Institute of Technology    1985	*/
4/* Copyright (C) 2001, 2002, 2003, 2004, 2005,
5                 2006, 2007 Free Software Foundation, Inc.  */
6
7/*
8 * XMenu:	MIT Project Athena, X Window system menu package
9 *
10 *	XMenuFindSelection - Find the first selection in a pane who's
11 *			     label matches a particular string.
12 *
13 *	Author:		Tony Della Fera, DEC
14 *			January 22, 1986
15 *
16 */
17
18#include "XMenuInt.h"
19
20int
21XMenuFindSelection(menu, p_num, label)
22    register XMenu *menu;
23    int p_num;
24    register char *label;
25{
26    register XMPane *p_ptr;
27    register XMSelect *s_ptr;
28    register int i = 0;
29
30    /*
31     * Check for NULL pointers!
32     */
33    if (label == NULL) {
34	_XMErrorCode = XME_ARG_BOUNDS;
35	return(XM_FAILURE);
36    }
37
38    /*
39     * Find the right pane.
40     */
41    p_ptr = _XMGetPanePtr(menu, p_num);
42    if (p_ptr == NULL) return(XM_FAILURE);
43
44    /*
45     * Find the right selection.
46     */
47    for (
48	s_ptr = p_ptr->s_list->next;
49	s_ptr != p_ptr->s_list;
50	s_ptr = s_ptr->next
51    ){
52	if (s_ptr->label_length == 0) {
53	    if (*label == '\0') {
54		_XMErrorCode = XME_NO_ERROR;
55		return (i);
56	    }
57	}
58	else {
59	    if (strncmp (label, s_ptr->label, s_ptr->label_length) == 0) {
60		_XMErrorCode = XME_NO_ERROR;
61		return (i);
62	    }
63	}
64	i++;
65    }
66
67    /*
68     * If we get here then we have not found
69     * a match.
70     */
71    _XMErrorCode = XME_S_NOT_FOUND;
72    return (XM_FAILURE);
73}
74
75/* arch-tag: 564a4a95-9ab0-4580-b05f-6970c4b25dd4
76   (do not change this comment) */
77