From 2cd72b0b290e40fb4d6a925ce26603503f01aa09 Mon Sep 17 00:00:00 2001
From: Steffen Prohaska <prohaska@zib.de>
Date: Sun, 18 Jan 2009 13:00:11 +0100
Subject: [PATCH] git_extract_argv0_path(): Move check for valid argv0 from
 caller to callee

This simplifies the calling code.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 exec_cmd.c | 6 +++++-
 git.c      | 5 ++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/exec_cmd.c b/exec_cmd.c
index e508f1e66d..f8f416b646 100644
--- a/exec_cmd.c
+++ b/exec_cmd.c
@@ -22,7 +22,11 @@ const char *system_path(const char *path)
 
 const char *git_extract_argv0_path(const char *argv0)
 {
-	const char *slash = argv0 + strlen(argv0);
+	const char *slash;
+
+	if (!argv0 || !*argv0)
+		return NULL;
+	slash = argv0 + strlen(argv0);
 
 	while (argv0 <= slash && !is_dir_sep(*slash))
 		slash--;
diff --git a/git.c b/git.c
index bf21e21cef..320cb43564 100644
--- a/git.c
+++ b/git.c
@@ -444,9 +444,8 @@ int main(int argc, const char **argv)
 {
 	const char *cmd;
 
-	if (argv[0] && *argv[0])
-		cmd = git_extract_argv0_path(argv[0]);
-	else
+	cmd = git_extract_argv0_path(argv[0]);
+	if (!cmd)
 		cmd = "git-help";
 
 	/*