diff options
author | David Turner <novalis@novalis.org> | 2019-01-17 23:19:43 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-01-18 15:22:02 -0800 |
commit | d1dd94b308607d0a37aa8a013fd20678956d3531 (patch) | |
tree | 76941b07caff798b7e8b45c05d7c88075b087f63 /tree-walk.h | |
parent | 16a465bc018d09e9d7bbbdc5f40a7fb99c21f8ef (diff) | |
download | git-d1dd94b308607d0a37aa8a013fd20678956d3531.tar.gz |
Do not print 'dangling' for cat-file in case of ambiguity
The return values -1 and -2 from get_oid could mean two different
things, depending on whether they were from an enum returned by
get_tree_entry_follow_symlinks, or from a different code path. This
caused 'dangling' to be printed from a git cat-file in the case of an
ambiguous (-2) result.
Unify the results of get_oid* and get_tree_entry_follow_symlinks to be
one common type, with unambiguous values.
Signed-off-by: David Turner <novalis@novalis.org>
Reported-by: Eric Wong <e@80x24.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'tree-walk.h')
-rw-r--r-- | tree-walk.h | 18 |
1 files changed, 1 insertions, 17 deletions
diff --git a/tree-walk.h b/tree-walk.h index eefd26bb62..de6b95179d 100644 --- a/tree-walk.h +++ b/tree-walk.h @@ -51,23 +51,7 @@ struct traverse_info; typedef int (*traverse_callback_t)(int n, unsigned long mask, unsigned long dirmask, struct name_entry *entry, struct traverse_info *); int traverse_trees(struct index_state *istate, int n, struct tree_desc *t, struct traverse_info *info); -enum follow_symlinks_result { - FOUND = 0, /* This includes out-of-tree links */ - MISSING_OBJECT = -1, /* The initial symlink is missing */ - DANGLING_SYMLINK = -2, /* - * The initial symlink is there, but - * (transitively) points to a missing - * in-tree file - */ - SYMLINK_LOOP = -3, - NOT_DIR = -4, /* - * Somewhere along the symlink chain, a path is - * requested which contains a file as a - * non-final element. - */ -}; - -enum follow_symlinks_result get_tree_entry_follow_symlinks(struct object_id *tree_oid, const char *name, struct object_id *result, struct strbuf *result_path, unsigned *mode); +enum get_oid_result get_tree_entry_follow_symlinks(struct object_id *tree_oid, const char *name, struct object_id *result, struct strbuf *result_path, unsigned *mode); struct traverse_info { const char *traverse_path; |