From efe5bdb1987411a473d4af15451a376d20928245 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 12 Jun 2026 03:19:34 +0900 Subject: refactor(php-shim): replace literal sprintf calls with format! Convert every sprintf() call with a compile-time literal format string to format!, implementing Display for PhpMixed (delegating to php_to_string) so PhpMixed values render with PHP string semantics through {}. Also merge the format!-wrapped and conditional-literal dynamic sites into single format! calls. Genuinely runtime format strings (table styles, configurable error messages, command synopsis, progress-bar modifiers, regex-built messages) still go through sprintf. Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/shirabe/src/util/http/curl_downloader.rs | 40 +++++++++++-------------- 1 file changed, 18 insertions(+), 22 deletions(-) (limited to 'crates/shirabe/src/util/http') diff --git a/crates/shirabe/src/util/http/curl_downloader.rs b/crates/shirabe/src/util/http/curl_downloader.rs index a0ef54f..f1056cc 100644 --- a/crates/shirabe/src/util/http/curl_downloader.rs +++ b/crates/shirabe/src/util/http/curl_downloader.rs @@ -1527,15 +1527,13 @@ impl CurlDownloader { &job, anyhow::anyhow!( TransportException::new( - sprintf( - "IP \"%s\" is blocked for \"%s\".", - &[ - primary_ip.clone(), - progress_now - .get("url") - .cloned() - .unwrap_or(PhpMixed::Null), - ], + format!( + "IP \"{}\" is blocked for \"{}\".", + primary_ip.clone(), + progress_now + .get("url") + .cloned() + .unwrap_or(PhpMixed::Null), ), 0, ) @@ -1611,19 +1609,17 @@ impl CurlDownloader { if !target_url.is_empty() { self.io.write_error3( - &sprintf( - "Following redirect (%u) %s", - &[ - PhpMixed::Int( - job.get("attributes") - .and_then(|v| v.as_array()) - .and_then(|a| a.get("redirects")) - .and_then(|b| b.as_int()) - .unwrap_or(0) - + 1, - ), - PhpMixed::String(Url::sanitize(target_url.clone())), - ], + &format!( + "Following redirect ({}) {}", + PhpMixed::Int( + job.get("attributes") + .and_then(|v| v.as_array()) + .and_then(|a| a.get("redirects")) + .and_then(|b| b.as_int()) + .unwrap_or(0) + + 1, + ), + PhpMixed::String(Url::sanitize(target_url.clone())), ), true, crate::io::DEBUG, -- cgit v1.3.1