summaryrefslogtreecommitdiff
path: root/lib/strings.nix
diff options
context:
space:
mode:
authorNaïm Favier <n@monade.li>2022-12-08 13:30:50 +0100
committerGitHub <noreply@github.com>2022-12-08 13:30:50 +0100
commit22af649d146f4bbb369534981d4956b93570af09 (patch)
treee5a2efb159a9b70af20b90f48ecaa566cbf477d4 /lib/strings.nix
parentMerge pull request #205043 from skeuchel/python-metakernel (diff)
parentlib/strings: simplify `splitString` (diff)
downloadnixpkgs-22af649d146f4bbb369534981d4956b93570af09.tar.gz
Merge pull request #204087 from ncfavier/splitString-simplify
Diffstat (limited to 'lib/strings.nix')
-rw-r--r--lib/strings.nix10
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/strings.nix b/lib/strings.nix
index 96dfb779cd6f..9a4f29380d0d 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -510,7 +510,7 @@ rec {
toUpper = replaceChars lowerChars upperChars;
/* Appends string context from another string. This is an implementation
- detail of Nix.
+ detail of Nix and should be used carefully.
Strings in Nix carry an invisible `context` which is a list of strings
representing store paths. If the string is later used in a derivation
@@ -533,13 +533,11 @@ rec {
splitString "/" "/usr/local/bin"
=> [ "" "usr" "local" "bin" ]
*/
- splitString = _sep: _s:
+ splitString = sep: s:
let
- sep = builtins.unsafeDiscardStringContext _sep;
- s = builtins.unsafeDiscardStringContext _s;
- splits = builtins.filter builtins.isString (builtins.split (escapeRegex sep) s);
+ splits = builtins.filter builtins.isString (builtins.split (escapeRegex (toString sep)) (toString s));
in
- map (v: addContextFrom _sep (addContextFrom _s v)) splits;
+ map (addContextFrom s) splits;
/* Return a string without the specified prefix, if the prefix matches.