This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] top.c: initialize other UIs before cli
- From: Keith Seitz <keiths at cygnus dot com>
- To: <gdb-patches at sources dot redhat dot com>
- Date: Tue, 20 Nov 2001 08:54:50 -0800 (PST)
- Subject: Re: [RFA] top.c: initialize other UIs before cli
On Tue, 20 Nov 2001, Elena Zannoni wrote:
> Keith Seitz writes:
> > Sorry for the self-reply, but I didn't add any comments on this little
> > hack...
> >
> > Reposted below.
> >
>
> Whoops. Sorry Keith, I approved it w/o cc-ing the list.
>
> For the record, approved.
Committed.
Thanks!
Keith
> > On Mon, 19 Nov 2001, Keith Seitz wrote:
> >
> > > Hi,
> > >
> > > There is currently a little problem with init_ui_hook: if the UI fails to
> > > initialize (and we should fall back to "gdb -nw"), then the CLI will NOT
> > > get initialized properly.
> > >
> > > This results because init_ui_hook does not return any status indicating
> > > the failure.
> > >
> > > This simple change will correct this anomaly without altering init_ui_hook
> > > semantics, i.e., it is absolutely the least intrusive.
> > >
> > > ?
> > > Keith
> > >
> > > ChangeLog
> > > 2001-11-19 Keith Seitz <keiths@redhat.com>
> > >
> > > * top.c (gdb_init): Call init_ui_hook before initializing
> > > the default UI.
> > >
> > > Patch
> > Index: top.c
> > ===================================================================
> > RCS file: /cvs/src/src/gdb/top.c,v
> > retrieving revision 1.48
> > diff -u -p -r1.48 top.c
> > --- top.c 2001/11/10 21:34:56 1.48
> > +++ top.c 2001/11/19 21:01:02
> > @@ -182,8 +182,11 @@ static void stop_sig (int);
> > /* Hooks for alternate command interfaces. */
> >
> > /* Called after most modules have been initialized, but before taking users
> > - command file. */
> > + command file.
> >
> > + If the UI fails to initialize and it wants GDB to continue
> > + using the default UI, then it should clear this hook before returning. */
> > +
> > void (*init_ui_hook) (char *argv0);
> >
> > /* This hook is called from within gdb's many mini-event loops which could
> > @@ -2034,6 +2037,11 @@ gdb_init (char *argv0)
> > set_language (language_c);
> > expected_language = current_language; /* don't warn about the change. */
> >
> > + /* Allow another UI to initialize. If the UI fails to initialize, and
> > + it wants GDB to revert to the CLI, it should clear init_ui_hook. */
> > + if (init_ui_hook)
> > + init_ui_hook (argv0);
> > +
> > #ifdef UI_OUT
> > /* Install the default UI */
> > if (!init_ui_hook)
> > @@ -2050,7 +2058,4 @@ gdb_init (char *argv0)
> > }
> > }
> > #endif
> > -
> > - if (init_ui_hook)
> > - init_ui_hook (argv0);
> > }
>