All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Stefan Beller <sbeller@google.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCHv3 1/4] cache.h: document index_name_pos
Date: Thu, 19 Jan 2017 12:17:51 -0800	[thread overview]
Message-ID: <xmqqziimztw0.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20170119031854.4570-2-sbeller@google.com> (Stefan Beller's message of "Wed, 18 Jan 2017 19:18:51 -0800")

Stefan Beller <sbeller@google.com> writes:

> Signed-off-by: Stefan Beller <sbeller@google.com>
> ---
>  cache.h | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
>
> diff --git a/cache.h b/cache.h
> index 1b67f078dd..1469ddeafe 100644
> --- a/cache.h
> +++ b/cache.h
> @@ -575,7 +575,26 @@ extern int verify_path(const char *path);
>  extern int index_dir_exists(struct index_state *istate, const char *name, int namelen);
>  extern void adjust_dirname_case(struct index_state *istate, char *name);
>  extern struct cache_entry *index_file_exists(struct index_state *istate, const char *name, int namelen, int igncase);
> +
> +/*
> + * Searches for an entry defined by name and namelen in the given index.
> + * If the return value is positive (including 0) it is the position of an
> + * exact match. If the return value is negative, the negated value minus 1
> + * is the position where the entry would be inserted.

So if the return value is -3, you negate it to get 3 and then
subtract 1 to get 2.  The function is telling you that "e" will
sit at active_cache[2] in the following example.

Which is correct.

> + * Example: The current index consists of these files and its stages:
> + *
> + *   b#0, d#0, f#1, f#3
> + *
> + * index_name_pos(&index, "a", 1) -> -1
> + * index_name_pos(&index, "b", 1) ->  0
> + * index_name_pos(&index, "c", 1) -> -2
> + * index_name_pos(&index, "d", 1) ->  1
> + * index_name_pos(&index, "e", 1) -> -3
> + * index_name_pos(&index, "f", 1) -> -3
> + * index_name_pos(&index, "g", 1) -> -5
> + */

This time the counting seems correct.

Thanks.

  reply	other threads:[~2017-01-19 20:22 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-17 23:34 [PATCH 0/4] start documenting core functions Stefan Beller
2017-01-17 23:35 ` [PATCH 1/4] document index_name_pos Stefan Beller
2017-01-18 21:11   ` Junio C Hamano
2017-01-18 22:02     ` Stefan Beller
2017-01-17 23:35 ` [PATCH 2/4] remove_index_entry_at: move documentation to cache.h Stefan Beller
2017-01-18 21:16   ` Junio C Hamano
2017-01-18 22:06     ` Stefan Beller
2017-01-17 23:35 ` [PATCH 3/4] document add_[file_]to_index Stefan Beller
2017-01-18 21:22   ` Junio C Hamano
2017-01-18 22:09     ` Stefan Beller
2017-01-17 23:35 ` [PATCH 4/4] documentation: retire unfinished documentation Stefan Beller
2017-01-18 21:23   ` Junio C Hamano
2017-01-18 23:21 ` [PATCHv2 0/4] start documenting core functions Stefan Beller
2017-01-18 23:21   ` [PATCHv2 1/4] cache.h: document index_name_pos Stefan Beller
2017-01-19  3:18     ` [PATCHv3 0/4] start documenting core functions Stefan Beller
2017-01-19  3:18       ` [PATCHv3 1/4] cache.h: document index_name_pos Stefan Beller
2017-01-19 20:17         ` Junio C Hamano [this message]
2017-01-19  3:18       ` [PATCHv3 2/4] cache.h: document remove_index_entry_at Stefan Beller
2017-01-19  3:18       ` [PATCHv3 3/4] cache.h: document add_[file_]to_index Stefan Beller
2017-01-19  3:18       ` [PATCHv3 4/4] documentation: retire unfinished documentation Stefan Beller
2017-01-18 23:21   ` [PATCHv2 2/4] cache.h: document remove_index_entry_at Stefan Beller
2017-01-18 23:21   ` [PATCHv2 3/4] cache.h: document add_[file_]to_index Stefan Beller
2017-01-19  0:00     ` Brandon Williams
2017-01-19  0:08       ` Stefan Beller
2017-01-18 23:21   ` [PATCHv2 4/4] documentation: retire unfinished documentation Stefan Beller

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=xmqqziimztw0.fsf@gitster.mtv.corp.google.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=sbeller@google.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 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.