19 DifferenceMatcher, IntersectionMatcher, Matcher, NeverMatcher, |
19 DifferenceMatcher, IntersectionMatcher, Matcher, NeverMatcher, |
20 PatternMatcher, UnionMatcher, |
20 PatternMatcher, UnionMatcher, |
21 }; |
21 }; |
22 use hg::{ |
22 use hg::{ |
23 matchers::{AlwaysMatcher, FileMatcher, IncludeMatcher}, |
23 matchers::{AlwaysMatcher, FileMatcher, IncludeMatcher}, |
24 parse_pattern_syntax, |
24 parse_pattern_syntax_kind, |
25 utils::{ |
25 utils::{ |
26 files::{get_bytes_from_path, get_path_from_bytes}, |
26 files::{get_bytes_from_path, get_path_from_bytes}, |
27 hg_path::{HgPath, HgPathBuf}, |
27 hg_path::{HgPath, HgPathBuf}, |
28 }, |
28 }, |
29 BadMatch, DirstateStatus, IgnorePattern, PatternError, PatternFileWarning, |
29 BadMatch, DirstateStatus, IgnorePattern, PatternError, PatternFileWarning, |
160 matcher |
160 matcher |
161 .getattr(py, "_kindpats")? |
161 .getattr(py, "_kindpats")? |
162 .iter(py)? |
162 .iter(py)? |
163 .map(|k| { |
163 .map(|k| { |
164 let k = k?; |
164 let k = k?; |
165 let syntax = parse_pattern_syntax( |
165 let syntax = parse_pattern_syntax_kind( |
166 &[ |
166 k.get_item(py, 0)?.extract::<PyBytes>(py)?.data(py), |
167 k.get_item(py, 0)?.extract::<PyBytes>(py)?.data(py), |
|
168 &b":"[..], |
|
169 ] |
|
170 .concat(), |
|
171 ) |
167 ) |
172 .map_err(|e| handle_fallback(py, StatusError::Pattern(e)))?; |
168 .map_err(|e| handle_fallback(py, StatusError::Pattern(e)))?; |
173 let pattern = k.get_item(py, 1)?.extract::<PyBytes>(py)?; |
169 let pattern = k.get_item(py, 1)?.extract::<PyBytes>(py)?; |
174 let pattern = pattern.data(py); |
170 let pattern = pattern.data(py); |
175 let source = k.get_item(py, 2)?.extract::<PyBytes>(py)?; |
171 let source = k.get_item(py, 2)?.extract::<PyBytes>(py)?; |