view oldXMenu/DelSel.c @ 25986:29aeb35781cd

Added support for indenting existing scripts. (sh-mode-map): Added new bindings. (sh-mode): Updated mode doc-string for new commands, added make-local-variable calls, initialize mode-specific variables. (sh-indent-line): Renamed to sh-basic-indent-line; sh-indent-line is now a different function. (sh-header-marker): Changed docstring. (sh-set-shell): Initialize mode-specific variables. (sh-case, sh-for, sh-if, sh-indexed-loop, sh-repeat, sh-select) (sh-tmp-file, sh-until, sh-until, sh-while, sh-while-getopts): Changed these define-skeleton calls to work with user-specified indentation settings. (sh-basic-indent-line, sh-blink, sh-calculate-indent) (sh-check-paren-in-case, sh-check-rule, sh-do-nothing) (sh-electric-hash, sh-electric-less, sh-electric-rparen) (sh-find-prev-matching, sh-find-prev-switch, sh-get-indent-info) (sh-get-indent-var-for-line, sh-get-kw, sh-get-word) (sh-goto-match-for-done, sh-goto-matching-case, sh-goto-matching-if) (sh-guess-basic-offset, sh-handle-after-case-label) (sh-handle-prev-case, sh-handle-prev-case-alt-end, sh-handle-prev-do) (sh-handle-prev-done, sh-handle-prev-else, sh-handle-prev-esac) (sh-handle-prev-fi, sh-handle-prev-if, sh-handle-prev-open) (sh-handle-prev-rc-case, sh-handle-prev-then, sh-handle-this-close) (sh-handle-this-do, sh-handle-this-done, sh-handle-this-else) (sh-handle-this-esac, sh-handle-this-fi, sh-handle-this-rc-case) (sh-handle-this-then, sh-help-string-for-variable) (sh-in-comment-or-string, sh-indent-line, sh-learn-buffer-indent) (sh-learn-line-indent, sh-load-style, sh-make-vars-local, sh-mark-init) (sh-mark-line, sh-mkword-regexpr, sh-mkword-regexp) (sh-must-be-shell-mode, sh-must-support-indent, sh-name-style) (sh-prev-line, sh-prev-stmt, sh-prev-thing, sh-read-variable) (sh-remove-our-text-properties, sh-rescan-buffer) (sh-reset-indent-vars-to-global-values, sh-safe-backward-sexp) (sh-safe-forward-sexp, sh-save-styles-to-buffer, sh-scan-buffer) (sh-scan-case, sh-search-word, sh-set-char-syntax) (sh-set-here-doc-region, sh-set-indent, sh-set-var-value) (sh-show-indent, sh-this-is-a-continuation, sh-var-value): New functions. (sh-debug, sh-electric-rparen-needed, sh-here-doc-syntax) (sh-indent-supported, sh-kw, sh-kw-alist, sh-kws-for-done) (sh-learned-buffer-hook, sh-make-vars-local, sh-regexp-for-done) (sh-special-keywords, sh-special-syntax, sh-st-punc, sh-styles-alist) (sh-var-list): New variables.
author Gerd Moellmann <gerd@gnu.org>
date Tue, 12 Oct 1999 12:30:38 +0000
parents bbce331da1be
children 23a1cea22d13
line wrap: on
line source

#include "copyright.h"

/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/DelSel.c,v 1.1 1992/04/11 22:10:18 jimb Exp $ */
/* Copyright    Massachusetts Institute of Technology    1985	*/

/*
 * XMenu:	MIT Project Athena, X Window system menu package
 *
 * 	XMenuDeleteSelection - Deletes a selection from an XMenu object.
 *
 *	Author:		Tony Della Fera, DEC
 *			20-Nov-85
 *
 */

#include "XMenuInt.h"

int
XMenuDeleteSelection(display, menu, p_num, s_num)
    register Display *display;	/* Previously opened display. */
    register XMenu *menu;	/* Menu object to be modified. */
    register int p_num;		/* Pane number to be deleted. */
    register int s_num;		/* Selection number to be deleted. */
{
    register XMPane *p_ptr;	/* Pointer to pane being deleted. */
    register XMSelect *s_ptr;	/* Pointer to selections being deleted. */
        
    /*
     * Find the right pane.
     */
    p_ptr = _XMGetPanePtr(menu, p_num);
    if (p_ptr == NULL) return(XM_FAILURE);

    /*
     * Find the right selection.
     */
    s_ptr = _XMGetSelectionPtr(p_ptr, s_num);
    if (s_ptr == NULL) return(XM_FAILURE);

    /*
     * Remove the selection from the association table.
     */
    XDeleteAssoc(display, menu->assoc_tab, s_ptr->window);

    /*
     * Remove the selection from the parent pane's selection
     * list and update the selection count.
     */
    emacs_remque(s_ptr);
    p_ptr->s_count--;

    /*
     * Destroy the selection transparency.
     */
    if (s_ptr->window) XDestroyWindow(display, s_ptr->window);
    
    /*
     * Free the selection's XMSelect structure.
     */
    free(s_ptr);

    /*
     * Schedule a recompute.
     */
    menu->recompute = 1;

    /*
     * Return the selection number just deleted.
     */
    _XMErrorCode = XME_NO_ERROR;
    return(s_num);
}