diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-08-16 16:24:58 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-08-16 16:47:52 +0900 |
| commit | 5ed66b5485d20203970d594229d32458b3244ebb (patch) | |
| tree | 6a88bfa7c127b82ec06406ee7a5b8e29e33e4fcc /crates/shirabe/src/package | |
| parent | 5e4bd47bf92e2fe151e3905ee8ab9972c9f70f8d (diff) | |
| download | php-shirabe-5ed66b5485d20203970d594229d32458b3244ebb.tar.gz php-shirabe-5ed66b5485d20203970d594229d32458b3244ebb.tar.zst php-shirabe-5ed66b5485d20203970d594229d32458b3244ebb.zip | |
fix(php-shim): accept negative offsets in substr_replace
The signature took usize, so PHP's negative $start and $length, which
count from the end of the string, could not be expressed. Take i64 and
an optional length, and apply PHP's clamping rules.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/package')
| -rw-r--r-- | crates/shirabe/src/package/version/version_bumper.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/crates/shirabe/src/package/version/version_bumper.rs b/crates/shirabe/src/package/version/version_bumper.rs index c0e76520..fcdbf246 100644 --- a/crates/shirabe/src/package/version/version_bumper.rs +++ b/crates/shirabe/src/package/version/version_bumper.rs @@ -112,10 +112,12 @@ impl VersionBumper { } else { format!("{}{}", new_pretty_constraint, suffix) }; - let offset = match_offset as usize; - let length = Platform::strlen(match_str) as usize; - modified = - shirabe_php_shim::substr_replace(&modified, &replacement, offset, length); + modified = shirabe_php_shim::substr_replace( + &modified, + &replacement, + match_offset, + Some(Platform::strlen(match_str)), + ); } let new_constraint = parser.parse_constraints(&modified)?; |
