Junio C Hamano <[email protected]> writes:

> For completeness, here is what I think the end result (together with
> Peff's series) of the test should look like.
> ...
> Note that ssh://user:passw@rd@host:1234/ and user:passw@rd@host:/
> tests fail for the same reason (finding @ should be greedy, I think).

And I think this should make it pass.  Just remember the last
occurrence of '@' by moving the 'start' every time we see an '@'
sign.

 builtin/clone.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/builtin/clone.c b/builtin/clone.c
index cae288f..5d86439 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -160,13 +160,12 @@ static char *guess_dir_name(const char *repo, int 
is_bundle, int is_bare)
                start += 3;
 
        /*
-        * Skip authentication data.
+        * Skip authentication data, if exists.
         */
-       ptr = start;
-       while (ptr < end && !is_dir_sep(*ptr) && *ptr != '@')
-               ptr++;
-       if (*ptr == '@')
-               start = ptr + 1;
+       for (ptr = start; ptr < end && !is_dir_sep(*ptr); ptr++) {
+               if (*ptr == '@')
+                       start = ptr + 1;
+       }
 
        /*
         * Strip trailing spaces, slashes and /.git
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to