# [PATCH] exec_cmd.c: use find_last_dir_sep() for code simplification

2 messages from 2016-02-19 to 2016-02-19. Participants: Alexander Kuleshov, Junio C Hamano.
Thread: https://gitlist.dev/t/41444

## Alexander Kuleshov, 2016-02-19 08:44

Subject: [PATCH] exec_cmd.c: use find_last_dir_sep() for code simplification
Message-ID: <1455871488-10460-1-git-send-email-kuleshovmail@gmail.com>
URL: https://gitlist.dev/e/1455871488-10460-1-git-send-email-kuleshovmail%40gmail.com

```
We are trying to extract dirname from argv0 in the git_extract_argv0_path().
But in the same time, the <git-compat-util.h> provides find_last_dir_sep()
to get dirname from a given path.  Let's use it instead of loop for the code
simplification.

Signed-off-by: Alexander Kuleshov <kuleshovmail@gmail.com>
---
 exec_cmd.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/exec_cmd.c b/exec_cmd.c
index e85f0fd..680b257 100644
--- a/exec_cmd.c
+++ b/exec_cmd.c
@@ -43,12 +43,10 @@ const char *git_extract_argv0_path(const char *argv0)
 
 	if (!argv0 || !*argv0)
 		return NULL;
-	slash = argv0 + strlen(argv0);
 
-	while (argv0 <= slash && !is_dir_sep(*slash))
-		slash--;
+	slash = find_last_dir_sep(argv0);
 
-	if (slash >= argv0) {
+	if (slash) {
 		argv0_path = xstrndup(argv0, slash - argv0);
 		return slash + 1;
 	}
-- 
2.4.4.764.g5dbb725.dirty

```

## Junio C Hamano, 2016-02-19 21:28

Subject: Re: [PATCH] exec_cmd.c: use find_last_dir_sep() for code simplification
Message-ID: <xmqqlh6gbdao.fsf@gitster.mtv.corp.google.com>
URL: https://gitlist.dev/e/xmqqlh6gbdao.fsf%40gitster.mtv.corp.google.com
In-Reply-To: <1455871488-10460-1-git-send-email-kuleshovmail@gmail.com>

```
Alexander Kuleshov <kuleshovmail@gmail.com> writes:

> We are trying to extract dirname from argv0 in the git_extract_argv0_path().
> But in the same time, the <git-compat-util.h> provides find_last_dir_sep()
> to get dirname from a given path.  Let's use it instead of loop for the code
> simplification.
>
> Signed-off-by: Alexander Kuleshov <kuleshovmail@gmail.com>
> ---

Looks correct.  Thanks.

>  exec_cmd.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/exec_cmd.c b/exec_cmd.c
> index e85f0fd..680b257 100644
> --- a/exec_cmd.c
> +++ b/exec_cmd.c
> @@ -43,12 +43,10 @@ const char *git_extract_argv0_path(const char *argv0)
>  
>  	if (!argv0 || !*argv0)
>  		return NULL;
> -	slash = argv0 + strlen(argv0);
>  
> -	while (argv0 <= slash && !is_dir_sep(*slash))
> -		slash--;
> +	slash = find_last_dir_sep(argv0);
>  
> -	if (slash >= argv0) {
> +	if (slash) {
>  		argv0_path = xstrndup(argv0, slash - argv0);
>  		return slash + 1;
>  	}

```
