diff --git a/moonbuild.lua b/moonbuild.lua index ee8f020..fbef51e 100644 --- a/moonbuild.lua +++ b/moonbuild.lua @@ -120,7 +120,11 @@ normalizepath = function(file) break end end - return (absolute and '/' or '') .. concat(parts, '/') + if #parts == 0 then + return '.' + else + return (absolute and '/' or '') .. concat(parts, '/') + end end local ls ls = function(d) @@ -201,7 +205,7 @@ wildcard = function(glob) local absolute = (sub(glob, 1, 1)) == '/' for i, part in ipairs(parts) do local prevpath = (absolute and '/' or '') .. concat(parts, '/', 1, i - 1) - local currpath = prevpath .. '/' .. part + local currpath = (i == 1 and '' or (prevpath .. '/')) .. part if match(part, '%*%*.*%*%*') then error("Two '**' in the same path component in a wildcard") end diff --git a/moonbuild/fsutil.moon b/moonbuild/fsutil.moon index e546157..7d6f639 100644 --- a/moonbuild/fsutil.moon +++ b/moonbuild/fsutil.moon @@ -16,7 +16,10 @@ normalizepath = (file) -> remove parts, i-1 i -= 2 continue - (absolute and '/' or '') .. concat parts, '/' + if #parts==0 + '.' + else + (absolute and '/' or '') .. concat parts, '/' ls = (d) -> [f for f in *dir normalizepath d when f!='.' and f!='..'] @@ -54,7 +57,7 @@ wildcard = (glob) -> for i, part in ipairs parts prevpath = (absolute and '/' or '') .. concat parts, '/', 1, i-1 - currpath = prevpath .. '/' .. part + currpath = (i==1 and '' or (prevpath .. '/')) .. part if match part, '%*%*.*%*%*' error "Two '**' in the same path component in a wildcard"