diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2013-06-11 10:48:00 +0200 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2013-06-11 11:01:45 +0200 |
commit | 24ec69998db55478af24b471b9000bd56113abd6 (patch) | |
tree | 87e2d460bbd239b5861a1c4762301b15c960c719 | |
parent | 3de768ca2f148777f099c67114d0419a90b6eea1 (diff) | |
download | libgit2-24ec69998db55478af24b471b9000bd56113abd6.tar.gz |
signature: extend trimming to more whitespace
There are all sorts of misconfiguration in the wild. We already rely
on the signature constructor to trim SP. Extend the logic to use
`isspace` to decide whether a character should be trimmed.
-rw-r--r-- | src/signature.c | 4 | ||||
-rw-r--r-- | tests-clar/commit/signature.c | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/signature.c b/src/signature.c index cd6167fb4..e338f0802 100644 --- a/src/signature.c +++ b/src/signature.c @@ -35,11 +35,11 @@ static bool contains_angle_brackets(const char *input) static char *extract_trimmed(const char *ptr, size_t len) { - while (len && ptr[0] == ' ') { + while (len && git__isspace(ptr[0])) { ptr++; len--; } - while (len && ptr[len - 1] == ' ') { + while (len && git__isspace(ptr[len - 1])) { len--; } diff --git a/tests-clar/commit/signature.c b/tests-clar/commit/signature.c index aef72a80d..e9dcfab41 100644 --- a/tests-clar/commit/signature.c +++ b/tests-clar/commit/signature.c @@ -31,6 +31,8 @@ static void assert_name_and_email( void test_commit_signature__leading_and_trailing_spaces_are_trimmed(void) { assert_name_and_email("nulltoken", "emeric.fermas@gmail.com", " nulltoken ", " emeric.fermas@gmail.com "); + assert_name_and_email("nulltoken", "emeric.fermas@gmail.com", " nulltoken ", " emeric.fermas@gmail.com \n"); + assert_name_and_email("nulltoken", "emeric.fermas@gmail.com", " \t nulltoken \n", " \n emeric.fermas@gmail.com \n"); } void test_commit_signature__angle_brackets_in_names_are_not_supported(void) |