From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21570 invoked by alias); 23 Feb 2002 18:57:22 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 21308 invoked from network); 23 Feb 2002 18:57:17 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sources.redhat.com with SMTP; 23 Feb 2002 18:57:17 -0000 Received: from redhat.com (rtl.cygnus.com [205.180.230.21]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id KAA20717; Sat, 23 Feb 2002 10:57:13 -0800 (PST) Message-ID: <3C77E5DD.E6A8EEDF@redhat.com> Date: Sat, 23 Feb 2002 10:57:00 -0000 From: Fernando Nasser Organization: Red Hat Canada X-Mailer: Mozilla 4.78 [en] (X11; U; Linux 2.4.9-21 i686) X-Accept-Language: en MIME-Version: 1.0 To: Andrew Cagney CC: gdb-patches@sources.redhat.com Subject: Re: [rfa:cli] More c->function.cfunc zapping References: <3C6730AA.5000108@cygnus.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2002-02/txt/msg00638.txt.bz2 Andrew Cagney wrote: > > Hello, > > This patch zaps a few more instances of function.cfunc in the core-code. > It isn't elegant but hopefully it is better than the existing code. > > Ok? > This a follow-up from your previous changes, right? They became "obvious" I guess. I would prefer that you call cmd_cfunc_eq_hack -> cmd_cfunc_eq and note that it is a hack in a comment, FIXME or whatever though. Thanks for the clean-ups. Fernando > Andrew > > ------------------------------------------------------------------------ > 2002-02-10 Andrew Cagney > > * cli/cli-decode.c (cmd_cfunc_eq_hack): New function. > * command.h (cmd_cfunc_eq_hack): Declare. > * cli/cli-decode.h (cmd_func_eq_hack): Ditto. > > * cli/cli-cmds.h (is_complete_command): Change parameter to a > ``struct cmd_list_element *''. > * cli/cli-cmds.c (is_complete_command): Update. Use > cmd_func_eq_hack. > * top.c (execute_command): Pass the command to > is_complete_command. > * tracepoint.c: Replace function.cfunc with cmd_func_eq_hack. > > Index: command.h > =================================================================== > RCS file: /cvs/src/src/gdb/command.h,v > retrieving revision 1.22 > diff -u -r1.22 command.h > --- command.h 2002/02/05 04:37:21 1.22 > +++ command.h 2002/02/11 02:42:55 > @@ -292,6 +292,9 @@ > void (*sfunc) (char *args, int from_tty, > struct cmd_list_element * c)); > > +/* HACK: Code grubs around in cmd objects to test the sfunc(). */ > +extern int cmd_cfunc_eq_hack (struct cmd_list_element *cmd, > + void (*cfunc) (char *args, int from_tty)); > > extern struct cmd_list_element *lookup_cmd (char **, > struct cmd_list_element *, char *, > Index: top.c > =================================================================== > RCS file: /cvs/src/src/gdb/top.c,v > retrieving revision 1.56 > diff -u -r1.56 top.c > --- top.c 2002/02/10 04:08:42 1.56 > +++ top.c 2002/02/11 02:43:12 > @@ -684,7 +684,7 @@ > command. */ > if (arg > && c->type != set_cmd > - && !is_complete_command (c->function.cfunc)) > + && !is_complete_command (c)) > { > p = arg + strlen (arg) - 1; > while (p >= arg && (*p == ' ' || *p == '\t')) > Index: tracepoint.c > =================================================================== > RCS file: /cvs/src/src/gdb/tracepoint.c,v > retrieving revision 1.32 > diff -u -r1.32 tracepoint.c > --- tracepoint.c 2002/02/05 04:37:22 1.32 > +++ tracepoint.c 2002/02/11 02:43:14 > @@ -939,7 +939,7 @@ > return BADLINE; > } > > - if (c->function.cfunc == collect_pseudocommand) > + if (cmd_cfunc_eq_hack (c, collect_pseudocommand)) > { > struct agent_expr *aexpr; > struct agent_reqs areqs; > @@ -1006,7 +1006,7 @@ > while (p && *p++ == ','); > return GENERIC; > } > - else if (c->function.cfunc == while_stepping_pseudocommand) > + else if (cmd_cfunc_eq_hack (c, while_stepping_pseudocommand)) > { > char *steparg; /* in case warning is necessary */ > > @@ -1022,7 +1022,7 @@ > } > return STEPPING; > } > - else if (c->function.cfunc == end_actions_pseudocommand) > + else if (cmd_cfunc_eq_hack (c, end_actions_pseudocommand)) > return END; > else > { > @@ -1520,7 +1520,7 @@ > if (cmd == 0) > error ("Bad action list item: %s", action_exp); > > - if (cmd->function.cfunc == collect_pseudocommand) > + if (cmd_cfunc_eq_hack (cmd, collect_pseudocommand)) > { > do > { /* repeat over a comma-separated list */ > @@ -1630,11 +1630,11 @@ > } > while (action_exp && *action_exp++ == ','); > } /* if */ > - else if (cmd->function.cfunc == while_stepping_pseudocommand) > + else if (cmd_cfunc_eq_hack (cmd, while_stepping_pseudocommand)) > { > collect = &stepping_list; > } > - else if (cmd->function.cfunc == end_actions_pseudocommand) > + else if (cmd_cfunc_eq_hack (cmd, end_actions_pseudocommand)) > { > if (collect == &stepping_list) /* end stepping actions */ > collect = &tracepoint_list; > @@ -2315,9 +2315,9 @@ > cmd = lookup_cmd (&actionline, cmdlist, "", -1, 1); > if (cmd == 0) > error ("Bad action list item: %s", actionline); > - if (cmd->function.cfunc == while_stepping_pseudocommand) > + if (cmd_cfunc_eq_hack (cmd, while_stepping_pseudocommand)) > indent = i2; > - else if (cmd->function.cfunc == end_actions_pseudocommand) > + else if (cmd_cfunc_eq_hack (cmd, end_actions_pseudocommand)) > indent = i1; > } > } > @@ -2534,11 +2534,11 @@ > if (cmd == 0) > error ("Bad action list item: %s", action_exp); > > - if (cmd->function.cfunc == while_stepping_pseudocommand) > + if (cmd_cfunc_eq_hack (cmd, while_stepping_pseudocommand)) > stepping_actions = 1; > - else if (cmd->function.cfunc == end_actions_pseudocommand) > + else if (cmd_cfunc_eq_hack (cmd, end_actions_pseudocommand)) > stepping_actions = 0; > - else if (cmd->function.cfunc == collect_pseudocommand) > + else if (cmd_cfunc_eq_hack (cmd, collect_pseudocommand)) > { > /* Display the collected data. > For the trap frame, display only what was collected at the trap. > Index: cli/cli-cmds.c > =================================================================== > RCS file: /cvs/src/src/gdb/cli/cli-cmds.c,v > retrieving revision 1.14 > diff -u -r1.14 cli-cmds.c > --- cli-cmds.c 2002/02/05 04:37:23 1.14 > +++ cli-cmds.c 2002/02/11 02:43:14 > @@ -226,9 +226,10 @@ > } > } > > -int is_complete_command (void (*func) (char *args, int from_tty)) > +int > +is_complete_command (struct cmd_list_element *c) > { > - return func == complete_command; > + return cmd_cfunc_eq_hack (c, complete_command); > } > > /* ARGSUSED */ > Index: cli/cli-cmds.h > =================================================================== > RCS file: /cvs/src/src/gdb/cli/cli-cmds.h,v > retrieving revision 1.2 > diff -u -r1.2 cli-cmds.h > --- cli-cmds.h 2001/03/06 08:21:19 1.2 > +++ cli-cmds.h 2002/02/11 02:43:14 > @@ -105,7 +105,7 @@ > > void init_cli_cmds (void); > > -int is_complete_command (void (*func) (char *args, int from_tty)); > +int is_complete_command (struct cmd_list_element *cmd); > > /* Exported to gdb/main.c */ > > Index: cli/cli-decode.c > =================================================================== > RCS file: /cvs/src/src/gdb/cli/cli-decode.c,v > retrieving revision 1.13 > diff -u -r1.13 cli-decode.c > --- cli-decode.c 2002/02/05 04:37:23 1.13 > +++ cli-decode.c 2002/02/11 02:43:36 > @@ -79,6 +79,13 @@ > cmd->function.sfunc = sfunc; /* Ok. */ > } > > +int > +cmd_cfunc_eq_hack (struct cmd_list_element *cmd, > + void (*cfunc) (char *args, int from_tty)) > +{ > + return cmd->func == do_cfunc && cmd->function.cfunc == cfunc; > +} > + > > /* Add element named NAME. > CLASS is the top level category into which commands are broken down > Index: cli/cli-decode.h > =================================================================== > RCS file: /cvs/src/src/gdb/cli/cli-decode.h,v > retrieving revision 1.7 > diff -u -r1.7 cli-decode.h > --- cli-decode.h 2002/02/05 04:37:23 1.7 > +++ cli-decode.h 2002/02/11 02:43:37 > @@ -286,6 +286,9 @@ > void (*sfunc) (char *args, int from_tty, > struct cmd_list_element * c)); > > +/* HACK: Code grubs around in cmd objects to test the sfunc(). */ > +extern int cmd_cfunc_eq_hack (struct cmd_list_element *cmd, > + void (*cfunc) (char *args, int from_tty)); > > extern struct cmd_list_element *lookup_cmd (char **, > struct cmd_list_element *, char *, -- Fernando Nasser Red Hat Canada Ltd. E-Mail: fnasser@redhat.com 2323 Yonge Street, Suite #300 Toronto, Ontario M4P 2C9