diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-14 04:01:45 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-14 04:02:58 +0900 |
| commit | 78157ab3ffeca37023381a422fccda2d4a0c64af (patch) | |
| tree | 11664aae5e585742647d4c0374495acd77b1aedb /crates/shirabe/src/downloader | |
| parent | 7f00f9e7f9be826863716a5a52c141eb913d03bb (diff) | |
| download | php-shirabe-78157ab3ffeca37023381a422fccda2d4a0c64af.tar.gz php-shirabe-78157ab3ffeca37023381a422fccda2d4a0c64af.tar.zst php-shirabe-78157ab3ffeca37023381a422fccda2d4a0c64af.zip | |
refactor(pcre): drop strict-groups Preg variants
Rust's type system already distinguishes participating from
non-participating capture groups via Option, so the *StrictGroups
methods add no safety here. Remove them and switch callers to the
plain variants.
Diffstat (limited to 'crates/shirabe/src/downloader')
| -rw-r--r-- | crates/shirabe/src/downloader/git_downloader.rs | 6 | ||||
| -rw-r--r-- | crates/shirabe/src/downloader/svn_downloader.rs | 27 | ||||
| -rw-r--r-- | crates/shirabe/src/downloader/zip_downloader.rs | 8 |
3 files changed, 18 insertions, 23 deletions
diff --git a/crates/shirabe/src/downloader/git_downloader.rs b/crates/shirabe/src/downloader/git_downloader.rs index b7145b6..fd2246a 100644 --- a/crates/shirabe/src/downloader/git_downloader.rs +++ b/crates/shirabe/src/downloader/git_downloader.rs @@ -99,7 +99,7 @@ impl GitDownloader { let mut refs = trim(&output, None); let mut head_match: IndexMap<CaptureKey, String> = IndexMap::new(); - if !Preg::is_match_strict_groups3(r"{^([a-f0-9]+) HEAD$}mi", &refs, Some(&mut head_match)) + if !Preg::is_match3(r"{^([a-f0-9]+) HEAD$}mi", &refs, Some(&mut head_match)) .unwrap_or(false) { // could not match the HEAD for some reason @@ -111,7 +111,7 @@ impl GitDownloader { .unwrap_or_default(); let mut branches_match: IndexMap<CaptureKey, Vec<String>> = IndexMap::new(); - if !Preg::is_match_all_strict_groups3( + if !Preg::is_match_all3( &format!("{{^{} refs/heads/(.+)$}}mi", preg_quote(&head_ref, None)), &refs, Some(&mut branches_match), @@ -138,7 +138,7 @@ impl GitDownloader { // try to find matching branch names in remote repos for candidate in &candidate_branches { let mut m: IndexMap<CaptureKey, Vec<String>> = IndexMap::new(); - if Preg::is_match_all_strict_groups3( + if Preg::is_match_all3( &format!( "{{^[a-f0-9]+ refs/remotes/((?:[^/]+)/{})$}}mi", preg_quote(candidate, None) diff --git a/crates/shirabe/src/downloader/svn_downloader.rs b/crates/shirabe/src/downloader/svn_downloader.rs index 95f25f8..e66d3ae 100644 --- a/crates/shirabe/src/downloader/svn_downloader.rs +++ b/crates/shirabe/src/downloader/svn_downloader.rs @@ -399,20 +399,19 @@ impl VcsDownloader for SvnDownloader { let url_pattern = "#<url>(.*)</url>#"; let mut matches: IndexMap<CaptureKey, String> = IndexMap::new(); - let base_url = if Preg::match_strict_groups3(url_pattern, &output, Some(&mut matches)) - .unwrap_or(false) - { - matches - .get(&CaptureKey::ByIndex(1)) - .cloned() - .unwrap_or_default() - } else { - return Err(RuntimeException { - message: format!("Unable to determine svn url for path {}", path), - code: 0, - } - .into()); - }; + let base_url = + if Preg::match3(url_pattern, &output, Some(&mut matches)).unwrap_or(false) { + matches + .get(&CaptureKey::ByIndex(1)) + .cloned() + .unwrap_or_default() + } else { + return Err(RuntimeException { + message: format!("Unable to determine svn url for path {}", path), + code: 0, + } + .into()); + }; // strip paths from references and only keep the actual revision let from_revision = diff --git a/crates/shirabe/src/downloader/zip_downloader.rs b/crates/shirabe/src/downloader/zip_downloader.rs index c5c2526..0613c15 100644 --- a/crates/shirabe/src/downloader/zip_downloader.rs +++ b/crates/shirabe/src/downloader/zip_downloader.rs @@ -116,12 +116,8 @@ impl ZipDownloader { == 0 { let mut m: IndexMap<CaptureKey, String> = IndexMap::new(); - if Preg::is_match_strict_groups3( - r"^\s*7-Zip(?:\s\[64\])?\s([0-9.]+)", - &output, - Some(&mut m), - ) - .unwrap_or(false) + if Preg::is_match3(r"^\s*7-Zip(?:\s\[64\])?\s([0-9.]+)", &output, Some(&mut m)) + .unwrap_or(false) { let m1 = m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default(); if version_compare(&m1, "21.01", "<") { |
