Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/auxiliary/functions.cc14
-rw-r--r--src/auxiliary/functions.h6
-rw-r--r--src/core/commandbuffer.cc9
-rw-r--r--src/core/gameserver.cc4
-rw-r--r--src/game/game.cc3
5 files changed, 32 insertions, 4 deletions
diff --git a/src/auxiliary/functions.cc b/src/auxiliary/functions.cc
index 2b42bae..b417a4a 100644
--- a/src/auxiliary/functions.cc
+++ b/src/auxiliary/functions.cc
@@ -76,4 +76,18 @@ const std::string spaces(const std::string &text,size_t n)
return s;
}
+void to_lowercase(std::string &text)
+{
+ for (std::string::iterator i = text.begin(); i != text.end(); ++i)
+ (*i) = tolower(*i);
+}
+
+const std::string lowercase(const std::string &text)
+{
+ std::string t;
+ for (std::string::const_iterator i = text.begin(); i != text.end(); ++i)
+ t += tolower(*i);
+ return t;
+}
+
}
diff --git a/src/auxiliary/functions.h b/src/auxiliary/functions.h
index cd9ed13..2202b87 100644
--- a/src/auxiliary/functions.h
+++ b/src/auxiliary/functions.h
@@ -36,6 +36,12 @@ size_t text_length(const std::string &text);
/// prepend spaces to a string up to the desired lenght, excluding color codes
const std::string spaces(const std::string &text, size_t n);
+
+/// convert a string to lowercase
+void to_lowercase(std::string &text);
+
+/// return text, converted to lowercase
+const std::string lowercase(const std::string &text);
}
#endif // __INCLUDED_AUX_FUNCTIONS_H__
diff --git a/src/core/commandbuffer.cc b/src/core/commandbuffer.cc
index 40517e1..6c4dbca 100644
--- a/src/core/commandbuffer.cc
+++ b/src/core/commandbuffer.cc
@@ -9,6 +9,7 @@
#include <sstream>
#include <list>
+#include "auxiliary/functions.h"
#include "sys/sys.h"
#include "filesystem/filesystem.h"
#include "core/application.h"
@@ -57,6 +58,8 @@ void func_set(std::string const &args)
if (!(argstream >> varname))
return;
+ aux::to_lowercase(varname);
+
std::string value;
if (!(argstream >> value)) {
return;
@@ -136,7 +139,8 @@ void CommandBuffer::exec(std::string const &cmdline)
if (!(cmdstream >> command))
return;
-
+
+ aux::to_lowercase(command);
//con_debug << "Executing '" << cmdline << "'\n";
// is it a function
@@ -207,7 +211,8 @@ void CommandBuffer::complete(std::string &input, size_t &pos)
std::string partial = input.substr(0, pos);
if (!partial.size())
return;
-
+ aux::to_lowercase(partial);
+
// search function registry for matches
std::map<std::string, Func *>::iterator f;
for (f = Func::registry.begin(); f != Func::registry.end(); f++) {
diff --git a/src/core/gameserver.cc b/src/core/gameserver.cc
index 687623e..5d973f1 100644
--- a/src/core/gameserver.cc
+++ b/src/core/gameserver.cc
@@ -115,6 +115,8 @@ void GameServer::abort()
Player *GameServer::find_player(std::string const search)
{
+ using aux::lowercase;
+
std::istringstream searchstr(search);
int id = 0;
if (searchstr >> id) {
@@ -129,7 +131,7 @@ Player *GameServer::find_player(std::string const search)
return 0;
for (std::list<Player *>:: iterator it = players.begin(); it != players.end(); it++) {
- if ((*it)->name().find(search) != std::string::npos)
+ if (lowercase((*it)->name()).find(lowercase(search)) != std::string::npos)
return (*it);
}
diff --git a/src/game/game.cc b/src/game/game.cc
index 79c9040..4a77d7d 100644
--- a/src/game/game.cc
+++ b/src/game/game.cc
@@ -73,6 +73,7 @@ void func_buy(core::Player *player, std::string const &args)
std::string helpstr;
std::istringstream is(args);
is >> shipname;
+ aux::to_lowercase(shipname);
ShipModel *shipmodel = 0;
for (std::list<ShipModel *>::iterator smit = ShipModel::registry.begin(); smit != ShipModel::registry.end(); smit++) {
@@ -99,7 +100,7 @@ void func_buy(core::Player *player, std::string const &args)
core::server()->broadcast("^B" + player->name() + " ^Bpurchased " + aux::article(shipmodel->name()));
player->player_dirty = true;
} else {
- core::server()->send(player, "Usage: buy [" + helpstr + "^N]");
+ core::server()->send(player, "Usage: buy [^B" + helpstr + "^N]");
}
}