[patch v9 11/23] target: add add_deprecated_target_alias

Markus Metzger
2013-03-04T17:08:12Z

Add a new function to target.h to add an alias command for a target and mark it
deprecated. This is useful when renaming targets.

Approved by Jan Kratochvil.

2013-03-04 Markus Metzger <markus.t.metzger@intel.com>

* target.h (add_deprecated_target_alias): New.
* target.c (add_deprecated_target_alias): New.

---
gdb/target.c | 15 +++++++++++++++
gdb/target.h | 5 +++++
2 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/gdb/target.c b/gdb/target.c
index 9dfbe08..1771d3a 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -434,6 +434,21 @@ information on the arguments for a particular protocol, type\n\
add_cmd (t->to_shortname, no_class, t->to_open, t->to_doc, &targetlist);
}

+/* See target.h. */
+
+void
+add_deprecated_target_alias (struct target_ops *t, char *alias)
+{
+ struct cmd_list_element *c;
+ char *alt;
+
+ /* If we use add_alias_cmd, here, we do not get the deprecated warning,
+ see PR cli/15104. */
+ c = add_cmd (alias, no_class, t->to_open, t->to_doc, &targetlist);
+ alt = xstrprintf ("target %s", t->to_shortname);
+ deprecate_cmd (c, alt);
+}
+
/* Stub functions */

void
diff --git a/gdb/target.h b/gdb/target.h
index c543118..1d73336 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -1779,6 +1779,11 @@ int target_verify_memory (const gdb_byte *data,

extern void add_target (struct target_ops *);

+/* Adds a command ALIAS for target T and marks it deprecated. This is useful
+ for maintaining backwards compatibility when renaming targets. */
+
+extern void add_deprecated_target_alias (struct target_ops *t, char *alias);
+
extern void push_target (struct target_ops *);

extern int unpush_target (struct target_ops *);
--
1.7.1