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