diff options
Diffstat (limited to 'src/index.c')
| -rw-r--r-- | src/index.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/index.c b/src/index.c index 71481cc2d..77de0a8e2 100644 --- a/src/index.c +++ b/src/index.c @@ -223,10 +223,11 @@ int git_index_write(git_index *index) git_index_entry *git_index_get(git_index *index, int n) { + assert(index); return (n >= 0 && (unsigned int)n < index->entry_count) ? &index->entries[n] : NULL; } -int git_index_add(git_index *index, const char *filename, int stage) +int git_index_add_bypath(git_index *index, const char *filename, int stage) { git_index_entry entry; size_t path_length; @@ -247,7 +248,7 @@ int git_index_add(git_index *index, const char *filename, int stage) entry.path = git__strdup(filename); - return git_index__append(index, &entry); + return git_index_add(index, &entry); } void git_index__sort(git_index *index) @@ -274,7 +275,7 @@ void git_index__sort(git_index *index) index->sorted = 1; } -int git_index__append(git_index *index, const git_index_entry *source_entry) +int git_index_add(git_index *index, const git_index_entry *source_entry) { git_index_entry *offset; @@ -303,18 +304,23 @@ int git_index__append(git_index *index, const git_index_entry *source_entry) return GIT_SUCCESS; } -int git_index__remove_pos(git_index *index, unsigned int position) +int git_index_remove(git_index *index, int position) { git_index_entry *offset; size_t copy_size; + assert(index); + + if (position < 0 || (unsigned int)position > index->entry_count) + return GIT_ENOTFOUND; + offset = &index->entries[position]; index->entry_count--; copy_size = (index->entry_count - position) * sizeof(git_index_entry); memcpy(offset, offset + sizeof(git_index_entry), copy_size); - return 0; + return GIT_SUCCESS; } int git_index_find(git_index *index, const char *path) |
