aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/eval.cc
diff options
context:
space:
mode:
authorjade <lix@jade.fyi>2024-03-18 12:01:39 -0600
committerGerrit Code Review <gerrit@lix>2024-03-18 12:01:39 -0600
commit47a237f7ec594c409a7abbbfe0ff0170a9970183 (patch)
treeb1300e42617d2c728a1688e066ffb6f3a252bfbd /src/libexpr/eval.cc
parent86a1121d16f7eeb594955e39ff4e6fcd69f1b8c5 (diff)
parent61e21b25576f7f3491f6a837bf59d8b44c6897a0 (diff)
Merge "Delete hasPrefix and hasSuffix from the codebase" into main
Diffstat (limited to 'src/libexpr/eval.cc')
-rw-r--r--src/libexpr/eval.cc16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index 6db1eaffe..7cf33aec4 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -484,7 +484,7 @@ SourcePath EvalState::checkSourcePath(const SourcePath & path_)
*/
Path abspath = canonPath(path_.path.abs());
- if (hasPrefix(abspath, corepkgsPrefix)) return CanonPath(abspath);
+ if (abspath.starts_with(corepkgsPrefix)) return CanonPath(abspath);
for (auto & i : *allowedPaths) {
if (isDirOrInDir(abspath, i)) {
@@ -527,18 +527,18 @@ void EvalState::checkURI(const std::string & uri)
if (uri == prefix ||
(uri.size() > prefix.size()
&& prefix.size() > 0
- && hasPrefix(uri, prefix)
+ && uri.starts_with(prefix)
&& (prefix[prefix.size() - 1] == '/' || uri[prefix.size()] == '/')))
return;
/* If the URI is a path, then check it against allowedPaths as
well. */
- if (hasPrefix(uri, "/")) {
+ if (uri.starts_with("/")) {
checkSourcePath(CanonPath(uri));
return;
}
- if (hasPrefix(uri, "file://")) {
+ if (uri.starts_with("file://")) {
checkSourcePath(CanonPath(std::string(uri, 7)));
return;
}
@@ -642,7 +642,7 @@ Value * EvalState::addPrimOp(PrimOp && primOp)
}
auto envName = symbols.create(primOp.name);
- if (hasPrefix(primOp.name, "__"))
+ if (primOp.name.starts_with("__"))
primOp.name = primOp.name.substr(2);
Value * v = allocValue();
@@ -719,7 +719,7 @@ void printEnvBindings(const SymbolTable & st, const StaticEnv & se, const Env &
// for the top level, don't print the double underscore ones;
// they are in builtins.
for (auto & i : se.vars)
- if (!hasPrefix(st[i.first], "__"))
+ if (!std::string_view(st[i.first]).starts_with("__"))
std::cout << st[i.first] << " ";
std::cout << ANSI_NORMAL;
std::cout << std::endl;
@@ -2795,7 +2795,7 @@ SourcePath EvalState::findFile(const SearchPath & searchPath, const std::string_
if (pathExists(res)) return CanonPath(canonPath(res));
}
- if (hasPrefix(path, "nix/"))
+ if (path.starts_with("nix/"))
return CanonPath(concatStrings(corepkgsPrefix, path.substr(4)));
error<ThrownError>(
@@ -2828,7 +2828,7 @@ std::optional<std::string> EvalState::resolveSearchPathPath(const SearchPath::Pa
}
}
- else if (hasPrefix(value, "flake:")) {
+ else if (value.starts_with("flake:")) {
experimentalFeatureSettings.require(Xp::Flakes);
auto flakeRef = parseFlakeRef(value.substr(6), {}, true, false);
debug("fetching flake search path element '%s''", value);