#include "cli/cli-cmds.h"
#include "cli/cli-script.h"
#include "cli/cli-setshow.h"
+#include "cli/cli-decode.h"
#include "symtab.h"
#include "inferior.h"
#include <signal.h>
int (*ui_loop_hook) (int);
/* Called instead of command_loop at top level. Can be invoked via
- return_to_top_level. */
+ throw_exception(). */
void (*command_loop_hook) (void);
#define SIGLONGJMP(buf,val) longjmp((buf), (val))
#endif
-/* Where to go for return_to_top_level. */
+/* Where to go for throw_exception(). */
static SIGJMP_BUF *catch_return;
/* Return for reason REASON to the nearest containing catch_errors(). */
NORETURN void
-return_to_top_level (enum return_reason reason)
+throw_exception (enum return_reason reason)
{
quit_flag = 0;
immediate_quit = 0;
/* Call FUNC() with args FUNC_UIOUT and FUNC_ARGS, catching any
errors. Set FUNC_CAUGHT to an ``enum return_reason'' if the
- function is aborted (using return_to_top_level() or zero if the
+ function is aborted (using throw_exception() or zero if the
function returns normally. Set FUNC_VAL to the value returned by
the function or 0 if the function was aborted.
/* The caller didn't request that the event be caught, relay the
event to the next containing catch_errors(). */
- return_to_top_level (caught);
+ throw_exception (caught);
}
int
command. */
if (arg
&& c->type != set_cmd
- && !is_complete_command (c->function.cfunc))
+ && !is_complete_command (c))
{
p = arg + strlen (arg) - 1;
while (p >= arg && (*p == ' ' || *p == '\t'))
}
/* If this command has been pre-hooked, run the hook first. */
- if ((c->hook_pre) && (!c->hook_in))
- {
- c->hook_in = 1; /* Prevent recursive hooking */
- execute_user_command (c->hook_pre, (char *) 0);
- c->hook_in = 0; /* Allow hook to work again once it is complete */
- }
+ execute_cmd_pre_hook (c);
if (c->flags & DEPRECATED_WARN_USER)
deprecated_cmd_warning (&line);
(*c->func) (c, arg, from_tty & caution);
/* If this command has been post-hooked, run the hook last. */
- if ((c->hook_post) && (!c->hook_in))
- {
- c->hook_in = 1; /* Prevent recursive hooking */
- execute_user_command (c->hook_post, (char *) 0);
- c->hook_in = 0; /* allow hook to work again once it is complete */
- }
+ execute_cmd_post_hook (c);
}
if (*promptp != gdb_prompt_escape)
error ("Syntax error at prompt position %d",
- promptp - local_prompt);
+ (int) (promptp - local_prompt));
else
{
promptp++; /* skip second escape char */
break; /* void type -- no output */
default:
error ("bad data type at prompt position %d",
- promptp - local_prompt);
+ (int) (promptp - local_prompt));
break;
}
outp += strlen (outp);
&showhistlist);
c = add_set_cmd ("size", no_class, var_integer, (char *) &history_size,
- "Set the size of the command history, \n\
+ "Set the size of the command history,\n\
ie. the number of previous commands to keep a record of.", &sethistlist);
add_show_from_set (c, &showhistlist);
set_cmd_sfunc (c, set_history_size_command);
c = add_set_cmd ("filename", no_class, var_filename,
(char *) &history_filename,
"Set the filename in which to record the command history\n\
- (the list of previous commands of which a record is kept).", &sethistlist);
- c->completer = filename_completer;
+(the list of previous commands of which a record is kept).", &sethistlist);
+ set_cmd_completer (c, filename_completer);
add_show_from_set (c, &showhistlist);
add_show_from_set