This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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);
>  >  }
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]