]> git.proxmox.com Git - libgit2.git/commitdiff
signature: extend trimming to more whitespace
authorCarlos Martín Nieto <cmn@dwim.me>
Tue, 11 Jun 2013 08:48:00 +0000 (10:48 +0200)
committerCarlos Martín Nieto <cmn@dwim.me>
Tue, 11 Jun 2013 09:01:45 +0000 (11:01 +0200)
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.

src/signature.c
tests-clar/commit/signature.c

index cd6167fb4f835832e5b5b0c2dd56c2fadc3e829d..e338f08024b0e2a822b8030c5d04cad61ab6f3c5 100644 (file)
@@ -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--;
        }
 
index aef72a80d03784d01827c30f608fac3547ad59dc..e9dcfab41c6d8fc6a15c3bc6fe71fbf7ca0d5f3e 100644 (file)
@@ -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)