move ReadFile into util
authorEvan Martin <martine@danga.com>
Tue, 24 May 2011 16:47:24 +0000 (09:47 -0700)
committerEvan Martin <martine@danga.com>
Tue, 24 May 2011 16:47:24 +0000 (09:47 -0700)
src/ninja.h
src/ninja_jumble.cc
src/util.cc
src/util.h

index b73d7be51171de59ee8973fcdcc77e9ff3b1a769..5487cbe34777f7da472b8bd751a6101dbd8124d9 100644 (file)
@@ -33,8 +33,6 @@ struct FileStat;
 struct Node;
 struct Rule;
 
-int ReadFile(const string& path, string* contents, string* err);
-
 /// Interface for accessing the disk.
 ///
 /// Abstract so it can be mocked out for tests.  The real implementation
index bef562bb73e1d43447e401ddf2fc4577aebca17f..b6bf0970a097fddebf27437ea783352b45a523fd 100644 (file)
 #include "graph.h"
 #include "util.h"
 
-int ReadFile(const string& path, string* contents, string* err) {
-  FILE* f = fopen(path.c_str(), "r");
-  if (!f) {
-    err->assign(strerror(errno));
-    return -errno;
-  }
-
-  char buf[64 << 10];
-  size_t len;
-  while ((len = fread(buf, 1, sizeof(buf), f)) > 0) {
-    contents->append(buf, len);
-  }
-  if (ferror(f)) {
-    err->assign(strerror(errno));  // XXX errno?
-    contents->clear();
-    fclose(f);
-    return -errno;
-  }
-  fclose(f);
-  return 0;
-}
-
 int RealDiskInterface::Stat(const string& path) {
   struct stat st;
   if (stat(path.c_str(), &st) < 0) {
index 63d3800b58169cfc9c40888b582d6040aed36275..ff6d18ed88a630778bf4997ffeb8fb7396ac4dbe 100644 (file)
@@ -14,6 +14,7 @@
 
 #include "util.h"
 
+#include <errno.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -150,3 +151,25 @@ int MakeDir(const string& path) {
   return mkdir(path.c_str(), 0777);
 #endif
 }
+
+int ReadFile(const string& path, string* contents, string* err) {
+  FILE* f = fopen(path.c_str(), "r");
+  if (!f) {
+    err->assign(strerror(errno));
+    return -errno;
+  }
+
+  char buf[64 << 10];
+  size_t len;
+  while ((len = fread(buf, 1, sizeof(buf), f)) > 0) {
+    contents->append(buf, len);
+  }
+  if (ferror(f)) {
+    err->assign(strerror(errno));  // XXX errno?
+    contents->clear();
+    fclose(f);
+    return -errno;
+  }
+  fclose(f);
+  return 0;
+}
index 49a9aeca14774e54730d73745e9360182902485c..8d42ed4dbba64117c23d46c131548b31f7291010 100644 (file)
@@ -35,4 +35,8 @@ bool CanonicalizePath(string* path, string* err);
 /// Portability abstraction.
 int MakeDir(const string& path);
 
+/// Read a file to a string.
+/// Returns -errno and fills in \a err on error.
+int ReadFile(const string& path, string* contents, string* err);
+
 #endif  // NINJA_UTIL_H_