cmdbreak.c: unify delete/enable/disable via dbgcmd_set_breakpoint()

The three commands shared identical dispatch logic. Extract a
shared dbgcmd_set_breakpoint() that takes function pointers,
reducing each command to a one-line wrapper.

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Yukihiro "Matz" Matsumoto
2026-02-24 09:01:19 +09:00
parent 2c21e1a959
commit 811741eb8e
@@ -397,40 +397,30 @@ dbgcmd_info_break(mrb_state *mrb, mrdb_state *mrdb)
return DBGST_PROMPT;
}
static dbgcmd_state
dbgcmd_set_breakpoint(mrb_state *mrb, mrdb_state *mrdb,
all_command_func all_func, select_command_func select_func)
{
if (!exe_set_command_all(mrb, mrdb, all_func)) {
exe_set_command_select(mrb, mrdb, select_func);
}
return DBGST_PROMPT;
}
dbgcmd_state
dbgcmd_delete(mrb_state *mrb, mrdb_state *mrdb)
{
mrb_bool ret = FALSE;
ret = exe_set_command_all(mrb, mrdb, mrb_debug_delete_break_all);
if (ret != TRUE) {
exe_set_command_select(mrb, mrdb, mrb_debug_delete_break);
}
return DBGST_PROMPT;
return dbgcmd_set_breakpoint(mrb, mrdb, mrb_debug_delete_break_all, mrb_debug_delete_break);
}
dbgcmd_state
dbgcmd_enable(mrb_state *mrb, mrdb_state *mrdb)
{
mrb_bool ret = FALSE;
ret = exe_set_command_all(mrb, mrdb, mrb_debug_enable_break_all);
if (ret != TRUE) {
exe_set_command_select(mrb, mrdb, mrb_debug_enable_break);
}
return DBGST_PROMPT;
return dbgcmd_set_breakpoint(mrb, mrdb, mrb_debug_enable_break_all, mrb_debug_enable_break);
}
dbgcmd_state
dbgcmd_disable(mrb_state *mrb, mrdb_state *mrdb)
{
mrb_bool ret = FALSE;
ret = exe_set_command_all(mrb, mrdb, mrb_debug_disable_break_all);
if (ret != TRUE) {
exe_set_command_select(mrb, mrdb, mrb_debug_disable_break);
}
return DBGST_PROMPT;
return dbgcmd_set_breakpoint(mrb, mrdb, mrb_debug_disable_break_all, mrb_debug_disable_break);
}