summaryrefslogtreecommitdiff
path: root/tree-walk.h
diff options
context:
space:
mode:
authorDavid Turner <novalis@novalis.org>2019-01-18 04:19:43 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-01-18 23:22:02 (GMT)
commitd1dd94b308607d0a37aa8a013fd20678956d3531 (patch)
tree76941b07caff798b7e8b45c05d7c88075b087f63 /tree-walk.h
parent16a465bc018d09e9d7bbbdc5f40a7fb99c21f8ef (diff)
downloadgit-d1dd94b308607d0a37aa8a013fd20678956d3531.zip
git-d1dd94b308607d0a37aa8a013fd20678956d3531.tar.gz
git-d1dd94b308607d0a37aa8a013fd20678956d3531.tar.bz2
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.h18
1 files changed, 1 insertions, 17 deletions
diff --git a/tree-walk.h b/tree-walk.h
index eefd26b..de6b951 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;