forked from extern/nushell
use to_lowercase
in str downcase
(#10850)
# Description as we can see in the [documentation of `str.to_lowercase`](https://doc.rust-lang.org/std/primitive.str.html#method.to_lowercase), not only ASCII symbols have lower and upper variants. - `str upcase` uses the correct method to convert the string7ac5a01e2f/crates/nu-command/src/strings/str_/case/upcase.rs (L93)
- `str downcase` incorrectly converts only ASCII characters7ac5a01e2f/crates/nu-command/src/strings/str_/case/downcase.rs (L124)
this PR uses `str.to_lower_case` instead of `str.to_ascii_lowercase` in `str downcase`. # User-Facing Changes - upcase still works fine ```nushell ~ l> "ὀδυσσεύς" | str upcase ὈΔΥΣΣΕΎΣ ``` - downcase now works 👉 before ```nushell ~ l> "ὈΔΥΣΣΕΎΣ" | str downcase ὈΔΥΣΣΕΎΣ ``` 👉 after ```nushell ~ l> "ὈΔΥΣΣΕΎΣ" | str downcase ὀδυσσεύς ``` # Tests + Formatting - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - ⚫ `toolkit test` - ⚫ `toolkit test stdlib` adds two tests - `non_ascii_upcase` - `non_ascii_downcase` # After Submitting
This commit is contained in:
parent
7ac5a01e2f
commit
01d8961eb7
@ -121,7 +121,7 @@ fn operate(
|
||||
|
||||
fn action(input: &Value, head: Span) -> Value {
|
||||
match input {
|
||||
Value::String { val, .. } => Value::string(val.to_ascii_lowercase(), head),
|
||||
Value::String { val, .. } => Value::string(val.to_lowercase(), head),
|
||||
Value::Error { .. } => input.clone(),
|
||||
_ => Value::error(
|
||||
ShellError::OnlySupportsThisInputType {
|
||||
|
@ -76,6 +76,13 @@ fn downcases() {
|
||||
})
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn non_ascii_downcase() {
|
||||
let actual = nu!("'ὈΔΥΣΣΕΎΣ' | str downcase");
|
||||
|
||||
assert_eq!(actual.out, "ὀδυσσεύς");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn upcases() {
|
||||
Playground::setup("str_test_4", |dirs, sandbox| {
|
||||
@ -96,6 +103,13 @@ fn upcases() {
|
||||
})
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn non_ascii_upcase() {
|
||||
let actual = nu!("'ὀδυσσεύς' | str upcase");
|
||||
|
||||
assert_eq!(actual.out, "ὈΔΥΣΣΕΎΣ");
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[ignore = "Playgrounds are not supported in nu-cmd-extra"]
|
||||
fn camelcases() {
|
||||
|
Loading…
Reference in New Issue
Block a user