1
Fork 0
mirror of https://github.com/RGBCube/alejandra synced 2025-08-01 13:07:47 +00:00

fix: use utf-8 length instead of byte length

This commit is contained in:
Kevin Amado 2022-02-24 13:56:41 -05:00
parent 8213b1fecb
commit 08627c847e
4 changed files with 23 additions and 3 deletions

View file

@ -17,6 +17,18 @@ Types of changes
- Security in case of vulnerabilities. - Security in case of vulnerabilities.
--> -->
### Fixed
- Multiline strings are handled as utf-8 correctly, preventing panics
on utf-8 whitespace like:
```nix
''
foo
\u{2002}bar
''
```
## [0.5.0] - 2022-02-23 ## [0.5.0] - 2022-02-23
### Changed ### Changed

View file

@ -73,7 +73,7 @@ pub fn rule(
if !line.is_empty() { if !line.is_empty() {
indentation = usize::min( indentation = usize::min(
indentation, indentation,
line.len() - line.trim_start().len(), line.chars().count() - line.trim_start().chars().count(),
); );
} }
} }
@ -85,8 +85,8 @@ pub fn rule(
lines = lines lines = lines
.iter() .iter()
.map(|line| { .map(|line| {
if indentation < line.len() { if indentation < line.chars().count() {
line[indentation..line.len()].to_string() line.chars().skip(indentation).collect::<String>()
} else { } else {
line.to_string() line.to_string()
} }

View file

@ -1,4 +1,8 @@
[ [
''
foo
bar
''
"" ""
### ###
" "

View file

@ -1,4 +1,8 @@
[ [
''
foo
bar
''
"" ""
### ###
" "