[nemiver/console] Use vector instead of C array for command aliases
- From: Fabien Parent <fparent src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nemiver/console] Use vector instead of C array for command aliases
- Date: Sun, 11 Mar 2012 13:30:26 +0000 (UTC)
commit 10f3aa8f1950ef97403183f2fc41eea70bbc6943
Author: Fabien Parent <parent f gmail com>
Date: Sun Mar 11 13:39:42 2012 +0100
Use vector instead of C array for command aliases
src/dbgengine/nmv-cmd-interpreter.cc | 89 ++++++++++++++++------------------
src/dbgengine/nmv-cmd-interpreter.h | 5 +-
2 files changed, 45 insertions(+), 49 deletions(-)
---
diff --git a/src/dbgengine/nmv-cmd-interpreter.cc b/src/dbgengine/nmv-cmd-interpreter.cc
index fb22092..133f9d6 100644
--- a/src/dbgengine/nmv-cmd-interpreter.cc
+++ b/src/dbgengine/nmv-cmd-interpreter.cc
@@ -62,14 +62,13 @@ struct CommandContinue : public CmdInterpreter::SynchronousCommand {
return s_name;
}
- const char**
+ const std::vector<UString>&
aliases () const
{
- static const char *s_aliases[] =
- {
- "c",
- 0
- };
+ static std::vector<UString> s_aliases;
+ if (!s_aliases.size ()) {
+ s_aliases.push_back ("c");
+ }
return s_aliases;
}
@@ -95,14 +94,13 @@ struct CommandNext : public CmdInterpreter::SynchronousCommand {
return s_name;
}
- const char**
+ const std::vector<UString>&
aliases () const
{
- static const char *s_aliases[] =
- {
- "n",
- 0
- };
+ static std::vector<UString> s_aliases;
+ if (!s_aliases.size ()) {
+ s_aliases.push_back ("n");
+ }
return s_aliases;
}
@@ -128,14 +126,13 @@ struct CommandStep : public CmdInterpreter::SynchronousCommand {
return s_name;
}
- const char**
+ const std::vector<UString>&
aliases () const
{
- static const char *s_aliases[] =
- {
- "s",
- 0
- };
+ static std::vector<UString> s_aliases;
+ if (!s_aliases.size ()) {
+ s_aliases.push_back ("s");
+ }
return s_aliases;
}
@@ -161,14 +158,13 @@ struct CommandNexti : public CmdInterpreter::SynchronousCommand {
return s_name;
}
- const char**
+ const std::vector<UString>&
aliases () const
{
- static const char *s_aliases[] =
- {
- "ni",
- 0
- };
+ static std::vector<UString> s_aliases;
+ if (!s_aliases.size ()) {
+ s_aliases.push_back ("ni");
+ }
return s_aliases;
}
@@ -194,14 +190,13 @@ struct CommandStepi : public CmdInterpreter::SynchronousCommand {
return s_name;
}
- const char**
+ const std::vector<UString>&
aliases () const
{
- static const char *s_aliases[] =
- {
- "si",
- 0
- };
+ static std::vector<UString> s_aliases;
+ if (!s_aliases.size ()) {
+ s_aliases.push_back ("si");
+ }
return s_aliases;
}
@@ -388,14 +383,13 @@ struct CommandBreak : public CmdInterpreter::SynchronousCommand {
return s_name;
}
- const char**
+ const std::vector<UString>&
aliases () const
{
- static const char *s_aliases[] =
- {
- "b",
- 0
- };
+ static std::vector<UString> s_aliases;
+ if (!s_aliases.size ()) {
+ s_aliases.push_back ("b");
+ }
return s_aliases;
}
@@ -586,14 +580,13 @@ struct CommandOpen : public CmdInterpreter::SynchronousCommand {
return s_name;
}
- const char**
+ const std::vector<UString>&
aliases () const
{
- static const char *s_aliases[] =
- {
- "o",
- 0
- };
+ static std::vector<UString> s_aliases;
+ if (!s_aliases.size ()) {
+ s_aliases.push_back ("o");
+ }
return s_aliases;
}
@@ -911,14 +904,16 @@ CmdInterpreter::register_command (CmdInterpreter::Command &a_command)
(a_command.name (), a_command));
m_priv->command_vector.push_back (&a_command);
- const char **aliases = a_command.aliases ();
- for (int i = 0; aliases && aliases[i]; i++) {
- if (m_priv->commands.count (aliases[i])) {
- LOG ("Command '" << aliases[i] << "' is already registered in"
+ const std::vector<UString> &aliases = a_command.aliases ();
+ for (std::vector<UString>::const_iterator iter = aliases.begin ();
+ iter != aliases.end ();
+ ++iter) {
+ if (m_priv->commands.count (*iter)) {
+ LOG ("Command '" << *iter << "' is already registered in"
" the console. The previous command will be overwritten");
}
m_priv->commands.insert (std::make_pair<std::string, Command&>
- (aliases[i], a_command));
+ (*iter, a_command));
}
}
diff --git a/src/dbgengine/nmv-cmd-interpreter.h b/src/dbgengine/nmv-cmd-interpreter.h
index 41d5885..51a1cb3 100644
--- a/src/dbgengine/nmv-cmd-interpreter.h
+++ b/src/dbgengine/nmv-cmd-interpreter.h
@@ -59,9 +59,10 @@ public:
virtual const std::string& name () const = 0;
- virtual const char** aliases () const
+ virtual const std::vector<UString>& aliases () const
{
- return 0;
+ static std::vector<UString> s_aliases;
+ return s_aliases;
}
virtual void completions (const std::vector<UString>&,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]