git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3/5] Add is_root_path()

From
Johannes Sixt <j6t@kdbg.org>
Date
Feb 12, 2010, 10:11 UTC
Message-ID
<4B75294B.8080205@kdbg.org>
In-Reply-To
<1265899403-15904-4-git-send-email-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy schrieb:
> This function returns the length of the root part of a path, or zero if
> there is no root.

That is, the function primarily doesn't act as a predicate, and in fact you never use it as such.

I just noticed that this function is identical to offset_1st_component() in sha1_file.c.

Show 18 quoted lines
> --- a/git-compat-util.h
> +++ b/git-compat-util.h
> @@ -210,6 +210,17 @@ static inline const char *skip_prefix(const char *str, const char *prefix)
>  	return strncmp(str, prefix, len) ? NULL : str + len;
>  }
>  
> +/* path must be canonical */
> +static inline int is_root_path(const char *path)
> +{
> +	int len = 0;
> +	if (has_dos_drive_prefix(path))
> +		len += 2;
> +	if (is_dir_sep(path[len]))
> +		len++;
> +	return len;
> +}
> +
>  #if defined(NO_MMAP) || defined(USE_WIN32_MMAP)

This is not a good location for this function because on Windows we get warnings about implicitly defined function isalpha() (which is hidden in the macro has_dos_drive_prefix).

I suggest to move offset_1st_component() to path.c, which would not be inlined anymore.

-- Hannes
Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 5 of 10 in “Worktree/Gitdir at root directory”
  1. 0/5 Worktree/Gitdir at root directoryNguyễn Thái Ngọc Duy, Feb 11, 2010
  2. 1/5 make_absolute_path(): Do not append redundant slashNguyễn Thái Ngọc Duy, Feb 11, 2010
  3. 2/5 init-db, rev-parse --git-dir: do not append redundant slashNguyễn Thái Ngọc Duy, Feb 11, 2010
  4. 3/5 Add is_root_path()Nguyễn Thái Ngọc Duy, Feb 11, 2010
  5. Johannes SixtFeb 12, 2010
  6. 4/5 Support working directory located at rootNguyễn Thái Ngọc Duy, Feb 11, 2010
  7. 5/5 Add test for using Git at root directoryNguyễn Thái Ngọc Duy, Feb 11, 2010
  8. Johannes SixtFeb 12, 2010
  9. João Carlos Mendes LuísFeb 12, 2010
  10. Johannes SixtFeb 12, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.