From 03cd9f222bf12a68b496bf600d631f38943fd2b2 Mon Sep 17 00:00:00 2001
From: Michael Aaron Murphy <mmstickman@gmail.com>
Date: Tue, 28 Nov 2017 15:32:20 -0500
Subject: [PATCH] Re-enable Empty Strings & Allow Empty Outputs

Closes #611
Closes #573
---
 src/parser/shell_expand/mod.rs | 4 +++-
 src/shell/job.rs               | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/parser/shell_expand/mod.rs b/src/parser/shell_expand/mod.rs
index 4a84b2cb..8eab906d 100644
--- a/src/parser/shell_expand/mod.rs
+++ b/src/parser/shell_expand/mod.rs
@@ -43,7 +43,9 @@ fn expand_process<E: Expander>(
     quoted: bool,
 ) {
     if let Some(mut output) = expander.command(command) {
-        if quoted {
+        if output.is_empty() {
+            return
+        } else if quoted {
             let output: &str = if let Some(pos) = output.rfind(|x| x != '\n') {
                 &output[..pos + 1]
             } else {
diff --git a/src/shell/job.rs b/src/shell/job.rs
index 3047e73d..514911c6 100644
--- a/src/shell/job.rs
+++ b/src/shell/job.rs
@@ -39,7 +39,7 @@ impl Job {
         let mut expanded = Array::new();
         expanded.grow(self.args.len());
         expanded.extend(
-            self.args.drain().flat_map(|arg| expand_arg(&arg, shell)).filter(|x| !x.is_empty()),
+            self.args.drain().flat_map(|arg| expand_arg(&arg, shell)),
         );
         self.args = expanded;
     }
-- 
GitLab