From 62887c7a58b0f5e4045a418aa2df09e9b2a54654 Mon Sep 17 00:00:00 2001 From: zhitkoff Date: Thu, 2 Nov 2023 10:36:15 -0400 Subject: [PATCH] split: directory separator in additional suffix --- src/uu/split/src/filenames.rs | 3 ++- tests/by-util/test_split.rs | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/uu/split/src/filenames.rs b/src/uu/split/src/filenames.rs index 80243c2bc..843e11ea0 100644 --- a/src/uu/split/src/filenames.rs +++ b/src/uu/split/src/filenames.rs @@ -40,6 +40,7 @@ use crate::{ }; use clap::ArgMatches; use std::fmt; +use std::path::is_separator; use uucore::display::Quotable; use uucore::error::{UResult, USimpleError}; @@ -230,7 +231,7 @@ impl Suffix { .get_one::(OPT_ADDITIONAL_SUFFIX) .unwrap() .to_string(); - if additional.contains('/') || additional.contains('\\') { + if additional.chars().any(is_separator) { return Err(SuffixError::ContainsSeparator(additional)); } diff --git a/tests/by-util/test_split.rs b/tests/by-util/test_split.rs index e0e85be48..aec6f0594 100644 --- a/tests/by-util/test_split.rs +++ b/tests/by-util/test_split.rs @@ -247,11 +247,14 @@ fn test_split_additional_suffix() { } #[test] -fn test_additional_suffix_no_slash() { +fn test_additional_suffix_dir_separator() { + #[cfg(unix)] new_ucmd!() .args(&["--additional-suffix", "a/b"]) .fails() .usage_error("invalid suffix 'a/b', contains directory separator"); + + #[cfg(windows)] new_ucmd!() .args(&["--additional-suffix", "a\\b"]) .fails()