about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2016-09-14T08·54+0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2016-09-14T08·54+0200
commite07c0dcf5c128875bf8af740b2c4bc81918713c9 (patch)
tree10cbe40f35fafb3a25c0802679f6c33f72b78be6
parent2c8c103ef80378bfcfa29ae054fd878305b5e275 (diff)
Move some .drv parsing functions out of util
-rw-r--r--src/libstore/derivations.cc46
-rw-r--r--src/libutil/util.cc41
-rw-r--r--src/libutil/util.hh14
3 files changed, 46 insertions, 55 deletions
diff --git a/src/libstore/derivations.cc b/src/libstore/derivations.cc
index f051f10bd0..3b6a62e13d 100644
--- a/src/libstore/derivations.cc
+++ b/src/libstore/derivations.cc
@@ -87,6 +87,38 @@ Path writeDerivation(ref<Store> store,
 }
 
 
+MakeError(FormatError, Error)
+
+
+/* Read string `s' from stream `str'. */
+static void expect(std::istream & str, const string & s)
+{
+    char s2[s.size()];
+    str.read(s2, s.size());
+    if (string(s2, s.size()) != s)
+        throw FormatError(format("expected string ‘%1%’") % s);
+}
+
+
+/* Read a C-style string from stream `str'. */
+static string parseString(std::istream & str)
+{
+    string res;
+    expect(str, "\"");
+    int c;
+    while ((c = str.get()) != '"')
+        if (c == '\\') {
+            c = str.get();
+            if (c == 'n') res += '\n';
+            else if (c == 'r') res += '\r';
+            else if (c == 't') res += '\t';
+            else res += c;
+        }
+        else res += c;
+    return res;
+}
+
+
 static Path parsePath(std::istream & str)
 {
     string s = parseString(str);
@@ -96,6 +128,20 @@ static Path parsePath(std::istream & str)
 }
 
 
+static bool endOfList(std::istream & str)
+{
+    if (str.peek() == ',') {
+        str.get();
+        return false;
+    }
+    if (str.peek() == ']') {
+        str.get();
+        return true;
+    }
+    return false;
+}
+
+
 static StringSet parseStrings(std::istream & str, bool arePaths)
 {
     StringSet res;
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index f1e714a664..7efaf3e89e 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -1087,47 +1087,6 @@ bool hasSuffix(const string & s, const string & suffix)
 }
 
 
-void expect(std::istream & str, const string & s)
-{
-    char s2[s.size()];
-    str.read(s2, s.size());
-    if (string(s2, s.size()) != s)
-        throw FormatError(format("expected string ‘%1%’") % s);
-}
-
-
-string parseString(std::istream & str)
-{
-    string res;
-    expect(str, "\"");
-    int c;
-    while ((c = str.get()) != '"')
-        if (c == '\\') {
-            c = str.get();
-            if (c == 'n') res += '\n';
-            else if (c == 'r') res += '\r';
-            else if (c == 't') res += '\t';
-            else res += c;
-        }
-        else res += c;
-    return res;
-}
-
-
-bool endOfList(std::istream & str)
-{
-    if (str.peek() == ',') {
-        str.get();
-        return false;
-    }
-    if (str.peek() == ']') {
-        str.get();
-        return true;
-    }
-    return false;
-}
-
-
 string decodeOctalEscaped(const string & s)
 {
     string r;
diff --git a/src/libutil/util.hh b/src/libutil/util.hh
index 819921dfff..69c723ad2e 100644
--- a/src/libutil/util.hh
+++ b/src/libutil/util.hh
@@ -334,20 +334,6 @@ bool hasPrefix(const string & s, const string & prefix);
 bool hasSuffix(const string & s, const string & suffix);
 
 
-/* Read string `s' from stream `str'. */
-void expect(std::istream & str, const string & s);
-
-MakeError(FormatError, Error)
-
-
-/* Read a C-style string from stream `str'. */
-string parseString(std::istream & str);
-
-
-/* Utility function used to parse legacy ATerms. */
-bool endOfList(std::istream & str);
-
-
 /* 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"). */