about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2016-09-14T12·42+0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2016-09-14T12·58+0200
commita75d11a7e6984b3df15da9677fbd49ee8de7a9c3 (patch)
tree8dc4d2f167360def381dca93371e39ed40776bba
parente07c0dcf5c128875bf8af740b2c4bc81918713c9 (diff)
Add a toLower utility function
-rw-r--r--src/libutil/util.cc10
-rw-r--r--src/libutil/util.hh4
2 files changed, 14 insertions, 0 deletions
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index 7efaf3e89e6a..87e97c20fa3d 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -9,6 +9,7 @@
 #include <cstdlib>
 #include <sstream>
 #include <cstring>
+#include <cctype>
 
 #include <sys/wait.h>
 #include <unistd.h>
@@ -1087,6 +1088,15 @@ bool hasSuffix(const string & s, const string & suffix)
 }
 
 
+std::string toLower(const std::string & s)
+{
+    std::string r(s);
+    for (auto & c : r)
+        c = std::tolower(c);
+    return r;
+}
+
+
 string decodeOctalEscaped(const string & s)
 {
     string r;
diff --git a/src/libutil/util.hh b/src/libutil/util.hh
index 69c723ad2eae..7aeca0edc026 100644
--- a/src/libutil/util.hh
+++ b/src/libutil/util.hh
@@ -334,6 +334,10 @@ bool hasPrefix(const string & s, const string & prefix);
 bool hasSuffix(const string & s, const string & suffix);
 
 
+/* Convert a string to lower case. */
+std::string toLower(const std::string & s);
+
+
 /* Escape a string that contains octal-encoded escape codes such as
    used in /etc/fstab and /proc/mounts (e.g. "foo\040bar" decodes to
    "foo bar"). */