@@ -131,12 +131,7 @@ module Fileset =
131131 fsroot @ ( Array.map mapPart parts |> List.ofArray) @ filepart
132132 |> Pattern |> normalize
133133
134- /// Parses file mask
135- let parseFileMask = parseDirFileMask false
136-
137- /// Parses file mask
138- let parseDir = parseDirFileMask true
139-
134+
140135 let FileSystem = {
141136 GetDisk = fun d -> d + Path.DirectorySeparatorChar.ToString()
142137 GetDirRoot = fun x -> Directory.GetDirectoryRoot x
@@ -213,7 +208,7 @@ module Fileset =
213208
214209 /// Returns true if a file name (parsedto p) matches specific file mask.
215210 let matchesPattern ( Pattern mask ) file =
216- let ( Pattern fileParts ) = parseFileMask file in
211+ let ( Pattern fileParts ) = ( parseDirFileMask false ) file in
217212 matchPathsImpl mask fileParts
218213
219214 let private ifNone v2 = function | None -> v2 | Some v -> v
@@ -222,7 +217,7 @@ module Fileset =
222217 /// "Materializes" fileset to a filelist
223218 let scan fileSystem root ( Fileset ( options , filesetItems )) =
224219
225- let startDirPat = options.BaseDir |> ifNone root |> parseDir
220+ let startDirPat = options.BaseDir |> ifNone root |> parseDirFileMask true
226221 let startDir = startDirPat |> cd fileSystem " ."
227222
228223 // TODO check performance, build function
@@ -317,7 +312,8 @@ module Fileset =
317312 /// </summary>
318313 /// <param name="filePattern"></param>
319314 let ls ( filePattern : FilePattern ) =
320- Fileset ( DefaultOptions, [ filePattern |> parseFileMask |> Includes])
315+ let parse = ( filePattern.EndsWith ( " /" ) || filePattern.EndsWith ( " \\ " )) |> Impl.parseDirFileMask
316+ Fileset ( DefaultOptions, [ filePattern |> parse |> Includes])
321317
322318 /// <summary>
323319 /// Create a file set for specific file mask. The same as "ls"
@@ -355,7 +351,7 @@ module Fileset =
355351 // matches "src/**/*.cs" "c:\!\src\a\b\c.cs" -> true
356352
357353 // TODO alternative implementation, convert pattern to a match function using combinators
358- Impl.matchesPattern <| joinPattern ( parseDir rootPath) ( parseFileMask filePattern)
354+ Impl.matchesPattern <| joinPattern ( parseDirMask rootPath) ( parseFileMask filePattern)
359355
360356 let FileSystem = Impl.FileSystem
361357
0 commit comments