0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

updated for version 7.0094

This commit is contained in:
Bram Moolenaar
2005-06-26 22:34:35 +00:00
parent 80b29f273d
commit d9fba318b8
5 changed files with 281 additions and 36 deletions

View File

@@ -591,7 +591,7 @@ ex_debuggreedy(eap)
}
/*
* ":breakdel".
* ":breakdel" and ":profdel".
*/
void
ex_breakdel(eap)
@@ -603,13 +603,20 @@ ex_breakdel(eap)
int del_all = FALSE;
int i;
linenr_T best_lnum = 0;
garray_T *gap;
gap = &dbg_breakp;
#ifdef FEAT_PROFILE
if (eap->cmdidx == CMD_profdel)
gap = &prof_ga;
#endif
if (vim_isdigit(*eap->arg))
{
/* ":breakdel {nr}" */
nr = atol((char *)eap->arg);
for (i = 0; i < dbg_breakp.ga_len; ++i)
if (BREAKP(i).dbg_nr == nr)
for (i = 0; i < gap->ga_len; ++i)
if (DEBUGGY(gap, i).dbg_nr == nr)
{
todel = i;
break;
@@ -623,12 +630,12 @@ ex_breakdel(eap)
else
{
/* ":breakdel {func|file} [lnum] {name}" */
if (dbg_parsearg(eap->arg, &dbg_breakp) == FAIL)
if (dbg_parsearg(eap->arg, gap) == FAIL)
return;
bp = &BREAKP(dbg_breakp.ga_len);
for (i = 0; i < dbg_breakp.ga_len; ++i)
bp = &DEBUGGY(gap, gap->ga_len);
for (i = 0; i < gap->ga_len; ++i)
{
bpi = &BREAKP(i);
bpi = &DEBUGGY(gap, i);
if (bp->dbg_type == bpi->dbg_type
&& STRCMP(bp->dbg_name, bpi->dbg_name) == 0
&& (bp->dbg_lnum == bpi->dbg_lnum
@@ -646,18 +653,27 @@ ex_breakdel(eap)
if (todel < 0)
EMSG2(_("E161: Breakpoint not found: %s"), eap->arg);
else
while (dbg_breakp.ga_len > 0)
{
while (gap->ga_len > 0)
{
vim_free(BREAKP(todel).dbg_name);
vim_free(BREAKP(todel).dbg_prog);
--dbg_breakp.ga_len;
if (todel < dbg_breakp.ga_len)
mch_memmove(&BREAKP(todel), &BREAKP(todel + 1),
(dbg_breakp.ga_len - todel) * sizeof(struct debuggy));
++debug_tick;
vim_free(DEBUGGY(gap, todel).dbg_name);
vim_free(DEBUGGY(gap, todel).dbg_prog);
--gap->ga_len;
if (todel < gap->ga_len)
mch_memmove(&DEBUGGY(gap, todel), &DEBUGGY(gap, todel + 1),
(gap->ga_len - todel) * sizeof(struct debuggy));
#ifdef FEAT_PROFILE
if (eap->cmdidx == CMD_breakdel)
#endif
++debug_tick;
if (!del_all)
break;
}
/* If all breakpoints were removed clear the array. */
if (gap->ga_len == 0)
ga_clear(gap);
}
}
/*