* gdb-events.sh (clear_gdb_event_hooks): New function.
* gdb-events.c: Regenerate.
* gdb-events.h: Regenerate.
* cli-out.h (cli_out_set_stream): New function.
* cli-out.c (cli_out_set_stream): New function.
* interps.c: Include gdb-events.h.
(clear_interpreter_hooks): Also clear out event handlers.
(gdb_set_interpreter): Clear out any hooks/event handlers that
may have been installed by old interpreter.
* cli/cli-interp.c (cli_interpreter_exec): Set the stream for the
cli's uiout to gdb_stdout, which has probably changed from it's
initialization. Restore the original stream when we're done executing
in the interpreter.
+2002-06-24 Keith Seitz <keiths@redhat.com>
+
+ * Makefile.in (interps.o): Add gdb-events.h as a dependency.
+
+ * gdb-events.sh (clear_gdb_event_hooks): New function.
+ * gdb-events.c: Regenerate.
+ * gdb-events.h: Regenerate.
+
+ * cli-out.h (cli_out_set_stream): New function.
+ * cli-out.c (cli_out_set_stream): New function.
+
+ * interps.c: Include gdb-events.h.
+ (clear_interpreter_hooks): Also clear out event handlers.
+ (gdb_set_interpreter): Clear out any hooks/event handlers that
+ may have been installed by old interpreter.
+
+ * cli/cli-interp.c (cli_interpreter_exec): Set the stream for the
+ cli's uiout to gdb_stdout, which has probably changed from it's
+ initialization. Restore the original stream when we're done executing
+ in the interpreter.
+
2002-06-18 Keith Seitz <keiths@redhat.com>
* breakpoint.c (internal_breakpoint_number): Make static global.
ui-out.o: ui-out.c $(defs_h) $(ui_out_h) $(expression_h) $(language_h)
cli-out.o: cli-out.c $(defs_h) $(ui_out_h) $(cli_out_h) $(interps_h)
-inters.o: interps.c $(defs_h) $(gdbcmd_h) $(ui_out_h) $(event_loop_h) \
- $(event_top_h) $(interps_h) $(gdb_h) $(wrapper_h)
+interps.o: interps.c $(defs_h) $(gdbcmd_h) $(ui_out_h) $(event_loop_h) \
+ $(event_top_h) $(interps_h) $(gdb_h) $(wrapper_h) $(gdb_events_h)
varobj.o: varobj.c $(defs_h) $(frame_h) $(value_h) \
$(language_h) $(valprint_h) $(varobj_h) $(wrapper_h)
return ui_out_new (&cli_ui_out_impl, data, flags);
}
+struct ui_file *
+cli_out_set_stream (struct ui_out *uiout, struct ui_file *stream)
+{
+ struct ui_out_data *data = ui_out_data (uiout);
+ struct ui_file *old = data->stream;
+ data->stream = stream;
+ return old;
+}
+
/* standard gdb initialization hook */
void
_initialize_cli_out (void)
#define CLI_OUT_H
extern struct ui_out *cli_out_new (struct ui_file *stream);
-
+extern struct ui_file *cli_out_set_stream (struct ui_out *uiout,
+ struct ui_file *stream);
#endif
}
#endif
+#if WITH_GDB_EVENTS
+void
+clear_gdb_event_hooks (void)
+{
+ set_gdb_event_hooks (&null_event_hooks);
+}
+#endif
+
enum gdb_event
{
breakpoint_create,
/* Deliver any pending events. */
extern void gdb_events_deliver (struct gdb_events *vector);
+/* Clear event handlers */
+extern void clear_gdb_event_hooks (void);
+
#if !WITH_GDB_EVENTS
#define set_gdb_events(x) 0
#define set_gdb_event_hooks(x) 0
/* Deliver any pending events. */
extern void gdb_events_deliver (struct gdb_events *vector);
+/* Clear event handlers */
+extern void clear_gdb_event_hooks (void);
+
#if !WITH_GDB_EVENTS
#define set_gdb_events(x) 0
#define set_gdb_event_hooks(x) 0
#endif
EOF
+# Clear hooks function
+echo ""
+cat <<EOF
+#if WITH_GDB_EVENTS
+void
+clear_gdb_event_hooks (void)
+{
+ set_gdb_event_hooks (&null_event_hooks);
+}
+#endif
+EOF
+
# event type
echo ""
cat <<EOF
#include "interps.h"
#include "completer.h"
#include "gdb_string.h"
+#include "gdb-events.h"
struct gdb_interpreter
{
}
}
+ /* Clear out any installed interpreter hooks/event handlers. */
+ clear_interpreter_hooks ();
+
if (interp->procs.resume_proc != NULL
&& (!interp->procs.resume_proc (interp->data)))
{
error_hook = 0;
error_begin_hook = 0;
command_loop_hook = 0;
+ clear_gdb_event_hooks ();
}
/* This is a lazy init routine, called the first time