Annotation of 43BSD/contrib/X/XMenu/XMenuFindSel.c, revision 1.1.1.1

1.1       root        1: #include <X/mit-copyright.h>
                      2: 
                      3: /* $Header: XMenuFindSel.c,v 10.5 86/02/01 16:15:02 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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.