diff options
| author | ruki <[email protected]> | 2021-05-28 22:41:42 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-05-28 22:41:42 +0800 |
| commit | 1581e24742625d79eb79ab48bdeccfcb6580cab0 (patch) | |
| tree | 31a9fcc211af0ae3c1fb9c0de9a4c0c38f6a5896 | |
| parent | 239c446b20ecceda838e0de77711be18805fab26 (diff) | |
improve os.match and path.pattern
| -rw-r--r-- | xmake/actions/build/build_files.lua | 6 | ||||
| -rw-r--r-- | xmake/core/base/os.lua | 6 | ||||
| -rw-r--r-- | xmake/core/base/path.lua | 6 |
3 files changed, 7 insertions, 11 deletions
diff --git a/xmake/actions/build/build_files.lua b/xmake/actions/build/build_files.lua index 90a21c3aa..dd89ea311 100644 --- a/xmake/actions/build/build_files.lua +++ b/xmake/actions/build/build_files.lua @@ -162,11 +162,7 @@ function _get_file_patterns(sourcefiles) local _excludes = {} for _, exclude in ipairs(excludes) do exclude = path.translate(exclude) - exclude = exclude:gsub("([%+%.%-%^%$%(%)%%])", "%%%1") - exclude = exclude:gsub("%*%*", "\001") - exclude = exclude:gsub("%*", "\002") - exclude = exclude:gsub("\001", ".*") - exclude = exclude:gsub("\002", "[^/]*") + exclude = path.pattern(exclude) table.insert(_excludes, exclude) end excludes = _excludes diff --git a/xmake/core/base/os.lua b/xmake/core/base/os.lua index e26ac9956..071db0dfa 100644 --- a/xmake/core/base/os.lua +++ b/xmake/core/base/os.lua @@ -270,11 +270,7 @@ function os.match(pattern, mode, callback) local _excludes = {} for _, exclude in ipairs(excludes) do exclude = path.translate(exclude) - exclude = exclude:gsub("([%+%.%-%^%$%(%)%%])", "%%%1") - exclude = exclude:gsub("%*%*", "\001") - exclude = exclude:gsub("%*", "\002") - exclude = exclude:gsub("\001", ".*") - exclude = exclude:gsub("\002", "[^/]*") + exclude = path.pattern(exclude) table.insert(_excludes, exclude) end excludes = _excludes diff --git a/xmake/core/base/path.lua b/xmake/core/base/path.lua index 9da3f57c4..18dbc6b01 100644 --- a/xmake/core/base/path.lua +++ b/xmake/core/base/path.lua @@ -191,7 +191,11 @@ function path.pattern(pattern) pattern = pattern:gsub("%*%*", "\001") pattern = pattern:gsub("%*", "\002") pattern = pattern:gsub("\001", ".*") - pattern = pattern:gsub("\002", "[^/]*") + if path.sep() == '\\' then + pattern = pattern:gsub("\002", "[^/\\]*") + else + pattern = pattern:gsub("\002", "[^/]*") + end -- case-insensitive filesystem? if not os.fscase() then |
