All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "René Scharfe" <l.s.r@web.de>
Cc: "Torsten Bögershausen" <tboegi@web.de>,
	"Git Mailing List" <git@vger.kernel.org>,
	"Karsten Blees" <karsten.blees@gmail.com>,
	"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
	"Jeff King" <peff@peff.net>
Subject: Re: [PATCH v3 03/10] setup: convert setup_git_directory_gently_1 et al. to strbuf
Date: Mon, 18 Aug 2014 09:50:06 -0700	[thread overview]
Message-ID: <xmqqk365yc75.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <53EFD1B1.4000909@web.de> ("René Scharfe"'s message of "Sat, 16 Aug 2014 23:48:33 +0200")

René Scharfe <l.s.r@web.de> writes:

>> Is there a chance to squueze this in:
>> 
>> 
>> $ git diff
>> diff --git a/setup.c b/setup.c
>> index 526cdf6..fb61860 100644
>> --- a/setup.c
>> +++ b/setup.c
>> @@ -734,7 +734,7 @@ static const char *setup_git_directory_gently_1(int *nongit_ok)
>>                  string_list_clear(&ceiling_dirs, 0);
>>          }
>> 
>> -       if (ceil_offset < 0 && has_dos_drive_prefix(cwd))
>> +       if (ceil_offset < 0 && has_dos_drive_prefix(cwd.buf))
>>                  ceil_offset = 1;
>> 
>> 
>
> Ouch, thanks for catching this.

Let me squash it in to the original change when rebuilding 'next'
sometime this week, since we have tagged 2.1 now.

> Perhaps the following patch should go in as well.

Nice; it catches the above, and shows there isn't any similar gotcha
at least for me (meaning: parts inside e.g. "#ifdef WINDOWS" that I
do not compile are not covered by "at least for me" test I did).

Thanks.

> -- >8 --
> Subject: [PATCH] turn path macros into inline function
>
> Use static inline functions instead of macros for has_dos_drive_prefix,
> offset_1st_component, is_dir_sep and find_last_dir_sep in order to let
> the compiler do type checking.
>
> The definitions of offset_1st_component and is_dir_sep are switched
> around because the former uses the latter.
>
> Signed-off-by: Rene Scharfe <l.s.r@web.de>
> ---
>  git-compat-util.h | 28 ++++++++++++++++++++++------
>  1 file changed, 22 insertions(+), 6 deletions(-)
>
> diff --git a/git-compat-util.h b/git-compat-util.h
> index f587749..0b6c13a 100644
> --- a/git-compat-util.h
> +++ b/git-compat-util.h
> @@ -264,19 +264,35 @@ extern char *gitbasename(char *);
>  #endif
>  
>  #ifndef has_dos_drive_prefix
> -#define has_dos_drive_prefix(path) 0
> +static inline int git_has_dos_drive_prefix(const char *path)
> +{
> +	return 0;
> +}
> +#define has_dos_drive_prefix git_has_dos_drive_prefix
>  #endif
>  
> -#ifndef offset_1st_component
> -#define offset_1st_component(path) (is_dir_sep((path)[0]))
> +#ifndef is_dir_sep
> +static inline int git_is_dir_sep(int c)
> +{
> +	return c == '/';
> +}
> +#define is_dir_sep git_is_dir_sep
>  #endif
>  
> -#ifndef is_dir_sep
> -#define is_dir_sep(c) ((c) == '/')
> +#ifndef offset_1st_component
> +static inline int git_offset_1st_component(const char *path)
> +{
> +	return is_dir_sep(path[0]);
> +}
> +#define offset_1st_component git_offset_1st_component
>  #endif
>  
>  #ifndef find_last_dir_sep
> -#define find_last_dir_sep(path) strrchr(path, '/')
> +static inline char *git_find_last_dir_sep(const char *path)
> +{
> +	return strrchr(path, '/');
> +}
> +#define find_last_dir_sep git_find_last_dir_sep
>  #endif
>  
>  #if defined(__HP_cc) && (__HP_cc >= 61000)

  reply	other threads:[~2014-08-18 16:50 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-28 18:21 [PATCH v3 0/10] getcwd without PATH_MAX René Scharfe
2014-07-28 18:24 ` [PATCH v3 01/10] strbuf: add strbuf_getcwd() René Scharfe
2014-07-28 18:25 ` [PATCH v3 02/10] unix-sockets: use strbuf_getcwd() René Scharfe
2014-07-28 18:51   ` Jeff King
2014-07-28 18:26 ` [PATCH v3 03/10] setup: convert setup_git_directory_gently_1 et al. to strbuf René Scharfe
2014-07-28 23:23   ` Eric Sunshine
2014-08-16 20:14   ` Torsten Bögershausen
2014-08-16 21:48     ` René Scharfe
2014-08-18 16:50       ` Junio C Hamano [this message]
2014-07-28 18:27 ` [PATCH 04/10] abspath: use strbuf_getcwd() to remember original working directory René Scharfe
2014-07-28 18:28 ` [PATCH v3 05/10] abspath: convert real_path_internal() to strbuf René Scharfe
2014-07-28 19:09   ` Jeff King
2014-07-28 22:20     ` René Scharfe
2014-07-28 19:16   ` Jeff King
2014-07-28 21:42     ` Junio C Hamano
2014-07-29  0:04       ` René Scharfe
2014-07-29 16:44         ` Junio C Hamano
2014-07-29  0:05   ` fixup for 05/10: plug leak René Scharfe
2014-07-28 18:29 ` [PATCH v3 06/10] wrapper: add xgetcwd() René Scharfe
2014-07-28 18:30 ` [PATCH v3 07/10] use xgetcwd() to get the current directory or die René Scharfe
2014-07-28 18:31 ` [PATCH v3 08/10] use xgetcwd() to set $GIT_DIR René Scharfe
2014-07-28 18:33 ` [PATCH v3 09/10] abspath: convert absolute_path() to strbuf René Scharfe
2014-07-28 19:15   ` Jeff King
2014-07-28 22:34     ` René Scharfe
2014-07-29  0:05   ` fixup for 09/10: plug leak René Scharfe
2014-07-28 18:34 ` [PATCH v3 10/10] use strbuf_add_absolute_path() to add absolute paths René Scharfe
2014-07-28 18:37 ` [PATCH v3 04/10] abspath: use strbuf_getcwd() to remember original working directory René Scharfe
2014-07-28 19:19 ` [PATCH v3 0/10] getcwd without PATH_MAX Jeff King

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqk365yc75.fsf@gitster.dls.corp.google.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=karsten.blees@gmail.com \
    --cc=l.s.r@web.de \
    --cc=pclouds@gmail.com \
    --cc=peff@peff.net \
    --cc=tboegi@web.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.