nix-gitignore: fix evaluation when .gitignore contains \# or \! (#130643)

This commit is contained in:
Guillaume Girol 2021-07-22 16:18:10 +00:00 committed by GitHub
parent f81f715913
commit f98bc23805
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -41,6 +41,9 @@ in rec {
let split = match "^(!?)(.*)" l;
in [(elemAt split 1) (head split == "!")];
# regex -> regex
handleHashesBangs = replaceStrings ["\\#" "\\!"] ["#" "!"];
# ignore -> regex
substWildcards =
let
@ -86,7 +89,7 @@ in rec {
mapPat = f: l: [(f (head l)) (last l)];
in
map (l: # `l' for "line"
mapPat (l: handleSlashSuffix (handleSlashPrefix (mapAroundCharclass substWildcards l)))
mapPat (l: handleSlashSuffix (handleSlashPrefix (handleHashesBangs (mapAroundCharclass substWildcards l))))
(computeNegation l))
(filter (l: !isList l && !isComment l)
(split "\n" gitignore));