From b00a49eab2dc9feb54ea0680db83adf4db6a25a0 Mon Sep 17 00:00:00 2001 From: Joseph Crail Date: Thu, 7 May 2015 16:50:54 -0400 Subject: [PATCH] Unescape all special characters in delimiter list. --- src/paste/paste.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/paste/paste.rs b/src/paste/paste.rs index 9d46070eb..fa9d0e6c9 100644 --- a/src/paste/paste.rs +++ b/src/paste/paste.rs @@ -67,8 +67,10 @@ fn paste(filenames: Vec, serial: bool, delimiters: String) { } ) ).collect(); - let delimiters: Vec = delimiters.chars().map(|x| x.to_string()).collect(); + + let delimiters: Vec = unescape(delimiters).chars().map(|x| x.to_string()).collect(); let mut delim_count = 0; + if serial { for file in files.iter_mut() { let mut output = String::new(); @@ -116,3 +118,12 @@ fn paste(filenames: Vec, serial: bool, delimiters: String) { } } } + +// Unescape all special characters +// TODO: this will need work to conform to GNU implementation +fn unescape(s: String) -> String { + s.replace("\\n", "\n") + .replace("\\t", "\t") + .replace("\\\\", "\\") + .replace("\\", "") +}