diff options
author | Vincent Ambo <tazjin@google.com> | 2020-05-25T01·19+0100 |
---|---|---|
committer | Vincent Ambo <tazjin@google.com> | 2020-05-25T01·19+0100 |
commit | b99b368d17f2e806a61f7abb83c6d3a9e4bbdc38 (patch) | |
tree | 1f76047dd027421dcf79cdf4804fa5ff1bb08b2b /third_party/nix/src/libexpr | |
parent | 8cf1322a6fd5ae282d8a09fdba634f27a1a88560 (diff) |
refactor(3p/nix/libutil): Replace hasPrefix/Suffix with Abseil r/845
Uses the equivalent absl::StartsWith and absl::EndsWith functions instead.
Diffstat (limited to 'third_party/nix/src/libexpr')
-rw-r--r-- | third_party/nix/src/libexpr/eval.cc | 7 | ||||
-rw-r--r-- | third_party/nix/src/libexpr/primops/fetchGit.cc | 8 | ||||
-rw-r--r-- | third_party/nix/src/libexpr/primops/fetchMercurial.cc | 7 |
3 files changed, 13 insertions, 9 deletions
diff --git a/third_party/nix/src/libexpr/eval.cc b/third_party/nix/src/libexpr/eval.cc index d93f39bba4fe..ca2b65203f19 100644 --- a/third_party/nix/src/libexpr/eval.cc +++ b/third_party/nix/src/libexpr/eval.cc @@ -7,6 +7,7 @@ #include <iostream> #include <new> +#include <absl/strings/match.h> #include <gc/gc.h> #include <gc/gc_cpp.h> #include <glog/logging.h> @@ -423,7 +424,7 @@ void EvalState::checkURI(const std::string& uri) { for (auto& prefix : evalSettings.allowedUris.get()) { if (uri == prefix || (uri.size() > prefix.size() && !prefix.empty() && - hasPrefix(uri, prefix) && + absl::StartsWith(uri, prefix) && (prefix[prefix.size() - 1] == '/' || uri[prefix.size()] == '/'))) { return; } @@ -431,12 +432,12 @@ void EvalState::checkURI(const std::string& uri) { /* If the URI is a path, then check it against allowedPaths as well. */ - if (hasPrefix(uri, "/")) { + if (absl::StartsWith(uri, "/")) { checkSourcePath(uri); return; } - if (hasPrefix(uri, "file://")) { + if (absl::StartsWith(uri, "file://")) { checkSourcePath(std::string(uri, 7)); return; } diff --git a/third_party/nix/src/libexpr/primops/fetchGit.cc b/third_party/nix/src/libexpr/primops/fetchGit.cc index c45090707749..99f1c3c4ba0c 100644 --- a/third_party/nix/src/libexpr/primops/fetchGit.cc +++ b/third_party/nix/src/libexpr/primops/fetchGit.cc @@ -2,6 +2,7 @@ #include <regex> #include <absl/strings/ascii.h> +#include <absl/strings/match.h> #include <glog/logging.h> #include <sys/time.h> @@ -31,7 +32,8 @@ GitInfo exportGit(ref<Store> store, const std::string& uri, if (evalSettings.pureEval && rev == "") throw Error("in pure evaluation mode, 'fetchGit' requires a Git revision"); - if (!ref && rev == "" && hasPrefix(uri, "/") && pathExists(uri + "/.git")) { + if (!ref && rev == "" && absl::StartsWith(uri, "/") && + pathExists(uri + "/.git")) { bool clean = true; try { @@ -56,7 +58,7 @@ GitInfo exportGit(ref<Store> store, const std::string& uri, runProgram("git", true, {"-C", uri, "ls-files", "-z"}), "\0"s); PathFilter filter = [&](const Path& p) -> bool { - assert(hasPrefix(p, uri)); + assert(absl::StartsWith(p, uri)); std::string file(p, uri.size() + 1); auto st = lstat(p); @@ -64,7 +66,7 @@ GitInfo exportGit(ref<Store> store, const std::string& uri, if (S_ISDIR(st.st_mode)) { auto prefix = file + "/"; auto i = files.lower_bound(prefix); - return i != files.end() && hasPrefix(*i, prefix); + return i != files.end() && absl::StartsWith(*i, prefix); } return files.count(file); diff --git a/third_party/nix/src/libexpr/primops/fetchMercurial.cc b/third_party/nix/src/libexpr/primops/fetchMercurial.cc index 69ece06eacb9..b6d4a5e1c8bc 100644 --- a/third_party/nix/src/libexpr/primops/fetchMercurial.cc +++ b/third_party/nix/src/libexpr/primops/fetchMercurial.cc @@ -2,6 +2,7 @@ #include <regex> #include <absl/strings/ascii.h> +#include <absl/strings/match.h> #include <glog/logging.h> #include <sys/time.h> @@ -31,7 +32,7 @@ HgInfo exportMercurial(ref<Store> store, const std::string& uri, "in pure evaluation mode, 'fetchMercurial' requires a Mercurial " "revision"); - if (rev == "" && hasPrefix(uri, "/") && pathExists(uri + "/.hg")) { + if (rev == "" && absl::StartsWith(uri, "/") && pathExists(uri + "/.hg")) { bool clean = runProgram("hg", true, {"status", "-R", uri, "--modified", "--added", "--removed"}) == ""; @@ -54,7 +55,7 @@ HgInfo exportMercurial(ref<Store> store, const std::string& uri, "\0"s); PathFilter filter = [&](const Path& p) -> bool { - assert(hasPrefix(p, uri)); + assert(absl::StartsWith(p, uri)); std::string file(p, uri.size() + 1); auto st = lstat(p); @@ -62,7 +63,7 @@ HgInfo exportMercurial(ref<Store> store, const std::string& uri, if (S_ISDIR(st.st_mode)) { auto prefix = file + "/"; auto i = files.lower_bound(prefix); - return i != files.end() && hasPrefix(*i, prefix); + return i != files.end() && absl::StartsWith(*i, prefix); } return files.count(file); |