From 1c96f6d889fb264b8912f1326bb6258096cda505 Mon Sep 17 00:00:00 2001 From: JAJames Date: Sun, 26 Jun 2016 06:54:53 -0400 Subject: [PATCH] Fixed some bugs --- Jupiter/GenericCommand.cpp | 22 ++++++++++++++++------ Jupiter/GenericCommand.h | 1 + Release/Jupiter.lib | Bin 323784 -> 323784 bytes 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Jupiter/GenericCommand.cpp b/Jupiter/GenericCommand.cpp index 0fcb4c1..aae48a7 100644 --- a/Jupiter/GenericCommand.cpp +++ b/Jupiter/GenericCommand.cpp @@ -31,10 +31,13 @@ Jupiter::GenericCommandNamespace &Jupiter::g_generic_commands = o_generic_comman Jupiter::GenericCommand::GenericCommand() { - Jupiter::GenericCommand::setNamespace(o_generic_commands); + if (&o_generic_commands != this) + { + Jupiter::GenericCommand::setNamespace(o_generic_commands); - for (size_t index = 0; index != Jupiter::plugins->size(); ++index) - Jupiter::plugins->get(index)->OnGenericCommandAdd(*this); + for (size_t index = 0; index != Jupiter::plugins->size(); ++index) + Jupiter::plugins->get(index)->OnGenericCommandAdd(*this); + } } Jupiter::GenericCommand::~GenericCommand() @@ -124,7 +127,12 @@ const Jupiter::ReadableString &Jupiter::GenericCommandNamespace::getHelp(const J static Jupiter::ReferenceString not_found = "Error: Command not found"_jrs; if (parameters.wordCount(GENERIC_COMMAND_WORD_DELIMITER_CS) == 0) // No parameters; list commands + { + if (Jupiter::GenericCommandNamespace::m_should_update_help) + Jupiter::GenericCommandNamespace::updateHelp(); + return Jupiter::GenericCommandNamespace::m_help; + } Jupiter::ReferenceString input(parameters); GenericCommand *command; @@ -223,7 +231,7 @@ void Jupiter::GenericCommandNamespace::addCommand(Jupiter::GenericCommand &in_co else { Jupiter::GenericCommandNamespace::m_commands.add(&in_command); - Jupiter::GenericCommandNamespace::updateHelp(); + Jupiter::GenericCommandNamespace::m_should_update_help = true; } } @@ -233,7 +241,7 @@ void Jupiter::GenericCommandNamespace::removeCommand(Jupiter::GenericCommand &in if (Jupiter::GenericCommandNamespace::m_commands.get(index) == &in_command) { Jupiter::GenericCommandNamespace::m_commands.remove(index); - Jupiter::GenericCommandNamespace::updateHelp(); + Jupiter::GenericCommandNamespace::m_should_update_help = true; return; } } @@ -244,13 +252,15 @@ void Jupiter::GenericCommandNamespace::removeCommand(const Jupiter::ReadableStri if (Jupiter::GenericCommandNamespace::m_commands.get(index)->matches(in_command)) { Jupiter::GenericCommandNamespace::m_commands.remove(index); - Jupiter::GenericCommandNamespace::updateHelp(); + Jupiter::GenericCommandNamespace::m_should_update_help = true; return; } } void Jupiter::GenericCommandNamespace::updateHelp() { + Jupiter::GenericCommandNamespace::m_should_update_help = false; + Jupiter::ArrayList commands = Jupiter::GenericCommandNamespace::getCommands(); Jupiter::StringL tmp_help(commands.size() * 8); diff --git a/Jupiter/GenericCommand.h b/Jupiter/GenericCommand.h index 26f11ff..a551f5f 100644 --- a/Jupiter/GenericCommand.h +++ b/Jupiter/GenericCommand.h @@ -157,6 +157,7 @@ namespace Jupiter Jupiter::ArrayList m_commands; private: + bool m_should_update_help = true; Jupiter::StringS m_help; }; diff --git a/Release/Jupiter.lib b/Release/Jupiter.lib index 551e1a5af82bb156f010c4a2828b3d0c1d7c4b0c..86cf4e31da141dc9881952ee72cc1af859c747f1 100644 GIT binary patch delta 21267 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 XmxHQwtn{lgd)N^ktg!!;Dl_u`lR)P3 delta 21228 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