* RFA: avoid deprecated_set_hook
@ 2014-01-09 17:56 Tom Tromey
2014-01-09 18:43 ` Keith Seitz
0 siblings, 1 reply; 2+ messages in thread
From: Tom Tromey @ 2014-01-09 17:56 UTC (permalink / raw)
To: Insight List
Insight is the last user of deprecated_set_hook.
I'd like to remove that.
This patch changes Insight to use the command_param_changed observer
instead. I think this is equivalent, and in fact simplifies the code.
I tested this by running Insight on /bin/cat and then changing the
disassembly flavor. This was the only user of the param-changing event
that I could see in the tree.
Ok?
Tom
2014-01-09 Tom Tromey <tromey@redhat.com>
* generic/gdbtk-hooks.c (gdbtk_add_hooks): Use
command_param_changed observer, not deprecated_set_hook.
(gdbtk_param_changed): Rename from gdbtk_set_hook. Simplify.
Index: generic/gdbtk-hooks.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-hooks.c,v
retrieving revision 1.60
diff -u -r1.60 gdbtk-hooks.c
--- generic/gdbtk-hooks.c 2 Jul 2013 17:07:29 -0000 1.60
+++ generic/gdbtk-hooks.c 9 Jan 2014 17:54:26 -0000
@@ -1,7 +1,7 @@
/* Startup code for Insight.
Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 200, 2002, 2003, 2004,
- 2008, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+ 2008, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
Written by Stu Grossman <grossman@cygnus.com> of Cygnus Support.
@@ -98,7 +98,7 @@
static void gdbtk_error_begin (void);
void report_error (void);
static void gdbtk_annotate_signal (void);
-static void gdbtk_set_hook (struct cmd_list_element *cmdblk);
+static void gdbtk_param_changed (const char *, const char *);
/*
* gdbtk_fputs can't be static, because we need to call it in gdbtk.c.
@@ -125,10 +125,10 @@
observer_attach_breakpoint_deleted (gdbtk_delete_breakpoint);
observer_attach_architecture_changed (gdbtk_architecture_changed);
observer_attach_memory_changed (gdbtk_memory_changed);
+ observer_attach_command_param_changed (gdbtk_param_changed);
/* Hooks */
deprecated_call_command_hook = gdbtk_call_command;
- deprecated_set_hook = gdbtk_set_hook;
deprecated_readline_begin_hook = gdbtk_readline_begin;
deprecated_readline_hook = gdbtk_readline;
deprecated_readline_end_hook = gdbtk_readline_end;
@@ -547,66 +547,16 @@
the first argument and the new value as the second argument. */
static void
-gdbtk_set_hook (struct cmd_list_element *cmdblk)
+gdbtk_param_changed (const char *param, const char *value)
{
Tcl_DString cmd;
- char *p;
char *buffer = NULL;
Tcl_DStringInit (&cmd);
Tcl_DStringAppendElement (&cmd, "gdbtk_tcl_set_variable");
- /* Append variable name as sublist. */
- Tcl_DStringStartSublist (&cmd);
- p = cmdblk->prefixname;
- while (p && *p)
- {
- char *q = strchr (p, ' ');
- char save = '\0';
- if (q)
- {
- save = *q;
- *q = '\0';
- }
- Tcl_DStringAppendElement (&cmd, p);
- if (q)
- *q = save;
- p = q + 1;
- }
- Tcl_DStringAppendElement (&cmd, cmdblk->name);
- Tcl_DStringEndSublist (&cmd);
-
- switch (cmdblk->var_type)
- {
- case var_string_noescape:
- case var_filename:
- case var_enum:
- case var_string:
- Tcl_DStringAppendElement (&cmd, (*(char **) cmdblk->var
- ? *(char **) cmdblk->var
- : "(null)"));
- break;
-
- case var_boolean:
- Tcl_DStringAppendElement (&cmd, (*(int *) cmdblk->var ? "1" : "0"));
- break;
-
- case var_uinteger:
- case var_zinteger:
- buffer = xstrprintf ("%u", *(unsigned int *) cmdblk->var);
- Tcl_DStringAppendElement (&cmd, buffer);
- break;
-
- case var_integer:
- buffer = xstrprintf ("%d", *(int *) cmdblk->var);
- Tcl_DStringAppendElement (&cmd, buffer);
- break;
-
- default:
- /* This case should already be trapped by the hook caller. */
- Tcl_DStringAppendElement (&cmd, "error");
- break;
- }
+ Tcl_DStringAppendElement (&cmd, param);
+ Tcl_DStringAppendElement (&cmd, value);
if (Tcl_Eval (gdbtk_interp, Tcl_DStringValue (&cmd)) != TCL_OK)
report_error ();
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: RFA: avoid deprecated_set_hook
2014-01-09 17:56 RFA: avoid deprecated_set_hook Tom Tromey
@ 2014-01-09 18:43 ` Keith Seitz
0 siblings, 0 replies; 2+ messages in thread
From: Keith Seitz @ 2014-01-09 18:43 UTC (permalink / raw)
To: Tom Tromey, Insight List
On 01/09/2014 09:56 AM, Tom Tromey wrote:
> Ok?
Yes, thanks. "Simplify" is an understatement!
And I *promise* I will get on the GIT repo real soon now (TM).
Keith
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-01-09 18:43 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-09 17:56 RFA: avoid deprecated_set_hook Tom Tromey
2014-01-09 18:43 ` Keith Seitz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).