view oldXMenu/FindSel.c @ 82992:5de4189e659d

Got rid of the rif (window-based redisplay interface) global variable. src/dispextern.h (PRODUCE_GLYPHS): Use the rif in IT->f, not the global rif. (rif): Removed. src/dispnew.c (rif): Removed. (direct_output_for_insert, direct_output_forward_char, update_frame) (redraw_overlapped_rows, redraw_overlapping_rows, update_window) (update_marginal_area, update_text_area, update_window_line) (set_window_cursor_after_update, scrolling_window): Use the rif of the current frame, not the global rif. src/fontset.c: #include termhooks.h, for FRAME_RIF. (Finternal_char_font): Use the rif of the current frame. src/frame.c (x_set_frame_parameters): Use the rif of the current frame. src/keyboard.c (detect_input_pending_run_timers): Use the rif of the current frame. src/minibuf.c: #include termhooks.h, for FRAME_RIF. (read_minibuf): Use the rif of the current frame. src/term.c (update_begin): Removed rif update hack. src/termhooks.h (FRAME_RIF): New macro. src/xdisp.c (init_iterator, expose_frame): Removed rif update hack. (echo_area_display, x_cursor_to, draw_fringe_bitmap) (try_window_reusing_current_matrix, try_window_id) (get_glyph_face_and_encoding, x_get_glyph_overhangs) (get_char_face_and_encoding, compute_overhangs_and_x, draw_glyphs) (x_produce_glyphs, x_insert_glyphs, x_clear_end_of_line) (erase_phys_cursor, display_and_set_cursor, show_mouse_face) (define_frame_cursor1, x_draw_vertical_border): Use the rif of the current frame. src/xfns.c (Fx_create_frame): Removed rif update hack. src/xterm.c (frame_highlight, frame_unhighlight): Ditto. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-32
author Karoly Lorentey <lorentey@elte.hu>
date Fri, 02 Jan 2004 04:22:23 +0000
parents f0eb34e60705
children 8e5779acd195
line wrap: on
line source

#include "copyright.h"

/* $Header: /cvsroot/emacs/emacs/oldXMenu/FindSel.c,v 1.2 2003/09/01 15:45:47 miles Exp $ */
/* Copyright    Massachusetts Institute of Technology    1985	*/

/*
 * XMenu:	MIT Project Athena, X Window system menu package
 *
 *	XMenuFindSelection - Find the first selection in a pane who's
 *			     label matches a particular string.
 *
 *	Author:		Tony Della Fera, DEC
 *			January 22, 1986
 *
 */

#include "XMenuInt.h"

int
XMenuFindSelection(menu, p_num, label)
    register XMenu *menu;
    int p_num;
    register char *label;
{
    register XMPane *p_ptr;
    register XMSelect *s_ptr;
    register int i = 0;

    /*
     * Check for NULL pointers!
     */
    if (label == NULL) {
	_XMErrorCode = XME_ARG_BOUNDS;
	return(XM_FAILURE);
    }

    /*
     * Find the right pane.
     */
    p_ptr = _XMGetPanePtr(menu, p_num);
    if (p_ptr == NULL) return(XM_FAILURE);

    /*
     * Find the right selection.
     */
    for (
	s_ptr = p_ptr->s_list->next;
	s_ptr != p_ptr->s_list;
	s_ptr = s_ptr->next
    ){
	if (s_ptr->label_length == 0) {
	    if (*label == '\0') {
		_XMErrorCode = XME_NO_ERROR;
		return (i);
	    }
	}
	else {
	    if (strncmp (label, s_ptr->label, s_ptr->label_length) == 0) {
		_XMErrorCode = XME_NO_ERROR;
		return (i);
	    }
	}
	i++;
    }

    /*
     * If we get here then we have not found
     * a match.
     */
    _XMErrorCode = XME_S_NOT_FOUND;
    return (XM_FAILURE);
}

/* arch-tag: 564a4a95-9ab0-4580-b05f-6970c4b25dd4
   (do not change this comment) */