|
|
1.1 ! root 1: #include <X/mit-copyright.h> ! 2: ! 3: /* $Header: XMenuFindSel.c,v 10.5 86/02/12 16:19:17 tony Rel $ */ ! 4: /* Copyright Massachusetts Institute of Technology 1985 */ ! 5: ! 6: /* ! 7: * XMenu: MIT Project Athena, X Window system menu package ! 8: * ! 9: * XMenuFindSelection - Find the first selection in a pane who's ! 10: * label matches a particular string. ! 11: * ! 12: * Author: Tony Della Fera, DEC ! 13: * January 22, 1986 ! 14: * ! 15: */ ! 16: ! 17: #include "XMenuInternal.h" ! 18: ! 19: int ! 20: XMenuFindSelection(menu, p_num, label) ! 21: register XMenu *menu; ! 22: int p_num; ! 23: register char *label; ! 24: { ! 25: register XMPane *p_ptr; ! 26: register XMSelect *s_ptr; ! 27: register int i = 0; ! 28: ! 29: /* ! 30: * Check for NULL pointers! ! 31: */ ! 32: if (label == NULL) { ! 33: _XMErrorCode = XME_ARG_BOUNDS; ! 34: return(XM_FAILURE); ! 35: } ! 36: ! 37: /* ! 38: * Find the right pane. ! 39: */ ! 40: p_ptr = _XMGetPanePtr(menu, p_num); ! 41: if (p_ptr == NULL) return(XM_FAILURE); ! 42: ! 43: /* ! 44: * Find the right selection. ! 45: */ ! 46: for ( ! 47: s_ptr = p_ptr->s_list->next; ! 48: s_ptr != p_ptr->s_list; ! 49: s_ptr = s_ptr->next ! 50: ){ ! 51: if (s_ptr->label_length == 0) { ! 52: if (*label == '\0') { ! 53: _XMErrorCode = XME_NO_ERROR; ! 54: return (i); ! 55: } ! 56: } ! 57: else { ! 58: if (strncmp (label, s_ptr->label, s_ptr->label_length) == 0) { ! 59: _XMErrorCode = XME_NO_ERROR; ! 60: return (i); ! 61: } ! 62: } ! 63: i++; ! 64: } ! 65: ! 66: /* ! 67: * If we get here then we have not found ! 68: * a match. ! 69: */ ! 70: _XMErrorCode = XME_S_NOT_FOUND; ! 71: return (XM_FAILURE); ! 72: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.