From 822690170b501397b86626e13b5a542712a1719d Mon Sep 17 00:00:00 2001 From: Jared Adams Date: Sun, 19 Apr 2009 09:01:46 -0600 Subject: Flesh out eAtehan party handling --- src/commandhandler.cpp | 48 +++++++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 19 deletions(-) (limited to 'src/commandhandler.cpp') diff --git a/src/commandhandler.cpp b/src/commandhandler.cpp index 2f9969e8..81507791 100644 --- a/src/commandhandler.cpp +++ b/src/commandhandler.cpp @@ -56,7 +56,7 @@ void CommandHandler::handleCommand(const std::string &command, ChatTab *tab) { // Nothing to do } - if (type == "announce") + else if (type == "announce") { handleAnnounce(args, tab); } @@ -114,6 +114,22 @@ void CommandHandler::handleCommand(const std::string &command, ChatTab *tab) } } +char CommandHandler::parseBoolean(const std::string &value) +{ + std::string opt = value.substr(0, 1); + + if (opt == "1" || + opt == "y" || opt == "Y" || + opt == "t" || opt == "T") + return 1; + else if (opt == "0" || + opt == "n" || opt == "N" || + opt == "f" || opt == "F") + return 0; + else + return -1; +} + void CommandHandler::handleAnnounce(const std::string &args, ChatTab *tab) { Net::getAdminHandler()->announce(args); @@ -374,27 +390,21 @@ void CommandHandler::handleToggle(const std::string &args, ChatTab *tab) return; } - std::string opt = args.substr(0, 1); + char opt = parseBoolean(args); - if (opt == "1" || - opt == "y" || opt == "Y" || - opt == "t" || opt == "T") - { - tab->chatLog(_("Return now toggles chat.")); - chatWindow->setReturnTogglesChat(true); - return; - } - else if (opt == "0" || - opt == "n" || opt == "N" || - opt == "f" || opt == "F") + switch (opt) { - tab->chatLog(_("Message now closes chat.")); - chatWindow->setReturnTogglesChat(false); - return; + case 1: + tab->chatLog(_("Return now toggles chat.")); + chatWindow->setReturnTogglesChat(true); + return; + case 0: + tab->chatLog(_("Message now closes chat.")); + chatWindow->setReturnTogglesChat(false); + return; + case -1: + tab->chatLog(strprintf(BOOLEAN_OPTIONS, "toggle")); } - else - tab->chatLog(_("Options to /toggle are \"yes\", \"no\", \"true\", " - "\"false\", \"1\", \"0\".")); } void CommandHandler::handlePresent(const std::string &args, ChatTab *tab) -- cgit v1.2.3-60-g2f50