From 63e68934f62dfb610ae4eabdf5bb34df1b58f607 Mon Sep 17 00:00:00 2001 From: "A. Taha Baki" Date: Sat, 3 May 2025 16:10:51 +0300 Subject: [PATCH] Numbers proceeded with the escape character ignored fix (#15684) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #15675 I've added relevant test cases to ensure coverage of the identified bug. The issue originated from my crate and pertains to the bracoxide dependency—a bug I’ve internally referred to as IgnorantNumbers. I’ve submitted a fix and updated the bracoxide dependency accordingly. --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- crates/nu-command/src/strings/str_/expand.rs | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dfa2b742f1..1e2ed1c6ec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -761,9 +761,9 @@ dependencies = [ [[package]] name = "bracoxide" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f52991c481aa9d7518254cfb6ce5726d24ff8c5d383d6422cd3793729b0962a" +checksum = "3572b24445a122332bb25a2637248d62ca8b567351d98b1194ca4132c61810bd" [[package]] name = "brotli" diff --git a/Cargo.toml b/Cargo.toml index 650656d899..3a5c187c66 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -66,7 +66,7 @@ alphanumeric-sort = "1.5" ansi-str = "0.8" anyhow = "1.0.82" base64 = "0.22.1" -bracoxide = "0.1.5" +bracoxide = "0.1.6" brotli = "7.0" byteorder = "1.5" bytes = "1" diff --git a/crates/nu-command/src/strings/str_/expand.rs b/crates/nu-command/src/strings/str_/expand.rs index e6caa213b5..377ed8e757 100644 --- a/crates/nu-command/src/strings/str_/expand.rs +++ b/crates/nu-command/src/strings/str_/expand.rs @@ -376,6 +376,20 @@ mod tests { ); } + #[test] + fn test_numbers_proceeding_escape_char_not_ignored() { + assert_eq!( + str_expand("1\\\\{a,b}", Span::test_data(), Span::test_data()), + Value::list( + vec![ + Value::string(String::from("1\\a"), Span::test_data(),), + Value::string(String::from("1\\b"), Span::test_data(),) + ], + Span::test_data(), + ) + ); + } + #[test] fn test_examples() { use crate::test_examples;