summaryrefslogtreecommitdiff
path: root/src/lib/util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/util.cc')
-rw-r--r--src/lib/util.cc29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/lib/util.cc b/src/lib/util.cc
index fbe77461e..a14db810f 100644
--- a/src/lib/util.cc
+++ b/src/lib/util.cc
@@ -621,3 +621,32 @@ round_up (int a, int t)
return a - (a % t);
}
+multimap<string, string>
+read_key_value (istream &s)
+{
+ multimap<string, string> kv;
+
+ string line;
+ while (getline (s, line)) {
+ if (line.empty ()) {
+ continue;
+ }
+
+ if (line[0] == '#') {
+ continue;
+ }
+
+ if (line[line.size() - 1] == '\r') {
+ line = line.substr (0, line.size() - 1);
+ }
+
+ size_t const s = line.find (' ');
+ if (s == string::npos) {
+ continue;
+ }
+
+ kv.insert (make_pair (line.substr (0, s), line.substr (s + 1)));
+ }
+
+ return kv;
+}