From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 431 invoked by alias); 23 Feb 2002 18:39:25 -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 345 invoked from network); 23 Feb 2002 18:39:22 -0000 Received: from unknown (HELO localhost.redhat.com) (24.112.135.44) by sources.redhat.com with SMTP; 23 Feb 2002 18:39:22 -0000 Received: from cygnus.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 3EB993D32; Sat, 23 Feb 2002 13:39:19 -0500 (EST) Message-ID: <3C77E1D7.9040706@cygnus.com> Date: Sat, 23 Feb 2002 10:39:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:0.9.8) Gecko/20020210 X-Accept-Language: en-us 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; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2002-02/txt/msg00637.txt.bz2 > 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? > > 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 *, >