From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH v2 1/2] dir: warn about trailing spaces in exclude patterns
Date: Sun, 9 Feb 2014 07:26:37 +0700 [thread overview]
Message-ID: <1391905598-19198-2-git-send-email-pclouds@gmail.com> (raw)
In-Reply-To: <1391905598-19198-1-git-send-email-pclouds@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
dir.c | 17 +++++++++++++++++
t/t0008-ignores.sh | 31 +++++++++++++++++++++++++++++++
2 files changed, 48 insertions(+)
diff --git a/dir.c b/dir.c
index b35b633..6162209 100644
--- a/dir.c
+++ b/dir.c
@@ -491,6 +491,22 @@ void clear_exclude_list(struct exclude_list *el)
el->filebuf = NULL;
}
+static void check_trailing_spaces(const char *fname, char *buf)
+{
+ int i, last_space = -1, len = strlen(buf);
+ for (i = 0; i < len; i++)
+ if (buf[i] == '\\')
+ i++;
+ else if (buf[i] == ' ')
+ last_space = i;
+ else
+ last_space = -1;
+
+ if (last_space == len - 1)
+ warning(_("%s: trailing spaces in '%s'. Please quote or remove them."),
+ fname, buf);
+}
+
int add_excludes_from_file_to_list(const char *fname,
const char *base,
int baselen,
@@ -542,6 +558,7 @@ int add_excludes_from_file_to_list(const char *fname,
if (buf[i] == '\n') {
if (entry != buf + i && entry[0] != '#') {
buf[i - (i && buf[i-1] == '\r')] = 0;
+ check_trailing_spaces(fname, entry);
add_exclude(entry, base, baselen, el, lineno);
}
lineno++;
diff --git a/t/t0008-ignores.sh b/t/t0008-ignores.sh
index b4d98e6..9e1d64c 100755
--- a/t/t0008-ignores.sh
+++ b/t/t0008-ignores.sh
@@ -775,4 +775,35 @@ test_expect_success PIPE 'streaming support for --stdin' '
echo "$response" | grep "^:: two"
'
+############################################################################
+#
+# test whitespace handling
+
+test_expect_success 'trailing whitespace is warned' '
+ mkdir whitespace &&
+ >whitespace/trailing &&
+ >whitespace/untracked &&
+ echo "whitespace/trailing " >ignore &&
+ cat >expect <<EOF &&
+whitespace/trailing
+whitespace/untracked
+EOF
+ git ls-files -o -X ignore whitespace >actual 2>err &&
+ grep "ignore:.*'\''whitespace/trailing '\''" err &&
+ test_cmp expect actual
+'
+
+test_expect_success 'quoting allows trailing whitespace' '
+ rm -rf whitespace &&
+ mkdir whitespace &&
+ >"whitespace/trailing " &&
+ >whitespace/untracked &&
+ echo "whitespace/trailing\\ \\ " >ignore &&
+ echo whitespace/untracked >expect &&
+ : >err.expect &&
+ git ls-files -o -X ignore whitespace >actual 2>err &&
+ test_cmp expect actual &&
+ test_cmp err.expect err
+'
+
test_done
--
1.8.5.2.240.g8478abd
next prev parent reply other threads:[~2014-02-09 0:27 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-08 8:10 [PATCH 0/2] Ignore trailing spaces in .gitignore Nguyễn Thái Ngọc Duy
2014-02-08 8:10 ` [PATCH 1/2] dir: warn about trailing spaces in exclude pattern Nguyễn Thái Ngọc Duy
2014-02-08 14:33 ` Torsten Bögershausen
2014-02-08 8:10 ` [PATCH 2/2] dir: ignore trailing spaces in exclude patterns Nguyễn Thái Ngọc Duy
2014-02-08 16:45 ` [PATCH 0/2] Ignore trailing spaces in .gitignore Jeff King
2014-02-08 23:48 ` Duy Nguyen
2014-02-10 1:19 ` Jeff King
2014-02-09 0:26 ` [PATCH v2 " Nguyễn Thái Ngọc Duy
2014-02-09 0:26 ` Nguyễn Thái Ngọc Duy [this message]
2014-02-09 0:26 ` [PATCH v2 2/2] dir: ignore trailing spaces in exclude patterns Nguyễn Thái Ngọc Duy
2014-02-10 4:07 ` [PATCH 0/2] Ignore trailing spaces in .gitignore Junio C Hamano
2014-02-10 4:29 ` Duy Nguyen
2014-02-10 5:04 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1391905598-19198-2-git-send-email-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.