Mercurial > emacs
view oldXMenu/InsPane.c @ 42829:07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
"Finish Function" menu map entries for jdb mode.
(gud-jdb-use-classpath): New customization variable.
(gud-jdb-command-name): Add customization.
(gud-jdb-classpath, gud-marker-acc-max-length): New variables.
(gud-jdb-classpath-string): New variable.
(gud-jdb-source-files, gud-jdb-class-source-alist): Add doc strings.
(gud-jdb-build-source-files-list): Likewise.
(gud-jdb-massage-args): Record any command argument classpath
string in `gud-jdb-classpath-string'.
(gud-jdb-lowest-stack-level): New function, finds bottom of current
java call stack in jdb output.
(gud-jdb-find-source-using-classpath, gud-jdb-find-source)
(gud-jdb-parse-classpath-string): New functions.
(gud-jdb-marker-filter): Search/detect classpath information in
jdb's output. marker regexp updated to match oldjdb and jdb output
formats. Expand search for source files to include new/old methods
using new functions above. Do not allow `gud-marker-acc' to grow
without bound.
(jdb): Set classpath information (if available) as jdb is started.
Change `gud-break' and `gud-remove'
to use new %c ("class") escape in format strings. Add
`gud-finish', `gud-up', `gud-down' command string functions, and
add them to the local menu map. Update `comint-prompt-regexp' for
jdb and oldjdb. If attaching to an already running java VM and
configured to use classpath, send command to query for classpath,
else use previous method for finding and parsing java
sources. Set `gud-jdb-find-source' function accordingly.
(gud-mode): Doc fix.
(gud-format-command): Add support for new %c ("class") escape.
(gud-find-class): New function in support of %c escape.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 18 Jan 2002 18:57:20 +0000 |
parents | bbce331da1be |
children | 23a1cea22d13 |
line wrap: on
line source
#include "copyright.h" /* $Header: /u/src/emacs/19.0/oldXMenu/RCS/InsPane.c,v 1.1 1992/04/11 22:10:19 jimb Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* * XMenu: MIT Project Athena, X Window system menu package * * XMenuInsertPane - Inserts a pane into an XMenu object in * a particular position. * * Author: Tony Della Fera, DEC * 20-Nov-85 * */ #include <config.h> #include "XMenuInt.h" int XMenuInsertPane(menu, p_num, label, active) register XMenu *menu; /* Menu object to be modified. */ register int p_num; /* Pane number of new pane. */ char *label; /* Selection label. */ int active; /* Make selection active? */ { register XMPane *p_ptr; /* XMPane pointer. */ register XMPane *pane; /* Newly created pane. */ register XMSelect *select; /* Initial selection for the new pane. */ int label_length; /* Label length 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 pane number one less than the one specified since that * is the pane after which the insertion will occur. */ p_ptr = _XMGetPanePtr(menu, (p_num - 1)); if (p_ptr == NULL) return(XM_FAILURE); /* * Calloc the XMPane structure and the initial XMSelect. */ pane = (XMPane *)calloc(1, sizeof(XMPane)); if (pane == NULL) { _XMErrorCode = XME_CALLOC; return(XM_FAILURE); } 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->p_fnt_info, label, label_length); /* * Set up the initial selection. * Values not explicitly set are zeroed by calloc. */ select->next = select; select->prev = select; select->type = SL_HEADER; select->serial = -1; select->parent_p = pane; /* * Fill the XMPane structure. */ pane->type = PANE; pane->active = active; pane->serial = -1; pane->label = label; pane->label_width = label_width; pane->label_length = label_length; pane->s_list = select; /* * Insert the pane after the pane with the pane * number one less than the desired number for the * new pane. */ emacs_insque(pane, p_ptr); /* * Update the pane count. */ menu->p_count++; /* * Schedule a recompute. */ menu->recompute = 1; /* * Return the number of the pane just added. */ _XMErrorCode = XME_NO_ERROR; return(p_num); }