Re: [PATCH] Add declarations to gdbtk.h

Mike Wellington <[email protected]> Mon, 7 Oct 2019 16:47:58 -0600
Newsgroups gmane.comp.debugging.insight
Message-ID <CAJdGcHKvWAbdLtKX76dbxQCg9Xowk5RRDCb6STKauUOQFOfJBw@mail.gmail.com>
ok. good point.  not my problem.

On Mon, Oct 7, 2019 at 4:43 PM Christian Biesinger <[email protected]>
wrote:

> The problem is that gdb's main.c has this code:
>       extern int gdbtk_test (char *);
>
>       if (!gdbtk_test (optarg))
>
> and
>       extern char *external_editor_command;
>
>       external_editor_command = xstrdup (optarg);
>
> It should not have to declare functions/variables that are part of
> gdbtk; it should be able to just include a header for that.
>
> (there's no user-visible issue here -- this is code cleanup)
>
> Christian
>
> On Mon, Oct 7, 2019 at 5:40 PM Mike Wellington
> <[email protected]> wrote:
> >
> > So what's the problem?
> >
> > On Mon, Oct 7, 2019, 15:09 Christian Biesinger via insight <
> [email protected]> wrote:
> >>
> >> From: Christian Biesinger <[email protected]>
> >>
> >> Currently, gdb/main.c has to declare these two variables in the
> >> .c file. This patch adds the declarations to the header so that
> >> gdb can just use them.
> >>
> >> gdbtk/ChangeLog:
> >>
> >> 2019-10-07  Christian Biesinger  <[email protected]>
> >>
> >>         * generic/gdbtk.h (gdbtk_test): Declare.
> >>   (external_editor_command): Declare.
> >>   (file): Prefix Tcl_Interp with "struct"
> >>   so that this compiles when Tcl headers aren't included.
> >>   * generic/gdbtk-interp.h:  Likewise.
> >> ---
> >>  gdbtk/generic/gdbtk-interp.h |  2 +-
> >>  gdbtk/generic/gdbtk.h        | 11 +++++++++--
> >>  2 files changed, 10 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/gdbtk/generic/gdbtk-interp.h b/gdbtk/generic/gdbtk-interp.h
> >> index 3126b91..9abad2e 100644
> >> --- a/gdbtk/generic/gdbtk-interp.h
> >> +++ b/gdbtk/generic/gdbtk-interp.h
> >> @@ -53,7 +53,7 @@ public:
> >>    ui_file *_stdtargin;
> >>    ui_out *uiout;
> >>
> >> -  Tcl_Interp *tcl;
> >> +  struct Tcl_Interp *tcl;
> >>  };
> >>
> >>  extern gdbtk_interp *gdbtk_get_interp (void);
> >> diff --git a/gdbtk/generic/gdbtk.h b/gdbtk/generic/gdbtk.h
> >> index 7bb1f79..89ab8bf 100644
> >> --- a/gdbtk/generic/gdbtk.h
> >> +++ b/gdbtk/generic/gdbtk.h
> >> @@ -77,6 +77,12 @@ extern int running_now;
> >>
> >>  extern long gdbtk_pid;
> >>
> >> +/*
> >> + * This variable controls the interaction with an external editor.
> >> + */
> >> +
> >> +extern char *external_editor_command;
> >> +
> >>  /* These two control how the GUI behaves when tracing or loading
> >>     They are defined in gdbtk-cmds.c */
> >>
> >> @@ -91,7 +97,7 @@ extern int load_in_progress;
> >>
> >>  typedef struct gdbtk_result
> >>    {
> >> -    Tcl_Obj *obj_ptr;          /* This will eventually be copied over
> to the
> >> +    struct Tcl_Obj *obj_ptr;           /* This will eventually be
> copied over to the
> >>                                    Tcl result */
> >>      int flags;                 /* Flag vector to control how the
> result is
> >>                                    used. */
> >> @@ -151,7 +157,7 @@ extern int gdbtk_force_detach;
> >>   *
> >>   */
> >>
> >> -extern int Gdbtk_Init (Tcl_Interp * interp);
> >> +extern int Gdbtk_Init (struct Tcl_Interp * interp);
> >>  extern void gdbtk_stop_timer (void);
> >>  extern void gdbtk_start_timer (void);
> >>  extern long gdbtk_getpid(void);
> >> @@ -159,6 +165,7 @@ extern void gdbtk_ignorable_warning (const char *,
> const char *);
> >>  extern int x_event (int);
> >>  extern int gdbtk_two_elem_cmd (char *, const char *);
> >>  extern int target_is_native (struct target_ops *t);
> >> +extern int gdbtk_test (char *);
> >>  extern struct ui_file *gdbtk_fileopen (void);
> >>  extern bool gdbtk_disable_write;
> >>  extern ptid_t gdbtk_get_ptid (void);
> >> --
> >> 2.23.0.581.g78d2f28ef7-goog
> >>
>