From d7c686f6c488739fc9d061bb0f89d73e6445fade Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 14 Jun 2026 13:08:21 +0900 Subject: refactor(pcre): return bool from preg_match shim preg_match can only return 1 or 0 now that compile failure panics, so return bool and update all call sites accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../src/symfony/console/command/command.rs | 2 +- .../src/symfony/console/helper/helper.rs | 4 ++-- .../src/symfony/console/input/argv_input.rs | 2 +- .../src/symfony/console/input/input.rs | 2 +- .../src/symfony/console/output/stream_output.rs | 2 +- .../src/symfony/console/question/choice_question.rs | 5 ++--- .../src/symfony/console/question/confirmation_question.rs | 2 +- .../src/symfony/console/terminal.rs | 14 +++++--------- 8 files changed, 14 insertions(+), 19 deletions(-) (limited to 'crates/shirabe-external-packages') diff --git a/crates/shirabe-external-packages/src/symfony/console/command/command.rs b/crates/shirabe-external-packages/src/symfony/console/command/command.rs index ce5f734..d811184 100644 --- a/crates/shirabe-external-packages/src/symfony/console/command/command.rs +++ b/crates/shirabe-external-packages/src/symfony/console/command/command.rs @@ -660,7 +660,7 @@ impl BaseCommand { /// Throws InvalidArgumentException when the name is invalid. fn validate_name(&self, name: &str) -> anyhow::Result> { let mut matches: Vec> = Vec::new(); - if shirabe_php_shim::preg_match(r"/^[^\:]++(\:[^\:]++)*$/", name, &mut matches) == 0 { + if !shirabe_php_shim::preg_match(r"/^[^\:]++(\:[^\:]++)*$/", name, &mut matches) { return Ok(Err(InvalidArgumentException( shirabe_php_shim::InvalidArgumentException { message: format!("Command name \"{}\" is invalid.", name), diff --git a/crates/shirabe-external-packages/src/symfony/console/helper/helper.rs b/crates/shirabe-external-packages/src/symfony/console/helper/helper.rs index 07b1f77..cc49f0a 100644 --- a/crates/shirabe-external-packages/src/symfony/console/helper/helper.rs +++ b/crates/shirabe-external-packages/src/symfony/console/helper/helper.rs @@ -38,7 +38,7 @@ impl Helper { /// Returns the width of a string, using mb_strwidth if it is available. /// The width is how many characters positions the string will use. pub fn width(string: &str) -> i64 { - if shirabe_php_shim::preg_match("//u", string, &mut Vec::new()) != 0 { + if shirabe_php_shim::preg_match("//u", string, &mut Vec::new()) { return UnicodeString::new(string).width(false); } @@ -54,7 +54,7 @@ impl Helper { /// Returns the length of a string, using mb_strlen if it is available. /// The length is related to how many bytes the string will use. pub fn length(string: &str) -> i64 { - if shirabe_php_shim::preg_match("//u", string, &mut Vec::new()) != 0 { + if shirabe_php_shim::preg_match("//u", string, &mut Vec::new()) { return UnicodeString::new(string).length(); } diff --git a/crates/shirabe-external-packages/src/symfony/console/input/argv_input.rs b/crates/shirabe-external-packages/src/symfony/console/input/argv_input.rs index 2b1102c..185d3f9 100644 --- a/crates/shirabe-external-packages/src/symfony/console/input/argv_input.rs +++ b/crates/shirabe-external-packages/src/symfony/console/input/argv_input.rs @@ -529,7 +529,7 @@ impl ArgvInput { .iter() .map(|token| { let mut r#match: Vec> = Vec::new(); - if shirabe_php_shim::preg_match("{^(-[^=]+=)(.+)}", token, &mut r#match) != 0 { + if shirabe_php_shim::preg_match("{^(-[^=]+=)(.+)}", token, &mut r#match) { return format!( "{}{}", r#match[1].as_deref().unwrap_or(""), diff --git a/crates/shirabe-external-packages/src/symfony/console/input/input.rs b/crates/shirabe-external-packages/src/symfony/console/input/input.rs index 3b4103b..5e6d9d0 100644 --- a/crates/shirabe-external-packages/src/symfony/console/input/input.rs +++ b/crates/shirabe-external-packages/src/symfony/console/input/input.rs @@ -231,7 +231,7 @@ impl Input { /// Escapes a token through escapeshellarg if it contains unsafe chars. pub fn escape_token(&self, token: &str) -> String { let mut matches: Vec> = vec![]; - if shirabe_php_shim::preg_match("{^[\\w-]+$}", token, &mut matches) != 0 { + if shirabe_php_shim::preg_match("{^[\\w-]+$}", token, &mut matches) { token.to_string() } else { shirabe_php_shim::escapeshellarg(token) diff --git a/crates/shirabe-external-packages/src/symfony/console/output/stream_output.rs b/crates/shirabe-external-packages/src/symfony/console/output/stream_output.rs index 245a071..f5e48ca 100644 --- a/crates/shirabe-external-packages/src/symfony/console/output/stream_output.rs +++ b/crates/shirabe-external-packages/src/symfony/console/output/stream_output.rs @@ -115,7 +115,7 @@ impl StreamOutput { "/^((screen|xterm|vt100|vt220|putty|rxvt|ansi|cygwin|linux).*)|(.*-256(color)?(-bce)?)$/", &term, &mut matches, - ) != 0 + ) } } diff --git a/crates/shirabe-external-packages/src/symfony/console/question/choice_question.rs b/crates/shirabe-external-packages/src/symfony/console/question/choice_question.rs index 3990df3..9de2d05 100644 --- a/crates/shirabe-external-packages/src/symfony/console/question/choice_question.rs +++ b/crates/shirabe-external-packages/src/symfony/console/question/choice_question.rs @@ -113,12 +113,11 @@ impl ChoiceQuestion { let selected_choices: Vec = if multiselect { // Check for a separated comma values let mut matches: Vec> = Vec::new(); - if shirabe_php_shim::preg_match( + if !shirabe_php_shim::preg_match( "/^[^,]+(?:,[^,]+)*$/", &shirabe_php_shim::strval(&selected), &mut matches, - ) == 0 - { + ) { return Err(InvalidArgumentException( shirabe_php_shim::InvalidArgumentException { message: shirabe_php_shim::sprintf(&error_message, &[selected.clone()]), diff --git a/crates/shirabe-external-packages/src/symfony/console/question/confirmation_question.rs b/crates/shirabe-external-packages/src/symfony/console/question/confirmation_question.rs index d52c435..5076d84 100644 --- a/crates/shirabe-external-packages/src/symfony/console/question/confirmation_question.rs +++ b/crates/shirabe-external-packages/src/symfony/console/question/confirmation_question.rs @@ -42,7 +42,7 @@ impl ConfirmationQuestion { ®ex, &shirabe_php_shim::strval(&answer), &mut matches, - ) != 0 + ) }; // false === $default diff --git a/crates/shirabe-external-packages/src/symfony/console/terminal.rs b/crates/shirabe-external-packages/src/symfony/console/terminal.rs index 1f0fb65..5733b0c 100644 --- a/crates/shirabe-external-packages/src/symfony/console/terminal.rs +++ b/crates/shirabe-external-packages/src/symfony/console/terminal.rs @@ -87,8 +87,7 @@ impl Terminal { "/^(\\d+)x(\\d+)(?: \\((\\d+)x(\\d+)\\))?$/", &shirabe_php_shim::trim(ansicon, None), &mut matches, - ) != 0 - { + ) { // extract [w, H] from "wxh (WxH)" // or [w, h] from "wxh" WIDTH.with(|w| { @@ -145,8 +144,7 @@ impl Terminal { "/rows.(\\d+);.columns.(\\d+);/i", &stty_string, &mut matches, - ) != 0 - { + ) { // extract [w, h] from "rows h; columns w;" WIDTH.with(|w| { w.set(Some(shirabe_php_shim::intval(&PhpMixed::String( @@ -162,8 +160,7 @@ impl Terminal { "/;.(\\d+).rows;.(\\d+).columns/i", &stty_string, &mut matches, - ) != 0 - { + ) { // extract [w, h] from "; h rows; w columns" WIDTH.with(|w| { w.set(Some(shirabe_php_shim::intval(&PhpMixed::String( @@ -187,12 +184,11 @@ impl Terminal { let info = info?; let mut matches: Vec> = Vec::new(); - if shirabe_php_shim::preg_match( + if !shirabe_php_shim::preg_match( "/--------+\\r?\\n.+?(\\d+)\\r?\\n.+?(\\d+)\\r?\\n/", &info, &mut matches, - ) == 0 - { + ) { return None; } -- cgit v1.3.1