Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/auxiliary/functions.cc')
-rw-r--r--src/auxiliary/functions.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/auxiliary/functions.cc b/src/auxiliary/functions.cc
index dbfc799..a6187af 100644
--- a/src/auxiliary/functions.cc
+++ b/src/auxiliary/functions.cc
@@ -143,4 +143,26 @@ void trim(std::string &text)
}
}
+void to_label(std::string &text)
+{
+ trim(text);
+ size_t pos = 0;
+
+ while (pos < text.size()) {
+ if ((text[pos] == ' ') || (text[pos] == '-')) {
+ text[pos] = '_';
+ pos++;
+ } else if ((text[pos] >= 'A') && (text[pos] <= 'Z')) {
+ text[pos] = text[pos] + 'a' - 'A';
+ pos++;
+ } else if ((text[pos] >= 'a') && (text[pos] <= 'z')) {
+ pos++;
+ } else if ((text[pos] >= '0') && (text[pos] <= '9')) {
+ pos++;
+ } else {
+ text.erase(pos, 1);
+ }
+ }
+}
+
}