From d4c46125874b11e07d538171aba54de3f82da90f Mon Sep 17 00:00:00 2001 From: tromey Date: Thu, 7 Dec 2000 22:33:27 +0000 Subject: [PATCH] * gdbtk-cmds.c (Gdbtk_Init): Create gdb_current_directory, gdb_inferior_args, and gdb_source_path variables. --- gdb/gdbtk/generic/ChangeLog | 5 +++++ gdb/gdbtk/generic/gdbtk-cmds.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/gdb/gdbtk/generic/ChangeLog b/gdb/gdbtk/generic/ChangeLog index 6fdf075ecd..54033c0628 100644 --- a/gdb/gdbtk/generic/ChangeLog +++ b/gdb/gdbtk/generic/ChangeLog @@ -1,5 +1,10 @@ 2000-11-29 Tom Tromey + * gdbtk-cmds.c (Gdbtk_Init): Create gdb_current_directory, + gdb_inferior_args, and gdb_source_path variables. + +2000-11-29 Tom Tromey + * gdbtk-cmds.c (call_wrapper): Don't reset result if wrapped command returned error. diff --git a/gdb/gdbtk/generic/gdbtk-cmds.c b/gdb/gdbtk/generic/gdbtk-cmds.c index 4e20d08846..c213d38bac 100644 --- a/gdb/gdbtk/generic/gdbtk-cmds.c +++ b/gdb/gdbtk/generic/gdbtk-cmds.c @@ -60,6 +60,12 @@ #include "annotate.h" #include +/* Various globals we reference. */ +extern char *source_path; +/* FIXME: this must be `extern'. But to do that we need a patch to + infcmd.c. */ +static char *inferior_args = ""; + static void setup_architecture_data (void); static int tracepoint_exists (char *args); @@ -418,6 +424,28 @@ Gdbtk_Init (interp) (char *) &gdb_context, TCL_LINK_INT | TCL_LINK_READ_ONLY); + /* Make gdb's notion of the pwd visible. This is read-only because + (1) it doesn't make sense to change it directly and (2) it is + allocated using xmalloc and not Tcl_Alloc. You might think we + could just use the Tcl `pwd' command. However, Tcl (erroneously, + imho) maintains a cache of the current directory name, and + doesn't provide a way for gdb to invalidate the cache. */ + Tcl_LinkVar (interp, "gdb_current_directory", + (char *) ¤t_directory, + TCL_LINK_STRING | TCL_LINK_READ_ONLY); + + /* Current gdb source file search path. This is read-only for + reasons similar to those for gdb_current_directory. */ + Tcl_LinkVar (interp, "gdb_source_path", + (char *) &source_path, + TCL_LINK_STRING | TCL_LINK_READ_ONLY); + + /* Current inferior command-line arguments. This is read-only for + reasons similar to those for gdb_current_directory. */ + Tcl_LinkVar (interp, "gdb_inferior_args", + (char *) &inferior_args, + TCL_LINK_STRING | TCL_LINK_READ_ONLY); + /* Init variable interface... */ if (gdb_variable_init (interp) != TCL_OK) return TCL_ERROR; -- 2.11.0