From e093b2be1c333e67c96aebb0a5291bea9ae3d6db Mon Sep 17 00:00:00 2001 From: nsfisis Date: Tue, 18 Aug 2026 01:57:02 +0900 Subject: refactor(preg): drop the offset argument from preg_match Every call site but one passed offset 0. The remaining one, the UTF-8 chunking loop in Application, slices the subject instead: its pattern has no anchor or lookaround, so matching a suffix is equivalent to starting the search at that offset. Co-Authored-By: Claude Opus 5 (1M context) --- crates/shirabe/src/console/application.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'crates/shirabe/src/console/application.rs') diff --git a/crates/shirabe/src/console/application.rs b/crates/shirabe/src/console/application.rs index 25379a27..54df0b05 100644 --- a/crates/shirabe/src/console/application.rs +++ b/crates/shirabe/src/console/application.rs @@ -61,7 +61,7 @@ use shirabe_php_shim::{ dirname, disk_free_space, extension_loaded, file_exists, file_get_contents, file_put_contents, function_exists, getcwd, getmypid, glob, ini_set, is_array, is_dir, is_file, is_string, json_decode_assoc, memory_get_peak_usage, memory_get_usage, microtime, php_regex, php_uname, - posix_getuid, preg_grep, preg_match2, preg_quote, preg_split, random_bytes, realpath, + posix_getuid, preg_grep, preg_match, preg_quote, preg_split, random_bytes, realpath, restore_error_handler, round, str_replace, strpos, strtoupper, sys_get_temp_dir, time, unlink, }; use shirabe_seld_json_lint::ParsingException; @@ -1789,11 +1789,10 @@ impl Application { let mut lines: Vec = Vec::new(); let mut line = String::new(); - let mut offset = 0i64; - while let Some(m) = preg_match2(php_regex!(r"/.{1,10000}/u"), &utf8_string, offset as usize) - { + let mut offset = 0usize; + while let Some(m) = preg_match(php_regex!(r"/.{1,10000}/u"), &utf8_string[offset..]) { let m0 = m.get(0).unwrap_or(""); - offset += shirabe_php_shim::strlen(m0); + offset += shirabe_php_shim::strlen(m0) as usize; let chunk = m0; for char in chunk -- cgit v1.3.1-4-g156e