@@ -1,9 +1,9 @@
1use std::borrow::Cow;
1use std::borrow::Cow;
3/// Auto escape for shellwords usage.
3/// Auto escape for shellwords usage.
4−pub fn escape(input: &str) -> Cow<'_, str> {
4+pub fn escape(input: Cow<str>) -> Cow<str> {
5 if !input.chars().any(|x| x.is_ascii_whitespace()) {
5 if !input.chars().any(|x| x.is_ascii_whitespace()) {
6− Cow::Borrowed(input)
6+ input
7 } else if cfg!(unix) {
7 } else if cfg!(unix) {
8 Cow::Owned(input.chars().fold(String::new(), |mut buf, c| {
8 Cow::Owned(input.chars().fold(String::new(), |mut buf, c| {
9 if c.is_ascii_whitespace() {
9 if c.is_ascii_whitespace() {
@@ -311,15 +311,15 @@ mod test {
312 #[cfg(unix)]
312 #[cfg(unix)]
313 fn test_escaping_unix() {
313 fn test_escaping_unix() {
314− assert_eq!(escape("foobar"), Cow::Borrowed("foobar"));
314+ assert_eq!(escape("foobar".into()), Cow::Borrowed("foobar"));
315− assert_eq!(escape("foo bar"), Cow::Borrowed("foo\\ bar"));
315+ assert_eq!(escape("foo bar".into()), Cow::Borrowed("foo\\ bar"));
316− assert_eq!(escape("foo\tbar"), Cow::Borrowed("foo\\\tbar"));
316+ assert_eq!(escape("foo\tbar".into()), Cow::Borrowed("foo\\\tbar"));
320 #[cfg(windows)]
320 #[cfg(windows)]
321 fn test_escaping_windows() {
321 fn test_escaping_windows() {
322− assert_eq!(escape("foobar"), Cow::Borrowed("foobar"));
322+ assert_eq!(escape("foobar".into()), Cow::Borrowed("foobar"));
323− assert_eq!(escape("foo bar"), Cow::Borrowed("\"foo bar\""));
323+ assert_eq!(escape("foo bar".into()), Cow::Borrowed("\"foo bar\""));