Mercurial > emacs
view oldXMenu/AddSel.c @ 44466:f200fce92816
ada-mode no longer supports a different
project file per buffer. This was too complex. Instead, there is now
a single active project file at any given time, and the user can switch
the active one through the Ada menu. This revision also provides
better handling of the Windows command line, and the various available
shells on that platform. ada-mode is now fully integrated with the GNU
visual debugger gvd, see http://libre.act-europe.fr.
(ada-prj-default-comp-opt): Use the new GNAT switch -gnatQ. This is only
available with GNAT 3.14.
(ada-prj-gnatfind-switches, ada-cd-command): New variable.
(ada-quote-cmd): New function.
(ada-initialize-runtime-library): Get the location of the actual
runtime the compiler will be using, including support for
cross-platform environments.
(ada-treat-cmd-string): Add support for the new variable
${full_current} add support for debug-pre-cmd and debug-post-cmd, two
commands to run just prior to running the debugger, and just after
starting it. This provide better support for cross-platform and
remote debugging.
(ada-get-absolute-dir): Remove, replace with expand-file-name.
(ada-gdb-application): New parameter executable-name.
(ada-get-ali-file-name): Better handling of separate packages.
Checkin on behalf of the ada-mode maintainer.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 09 Apr 2002 18:54:20 +0000 |
parents | d93b1a9c3c96 |
children | 23a1cea22d13 |
line wrap: on
line source
#include "copyright.h" /* $Header: /gd/gnu/cvsroot/emacs/oldXMenu/AddSel.c,v 1.1 1999/10/03 19:34:52 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* * XMenu: MIT Project Athena, X Window system menu package * * XMenuAddSelection - Adds a selection to an XMenu object. * * Author: Tony Della Fera, DEC * August, 1985 * */ #include <config.h> #include "XMenuInt.h" int XMenuAddSelection(display, menu, p_num, data, label, active, help) Display *display; register XMenu *menu; /* Menu object to be modified. */ register int p_num; /* Pane number to be modified. */ char *data; /* Data value. */ char *label; /* Selection label. */ int active; /* Make selection active? */ char *help; /* Help string */ { register XMPane *pane; /* Pane containing the new selection. */ register XMSelect *select; /* Newly created selection. */ int label_length; /* Label lenght in characters. */ int label_width; /* Label width in pixels. */ /* * Check for NULL pointers! */ if (label == NULL) { _XMErrorCode = XME_ARG_BOUNDS; return(XM_FAILURE); } /* * Find the right pane. */ pane = _XMGetPanePtr(menu, p_num); if (pane == NULL) return(XM_FAILURE); /* * Calloc the XMSelect structure. */ select = (XMSelect *)calloc(1, sizeof(XMSelect)); if (select == NULL) { _XMErrorCode = XME_CALLOC; return(XM_FAILURE); } /* * Determine label size. */ label_length = strlen(label); label_width = XTextWidth(menu->s_fnt_info, label, label_length); /* * Fill the XMSelect structure. */ if (!strcmp (label, "--") || !strcmp (label, "---")) { select->type = SEPARATOR; select->active = 0; } else { select->type = SELECTION; select->active = active; } select->serial = -1; select->label = label; select->label_width = label_width; select->label_length = label_length; select->data = data; select->parent_p = pane; select->help_string = help; /* * Insert the selection at the end of the selection list. */ emacs_insque(select, pane->s_list->prev); /* * Update the selection count. */ pane->s_count++; /* * Schedule a recompute. */ menu->recompute = 1; /* * Return the selection number just added. */ _XMErrorCode = XME_NO_ERROR; return((pane->s_count - 1)); }