From 21e473f92a3b96a01a47f346ff552a25ee6f8ed4 Mon Sep 17 00:00:00 2001
From: Xavier L'Heureux <xavier.lheureux@icloud.com>
Date: Mon, 8 Apr 2019 18:09:05 -0400
Subject: [PATCH] Allow comments if first char

---
 src/lib/parser/quotes.rs       | 2 +-
 src/lib/shell/binary/readln.rs | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/parser/quotes.rs b/src/lib/parser/quotes.rs
index d494132f..61ddfc91 100644
--- a/src/lib/parser/quotes.rs
+++ b/src/lib/parser/quotes.rs
@@ -192,7 +192,7 @@ impl<I: Iterator<Item = u8>> Terminator<I> {
                 self.array -= 1;
                 Some(b']')
             }
-            b'#' if prev_whitespace => {
+            b'#' if prev_whitespace || self.inner.prev().is_none() => {
                 self.inner.find(|&c| c == b'\n');
                 if self.array == 0 && self.subshell == 0 && !self.and_or && !self.empty {
                     self.terminated = true;
diff --git a/src/lib/shell/binary/readln.rs b/src/lib/shell/binary/readln.rs
index 205366f9..f690a3ed 100644
--- a/src/lib/shell/binary/readln.rs
+++ b/src/lib/shell/binary/readln.rs
@@ -101,7 +101,7 @@ pub(crate) fn readln(shell: &mut Shell) -> Option<String> {
 
     match line {
         Ok(line) => {
-            if line.bytes().any(|c| !c.is_ascii_whitespace()) {
+            if line.bytes().next() != Some(b'#') && line.bytes().any(|c| !c.is_ascii_whitespace()) {
                 shell.flags |= flags::UNTERMINATED;
             }
             Some(line)
-- 
GitLab