Skip to content

Commit 2ffaf7a

Browse files
committed
Do not use bstr's "unicode" feature
Avoiding this feature eliminates the transitive regex-automata dependency. The cost is that instead of trimming all unicode whitespace from &[u8], now only ascii whitespace is trimmed. Given that the &[u8] slices represent diffs, this seems like an okay compromise.
1 parent 956c93e commit 2ffaf7a

File tree

4 files changed

+9
-14
lines changed

4 files changed

+9
-14
lines changed

Cargo.lock

Lines changed: 0 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ name = "stg"
1818
[dependencies]
1919
anyhow = "1.0"
2020
atty = "0.2"
21-
bstr = "0.2"
21+
bstr = { version = "0.2", default-features = false, features = ["std"] }
2222
chrono = { version = "0.4", default-features = false, features = ["clock"] }
2323
clap = { version = "3.1", default-features = false, features = ["color", "std", "suggestions", "wrap_help"] }
2424
encoding_rs = "0.8"

src/cmd/import.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ fn import_series(
363363
.find_char('#')
364364
.map(|pos| &line[..pos])
365365
.unwrap_or(line)
366-
.trim();
366+
.trim_with(|c| c.is_ascii_whitespace());
367367
if line.is_empty() {
368368
continue;
369369
}
@@ -617,7 +617,7 @@ fn create_patch<'repo>(
617617
.map(|s| s.parse::<usize>().expect("clap already validated"))
618618
});
619619

620-
let trimmed_diff = diff.trim_end();
620+
let trimmed_diff = diff.trim_end_with(|c| c.is_ascii_whitespace());
621621

622622
let tree_id = if trimmed_diff.is_empty() || trimmed_diff == b"---" {
623623
stack.branch_head.tree_id()
@@ -735,15 +735,18 @@ impl Headers {
735735
let mut split_message = Vec::with_capacity(message.len());
736736
let mut lines = message.lines_with_terminator();
737737

738-
while let Some(line) = lines.next().map(|line| line.trim()) {
738+
while let Some(line) = lines
739+
.next()
740+
.map(|line| line.trim_with(|c| c.is_ascii_whitespace()))
741+
{
739742
if line.is_empty() {
740743
continue;
741744
}
742745

743746
let parts: Vec<_> = line.splitn_str(2, b":").collect();
744747
if parts.len() == 2 {
745748
let header = parts[0];
746-
let value = parts[1].trim_start();
749+
let value = parts[1].trim_start_with(|c| c.is_ascii_whitespace());
747750
if header.eq_ignore_ascii_case(b"patch") && !value.is_empty() {
748751
headers.patchname = Some(
749752
value

src/cmd/sync.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ fn run(matches: &clap::ArgMatches) -> Result<()> {
127127
.find_char('#')
128128
.map(|pos| &line[..pos])
129129
.unwrap_or(line)
130-
.trim();
130+
.trim_with(|c| c.is_ascii_whitespace());
131131
if line.is_empty() {
132132
continue;
133133
}

0 commit comments

Comments
 (0)