Re: Dokumenting api-paths.txt
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 22, 2013, 17:29 UTC
- Message-ID
- <xmqqy57tr5wh.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <52154282.60701@googlemail.com>
Stefan Beller <stefanbeller@googlemail.com> writes:
Show 7 quoted lines
>> git_path is for resolving paths within GIT_DIR, such as
>> git_path("config") and git_path("COMMIT_EDITMSG").
>>
>> Jonathan
>
> Before we're doing double work, I just wrote down my understanding
> so far. Feel free to tweak it, or remove obvious parts.> path API > ========
I am not sure if they deserve to be called "API"; it is just a set of simple helper functions.
Show 16 quoted lines
> `mkpath`::
> The parameters are in printf format. This function can be
> used to construct short-lived filename strings. It is meant
> to be used for direct use in system functions such as
> dir(mkpath("%s/pack", get_objects_directory())).
> The return value is a pointer to such a sanitized filename
> string, but it resides in a static buffer, so it will
> be overwritten by the next call to mkpath (or other functions?)
> This function only does string handling. It doesn't actually
> change anything on the filesystem. (This is not Gits mkdir -p)
>
> `mkpathdup`::
> The same as mkpath, but the memory is duplicated into a new
> buffer, so it is not short-lived, but stays as long as the
> caller doesn't free the memory, which the caller is supposed
> to do.Good.
Show 7 quoted lines
> `xstrdup`:: > Duplicates the given string, making the caller responsible > to free the return value. Basically the same as strdup(2) > with errorhandling. > > I am not sure if this belongs into the path api documentation, > but it's not documented anywhere else.
This does not belong. It should be grouped together with xmalloc(), xcalloc(), xrealloc(), etc. and these are not "path" functions.
Show 9 quoted lines
> `git_path`::
> git_path is for resolving paths within GIT_DIR, such as
> git_path("config") and git_path("COMMIT_EDITMSG").
> This is similar to mkpath, returning a pointer to a static
> buffer, which may be overwritten soon.
>
> `git_pathdup`::
> The same as git_path, but creating a new buffer. The caller
> is responsible to free the returned buffer.OK.
> `git_path_submodule`::
Similar to git_path() but is run for a submodule specified by the "path" given as its first parameter.