This applies on top of sb/submodule-parallel-update, replacing sb/submodule-init. Fixes: * a more faithful conversion by staying on stdout (We switch to stderr later in another series) * use the existing find_last_dir_sep instead of reinventing the wheel. Stefan Beller (2): submodule: port resolve_relative_url from shell to C submodule: port init from shell to C builtin/submodule--helper.c | 321 +++++++++++++++++++++++++++++++++++++++++++- git-submodule.sh | 118 +--------------- t/t0060-path-utils.sh | 42 ++++++ 3 files changed, 361 insertions(+), 120 deletions(-) Interdiff to origin/sb/submodule-init (committed 2016-01-20 12:55:30) diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c index 4684f16..c9b0c05 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -51,21 +51,12 @@ static int starts_with_dot_dot_slash(const char *str) return str[0] == '.' && str[1] == '.' && is_dir_sep(str[2]); } -static char *last_dir_separator(char *str) -{ - char *p = str + strlen(str); - while (p-- > str) - if (is_dir_sep(*p)) - return p; - return NULL; -} - /* * Returns 1 if it was the last chop before ':'. */ static int chop_last_dir(char **remoteurl, int is_relative) { - char *rfind = last_dir_separator(*remoteurl); + char *rfind = find_last_dir_sep(*remoteurl); if (rfind) { *rfind = '\0'; return 0; @@ -232,7 +223,7 @@ static void init_submodule(const char *path, const char *prefix, int quiet) struct strbuf sb = STRBUF_INIT; char *url = NULL; const char *upd = NULL; - const char *displaypath = relative_path(xgetcwd(), prefix, &sb);; + const char *displaypath = relative_path(xgetcwd(), prefix, &sb); /* Only loads from .gitmodules, no overlay with .git/config */ gitmodules_config(); @@ -276,7 +267,7 @@ static void init_submodule(const char *path, const char *prefix, int quiet) die(_("Failed to register url for submodule path '%s'"), displaypath); if (!quiet) - fprintf(stderr, _("Submodule '%s' (%s) registered for path '%s'\n"), + printf(_("Submodule '%s' (%s) registered for path '%s'\n"), sub->name, url, displaypath); free(url); } -- 2.7.0.rc0.45.g0dba895.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html