git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Nguyen Thai Ngoc Duy <pclouds@gmail.com>
Cc: mhagger@alum.mit.edu, Johannes Sixt <j6t@kdbg.org>,
	git@vger.kernel.org, Orgad and Raizel Shaneh <orgads@gmail.com>,
	msysGit <msysgit@googlegroups.com>
Subject: Re: [PATCH 7/7] t0000: verify that real_path() removes extra slashes
Date: Thu, 06 Sep 2012 10:34:52 -0700	[thread overview]
Message-ID: <7vharb3vib.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <20120906054407.GA25981@duynguyen-vnpc.dek-tpc.internal> (Nguyen Thai Ngoc Duy's message of "Thu, 6 Sep 2012 12:44:07 +0700")

Nguyen Thai Ngoc Duy <pclouds@gmail.com> writes:

> Just an idea. We could unify "[a-z]:" and "//host" into "dos root"
> concept. That would teach other code paths about UNC paths too.
> ...
> diff --git a/path.c b/path.c
> index 66acd24..0e4e2d7 100644
> --- a/path.c
> +++ b/path.c
> @@ -498,11 +498,12 @@ const char *relative_path(const char *abs, const char *base)
>  int normalize_path_copy(char *dst, const char *src)
>  {
>  	char *dst0;
> +	int i, len;
>  
> -	if (has_dos_drive_prefix(src)) {
> +	len = offset_1st_component(src, 1);
> +	for (i = 0; i < len; i++)
>  		*dst++ = *src++;
> -		*dst++ = *src++;
> -	}
> +
>  	dst0 = dst;

Modulo that I suspect you could get rid of offset_1st_component()
altogether and has_dos_drive_prefix() return the length of the "d:"
or "//d" part (which needs to be copied literally regardless of the
"normalization"), what you suggest feels like the right approach.
Why do you need the "keep_root" parameter and do things differently
depending on the setting by the way?  Wouldn't "skip the root level
when computing the offset of the first path component" something the
caller can easily decide to do or not to do, and wouldn't it make
the semantics of the function cleaner and simpler by making it do
only one thing and one thing well?

  reply	other threads:[~2012-09-06 17:35 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-04  8:14 [PATCH 0/7] Fix some bugs in abspath.c mhagger
2012-09-04  8:14 ` [PATCH 1/7] t0000: verify that absolute_path() fails if passed the empty string mhagger
2012-09-04  8:14 ` [PATCH 2/7] absolute_path(): reject " mhagger
2012-09-04  8:14 ` [PATCH 3/7] t0000: verify that real_path() fails if passed " mhagger
2012-09-04  8:14 ` [PATCH 4/7] real_path(): reject " mhagger
2012-09-04  8:14 ` [PATCH 5/7] t0000: verify that real_path() works correctly with absolute paths mhagger
2012-09-05  8:40   ` Johannes Sixt
2012-09-06 21:11     ` Michael Haggerty
2012-09-06 23:08   ` Junio C Hamano
2012-09-09  4:31     ` Michael Haggerty
2012-09-09  4:50       ` Junio C Hamano
2012-09-09  5:27         ` Junio C Hamano
2012-09-04  8:14 ` [PATCH 6/7] real_path(): properly handle nonexistent top-level paths mhagger
2012-09-04  8:14 ` [PATCH 7/7] t0000: verify that real_path() removes extra slashes mhagger
2012-09-04 18:19   ` Junio C Hamano
2012-09-05 10:52     ` Nguyen Thai Ngoc Duy
     [not found]       ` <CAGHpTB+LipLt3CgVt5O0s9xj5HHf9Y5z9QWEy+FKYH8s4O7Q2w@mail.gmail.com>
2012-09-05 11:13         ` Nguyen Thai Ngoc Duy
2012-09-06  3:23       ` Junio C Hamano
2012-09-06  5:44         ` Nguyen Thai Ngoc Duy
2012-09-06 17:34           ` Junio C Hamano [this message]
2012-09-07  1:18             ` Nguyen Thai Ngoc Duy
2012-09-05  8:40   ` Johannes Sixt
2012-09-06 22:30     ` Michael Haggerty
2012-09-04 18:08 ` [PATCH 0/7] Fix some bugs in abspath.c Junio C Hamano
2012-09-04 19:03   ` Junio C Hamano

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=7vharb3vib.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=j6t@kdbg.org \
    --cc=mhagger@alum.mit.edu \
    --cc=msysgit@googlegroups.com \
    --cc=orgads@gmail.com \
    --cc=pclouds@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).